You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-12-11 23:17:19 +02:00
Compare commits
816 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 | ||
|
|
c0d679b6c2 | ||
|
|
eb789b9b9a | ||
|
|
b1898141c3 | ||
|
|
3231bfaff0 | ||
|
|
6bb09c9c30 | ||
|
|
35d3fe03ab | ||
|
|
f05929cd17 | ||
|
|
982c9828da | ||
|
|
d6eacb2b33 | ||
|
|
0abe213fc2 | ||
|
|
a6716d55c5 | ||
|
|
fa0572de77 | ||
|
|
6dca4a0d6b | ||
|
|
eacfe1a9ac | ||
|
|
c223cdf10a | ||
|
|
38c42b7a15 | ||
|
|
56432dc773 | ||
|
|
d3b4379161 | ||
|
|
8a6fcdbcae | ||
|
|
061ce646d2 | ||
|
|
5ec7c16e3e | ||
|
|
5d629508c1 | ||
|
|
0a6f8b0cfe | ||
|
|
460f826672 | ||
|
|
cb16a10121 | ||
|
|
3b6131f1ca | ||
|
|
57225a36b9 | ||
|
|
3e313399c2 | ||
|
|
7947e14792 | ||
|
|
71098102c5 | ||
|
|
8e601e80df | ||
|
|
3b14cfcc54 | ||
|
|
61a0e43092 | ||
|
|
d08aaffe41 | ||
|
|
7d0def30f0 | ||
|
|
bb45d72a56 | ||
|
|
3943192c5d | ||
|
|
18d76807f6 | ||
|
|
01a30a7ccf | ||
|
|
3fb35d043b | ||
|
|
9b51bd484d | ||
|
|
879b556845 | ||
|
|
0df2a501dd | ||
|
|
6f64fdffcc | ||
|
|
19252af345 | ||
|
|
897f53b13e | ||
|
|
45cd8b7e3c | ||
|
|
922bbdd1b6 | ||
|
|
c24135577c | ||
|
|
3240ff40bc | ||
|
|
58b68cab0c | ||
|
|
0a0afd7245 | ||
|
|
de01606bff | ||
|
|
046474b484 | ||
|
|
277b2b9298 | ||
|
|
0b7296ae95 | ||
|
|
ce87dd55f0 | ||
|
|
07b724d65b | ||
|
|
bc1984298f | ||
|
|
9ed0bdfed2 | ||
|
|
57628e8986 | ||
|
|
fc8f53fd0e | ||
|
|
efd7cc6a0c | ||
|
|
7bfc3e1256 | ||
|
|
7f6ca1e527 | ||
|
|
71d9b1d441 | ||
|
|
a3d64d0a90 | ||
|
|
e7ec2ce6cf | ||
|
|
61dbdd5f7c | ||
|
|
e6888c451d | ||
|
|
899219abd2 | ||
|
|
7a4c7a13eb | ||
|
|
e8797f49b9 | ||
|
|
e17f3051f0 | ||
|
|
06091933e1 | ||
|
|
b30c65dd89 | ||
|
|
0eb18d206d | ||
|
|
3a9948e528 | ||
|
|
2bcddd38b2 | ||
|
|
5ff8808f69 | ||
|
|
28b1d8a324 | ||
|
|
5c1dd79435 | ||
|
|
706d59a6cc | ||
|
|
251f1bba55 | ||
|
|
cb1fd85ca4 | ||
|
|
11ddc55911 | ||
|
|
ee106105d8 | ||
|
|
19f5a144e5 | ||
|
|
18717bac79 | ||
|
|
28fa83c406 | ||
|
|
258e514a91 | ||
|
|
f92546d6eb | ||
|
|
693456164b | ||
|
|
7cd3e6b1f7 | ||
|
|
764e63d869 | ||
|
|
2c6f47f277 | ||
|
|
e41896d6f3 | ||
|
|
990591cc80 | ||
|
|
7b85c33213 | ||
|
|
4b4d0e8b25 | ||
|
|
4fb6af3c62 | ||
|
|
d7ffe7e294 | ||
|
|
3ff139d445 | ||
|
|
40443e0134 | ||
|
|
1f927c1285 | ||
|
|
5e82e62335 | ||
|
|
de954827df | ||
|
|
2cb24bf198 | ||
|
|
739a6a4a9c | ||
|
|
dfcf1193dc | ||
|
|
c72f92e22f | ||
|
|
f6d01ce7e1 | ||
|
|
fed9700587 | ||
|
|
12a3a9a89e | ||
|
|
590c62c371 | ||
|
|
df41f64b3c | ||
|
|
1849355245 | ||
|
|
fa1b471ea4 | ||
|
|
0a67f8c947 | ||
|
|
621d0260f4 | ||
|
|
f93fca7c5b | ||
|
|
f4d830c2ef | ||
|
|
1aa2844efa | ||
|
|
f22b2adaad | ||
|
|
b547f9aa13 | ||
|
|
e4166e9da7 | ||
|
|
1634fdb421 | ||
|
|
7f51035f91 | ||
|
|
70e71cbc2a | ||
|
|
ffd03bf34c | ||
|
|
f59a3dee78 | ||
|
|
3ba3037242 | ||
|
|
dbb269fef6 | ||
|
|
e209189faa | ||
|
|
2d7065cde2 | ||
|
|
59f5972c93 | ||
|
|
8bac5275c3 | ||
|
|
58d748e235 | ||
|
|
e69ac3e62a | ||
|
|
7fc8ac4c0f | ||
|
|
069dce69cd | ||
|
|
3bdf621026 | ||
|
|
2f62897fb6 | ||
|
|
dbdd602f50 | ||
|
|
d66fa87b2b | ||
|
|
124a959c8d | ||
|
|
127dce1cd6 | ||
|
|
44986a35a4 | ||
|
|
ea516301fd | ||
|
|
90b684457a | ||
|
|
8517e2aa42 | ||
|
|
b880be8b7c | ||
|
|
57fd1a7588 | ||
|
|
5ed458f634 | ||
|
|
ac12143d00 | ||
|
|
b6c36d1961 | ||
|
|
3c2de70baa | ||
|
|
f6c5620682 | ||
|
|
79b6f64bd0 | ||
|
|
ed89f55bff | ||
|
|
8841a92142 | ||
|
|
0bd19c97eb | ||
|
|
2fd026d107 | ||
|
|
5e7eb37ca7 | ||
|
|
6b10d5d821 | ||
|
|
0f4dbfbcbf | ||
|
|
99493174ec | ||
|
|
333253fd4f | ||
|
|
01470e8d3b | ||
|
|
bda2fe6717 | ||
|
|
d1f4c5be18 | ||
|
|
377adea51d | ||
|
|
cda3d20834 | ||
|
|
d11870b1eb | ||
|
|
53bda3eea7 | ||
|
|
30165e8d6a | ||
|
|
2202eb6570 | ||
|
|
720927f488 | ||
|
|
2858c0fce0 | ||
|
|
36c3521f40 | ||
|
|
98a3b99d17 | ||
|
|
95a06c4531 | ||
|
|
6ea77b36ce | ||
|
|
0cd7ebf9d3 | ||
|
|
a816498fc6 | ||
|
|
549c1a6767 | ||
|
|
f87d1f11b0 | ||
|
|
fb913bc33c | ||
|
|
53d7a51cb0 | ||
|
|
12da48c756 | ||
|
|
a0a6bdb684 | ||
|
|
eb4aa2c026 | ||
|
|
a9e789f845 | ||
|
|
89b76918bd | ||
|
|
e98575643c | ||
|
|
7c9e7743f1 | ||
|
|
435aa4845b | ||
|
|
9841488ce4 | ||
|
|
9c907989a5 | ||
|
|
f684d8e59a | ||
|
|
a1ad6c9712 | ||
|
|
b6ca3090df | ||
|
|
ff2d793fbb | ||
|
|
fcfb7f1111 | ||
|
|
6125cde223 | ||
|
|
c83391e624 | ||
|
|
a3a818ea74 | ||
|
|
54a4965503 | ||
|
|
2233d88c01 | ||
|
|
9680ab74a3 | ||
|
|
ef711af5b5 | ||
|
|
8a619e4b8b | ||
|
|
bc09d2c640 | ||
|
|
f82dfde6f4 | ||
|
|
312c7f2d27 | ||
|
|
953cc327c6 | ||
|
|
14cff96713 | ||
|
|
34b9af2ce0 | ||
|
|
6a6ee280c3 | ||
|
|
861387707a | ||
|
|
830e665366 | ||
|
|
f14ae68ea0 | ||
|
|
c7084bf27e | ||
|
|
fc8ffcbe46 | ||
|
|
77f089654e | ||
|
|
e7a12bb0dd | ||
|
|
22fe3a4e44 | ||
|
|
afb8b92528 | ||
|
|
5178f99100 | ||
|
|
72af564382 | ||
|
|
0a2b83998c | ||
|
|
73e79213dc | ||
|
|
e31ffc9474 | ||
|
|
fdb8706a5f | ||
|
|
4c0262bd82 | ||
|
|
3b2dcb37a6 | ||
|
|
46a3b020a6 | ||
|
|
8373392e99 | ||
|
|
695c2623c2 | ||
|
|
979e7f2486 | ||
|
|
e7a9f630ec | ||
|
|
4e8372174b | ||
|
|
1b8912d7e9 | ||
|
|
8c3669588b | ||
|
|
1b784fe3b0 | ||
|
|
5ab1d8dfd6 | ||
|
|
cda8b95bfa | ||
|
|
9664842b1a | ||
|
|
09836e1d34 | ||
|
|
8974e20c7f | ||
|
|
761a49803e | ||
|
|
a40028f0c0 | ||
|
|
d4fca7e313 | ||
|
|
6748d4d825 | ||
|
|
0a5ad1d628 | ||
|
|
4080958e10 | ||
|
|
95c4a717e3 | ||
|
|
c5b9353105 | ||
|
|
17595f7ceb | ||
|
|
dcf78e8a06 | ||
|
|
de0c54c3c3 | ||
|
|
38970e9a52 | ||
|
|
563f43168b | ||
|
|
6e235605ed | ||
|
|
0749e0b675 | ||
|
|
756f3e627c | ||
|
|
4b39ed42b1 | ||
|
|
abe85ca4bd | ||
|
|
a559565ace | ||
|
|
d35e3163ca | ||
|
|
f22ad85681 | ||
|
|
727bdaeea4 | ||
|
|
42f7764eed | ||
|
|
1fbc1073ca | ||
|
|
66b683e5e7 | ||
|
|
7d1f61e47b | ||
|
|
643e5a6a2a | ||
|
|
a1e7e29279 | ||
|
|
abf6c3f3f1 | ||
|
|
32c81ad8c2 | ||
|
|
0f461c4caa | ||
|
|
57ed718993 | ||
|
|
ef1ae63233 | ||
|
|
81ac200cc0 | ||
|
|
3a2d62f6c7 | ||
|
|
7f80f67fd6 | ||
|
|
cebd8de77a | ||
|
|
417218fc34 | ||
|
|
29586437c2 | ||
|
|
f51d0ad914 | ||
|
|
35294b5f97 | ||
|
|
758562cff9 | ||
|
|
da0678c6fe | ||
|
|
afe4fd70cc | ||
|
|
4cef383fe7 | ||
|
|
b58c30889e | ||
|
|
1561c0e4d7 | ||
|
|
32b11c15a4 | ||
|
|
5e06efc1b9 | ||
|
|
43bd88703c | ||
|
|
cdd70230af | ||
|
|
eaf3eef2d3 | ||
|
|
81ec8eaf83 | ||
|
|
23f7e350c6 | ||
|
|
cea368cd3f | ||
|
|
50c8f2ae61 | ||
|
|
ed0ecababb | ||
|
|
72aa4c40a5 | ||
|
|
4f6784e2e5 | ||
|
|
01f015a54f | ||
|
|
806acad22a | ||
|
|
1d322d8a39 | ||
|
|
aef94e6950 | ||
|
|
456fcec334 | ||
|
|
3b6937c2f0 | ||
|
|
7cdd1d41c1 | ||
|
|
1fc535a740 | ||
|
|
033b37077a | ||
|
|
07f6a4a08b | ||
|
|
8c1b592a51 | ||
|
|
9460f7a17a | ||
|
|
106260ed69 | ||
|
|
123162e946 | ||
|
|
54e81966e5 | ||
|
|
9bf6ab60bb | ||
|
|
4f0ff3cdfc | ||
|
|
47cfaaa5ab | ||
|
|
1f49788f21 | ||
|
|
7e4cf9aeda | ||
|
|
4b6964b683 | ||
|
|
3caf398021 | ||
|
|
8840631266 | ||
|
|
c4411bb895 | ||
|
|
f63668350b | ||
|
|
3fc54d7ffd | ||
|
|
2c6c20f44f | ||
|
|
08ee939951 | ||
|
|
463b1441d3 | ||
|
|
6754d4ee89 | ||
|
|
d5d0732bf3 | ||
|
|
d27cbaa663 | ||
|
|
70adf10f2e | ||
|
|
e75417d26e | ||
|
|
2ded983828 | ||
|
|
0c708f766b | ||
|
|
a801f8d8ed | ||
|
|
26fc26c9fe | ||
|
|
df4c07d204 | ||
|
|
cf565d1563 | ||
|
|
6b425cf543 | ||
|
|
6188e7a0fa | ||
|
|
310afb0ad6 | ||
|
|
7d7e1e1637 | ||
|
|
424c8a2723 | ||
|
|
187fb1b85d | ||
|
|
595fd7a9aa | ||
|
|
0027cb9036 | ||
|
|
db6878b978 | ||
|
|
1c78722573 | ||
|
|
fea83e28c4 | ||
|
|
84adf64271 | ||
|
|
74e2b0d15d | ||
|
|
df302206dd | ||
|
|
6d8941c005 | ||
|
|
971b20062f | ||
|
|
936f334b61 | ||
|
|
7e3a290939 | ||
|
|
01d032261c | ||
|
|
07b85388fc |
2
.gitignore
vendored
Executable file → Normal file
2
.gitignore
vendored
Executable file → Normal file
@@ -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.
11
BUILD.md
11
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
|
||||||
|
|
||||||
@@ -9,8 +10,6 @@
|
|||||||
echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.bash_profile
|
echo 'export PATH="/usr/local/opt/gettext/bin:$PATH"' >> ~/.bash_profile
|
||||||
source ~/.bash_profile
|
source ~/.bash_profile
|
||||||
|
|
||||||
If you get a node-gyp related error you might need to manually install it: `npm install -g node-gyp`
|
|
||||||
|
|
||||||
## Linux and Windows (WSL) dependencies
|
## Linux and Windows (WSL) dependencies
|
||||||
|
|
||||||
- Install yarn - https://yarnpkg.com/lang/en/docs/install/
|
- Install yarn - https://yarnpkg.com/lang/en/docs/install/
|
||||||
@@ -37,6 +36,10 @@ yarn dist
|
|||||||
|
|
||||||
If there's an error `while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory`, run `sudo apt-get install libgconf-2-4`
|
If there's an error `while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory`, run `sudo apt-get install libgconf-2-4`
|
||||||
|
|
||||||
|
If you get a node-gyp related error you might need to manually install it: `npm install -g node-gyp`.
|
||||||
|
|
||||||
|
If you get the error `libtool: unrecognized option '-static'`, follow the instructions [in this post](https://stackoverflow.com/a/38552393/561309) to use the correct libtool version.
|
||||||
|
|
||||||
That will create the executable file in the `dist` directory.
|
That will create the executable file in the `dist` directory.
|
||||||
|
|
||||||
From `/ElectronClient` you can also run `run.sh` to run the app for testing.
|
From `/ElectronClient` you can also run `run.sh` to run the app for testing.
|
||||||
@@ -56,6 +59,8 @@ If node-gyp does not works (MSBUILD: error MSB3428: Could not load the Visual C+
|
|||||||
|
|
||||||
If `yarn dist` fails, it may need administrative rights.
|
If `yarn dist` fails, it may need administrative rights.
|
||||||
|
|
||||||
|
The [building\_win32\_tips on this page](./readme/building_win32_tips.md) might be helpful.
|
||||||
|
|
||||||
# Building the Mobile application
|
# Building the Mobile application
|
||||||
|
|
||||||
First you need to setup React Native to build projects with native code. For this, follow the instructions on the [Get Started](https://facebook.github.io/react-native/docs/getting-started.html) tutorial, in the "Building Projects with Native Code" tab.
|
First you need to setup React Native to build projects with native code. For this, follow the instructions on the [Get Started](https://facebook.github.io/react-native/docs/getting-started.html) tutorial, in the "Building Projects with Native Code" tab.
|
||||||
|
|||||||
@@ -12,8 +12,17 @@ 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.
|
||||||
|
|
||||||
|
# Coding style
|
||||||
|
|
||||||
|
There are only two rules, but not following them means the pull request will not be accepted (it can be accepted once the issues are fixed):
|
||||||
|
|
||||||
|
- **Please use tabs, NOT spaces.**
|
||||||
|
- **Please do not add or remove optional characters, such as spaces or colons.** Please setup your editor so that it only changes what you are working on and is not making automated changes elsewhere. The reason for this is that small white space changes make diff hard to read and can cause needless conflicts.
|
||||||
|
|||||||
1
CliClient/.gitignore
vendored
1
CliClient/.gitignore
vendored
@@ -13,6 +13,7 @@ tests/fuzzing.*
|
|||||||
tests/fuzzing -*
|
tests/fuzzing -*
|
||||||
tests/logs/*
|
tests/logs/*
|
||||||
tests/cli-integration/
|
tests/cli-integration/
|
||||||
|
tests/tmp/
|
||||||
*.mo
|
*.mo
|
||||||
*.*~
|
*.*~
|
||||||
tests/sync
|
tests/sync
|
||||||
|
|||||||
@@ -21,8 +21,8 @@ const { _, setLocale, defaultLocale, closestSupportedLocale } = require('lib/loc
|
|||||||
const os = require('os');
|
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 EventEmitter = require('events');
|
|
||||||
const Cache = require('lib/Cache');
|
const Cache = require('lib/Cache');
|
||||||
|
const WelcomeUtils = require('lib/WelcomeUtils');
|
||||||
|
|
||||||
class Application extends BaseApplication {
|
class Application extends BaseApplication {
|
||||||
|
|
||||||
@@ -377,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) {
|
||||||
@@ -394,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('');
|
||||||
|
|
||||||
|
|||||||
299
CliClient/app/command-apidoc.js
Normal file
299
CliClient/app/command-apidoc.js
Normal file
@@ -0,0 +1,299 @@
|
|||||||
|
const { BaseCommand } = require('./base-command.js');
|
||||||
|
const { _ } = require('lib/locale.js');
|
||||||
|
const { cliUtils } = require('./cli-utils.js');
|
||||||
|
const EncryptionService = require('lib/services/EncryptionService');
|
||||||
|
const DecryptionWorker = require('lib/services/DecryptionWorker');
|
||||||
|
const MasterKey = require('lib/models/MasterKey');
|
||||||
|
const BaseItem = require('lib/models/BaseItem');
|
||||||
|
const BaseModel = require('lib/BaseModel');
|
||||||
|
const Setting = require('lib/models/Setting.js');
|
||||||
|
const { toTitleCase } = require('lib/string-utils.js');
|
||||||
|
const { reg } = require('lib/registry.js');
|
||||||
|
const markdownUtils = require('lib/markdownUtils');
|
||||||
|
const { Database } = require('lib/database.js');
|
||||||
|
|
||||||
|
class Command extends BaseCommand {
|
||||||
|
|
||||||
|
usage() {
|
||||||
|
return 'apidoc';
|
||||||
|
}
|
||||||
|
|
||||||
|
description() {
|
||||||
|
return 'Build the API doc';
|
||||||
|
}
|
||||||
|
|
||||||
|
createPropertiesTable(tableFields) {
|
||||||
|
const headers = [
|
||||||
|
{ name: 'name', label: 'Name' },
|
||||||
|
{ name: 'type', label: 'Type', filter: (value) => {
|
||||||
|
return Database.enumName('fieldType', value);
|
||||||
|
}},
|
||||||
|
{ name: 'description', label: 'Description' },
|
||||||
|
];
|
||||||
|
|
||||||
|
return markdownUtils.createMarkdownTable(headers, tableFields);
|
||||||
|
}
|
||||||
|
|
||||||
|
async action(args) {
|
||||||
|
const models = [
|
||||||
|
{
|
||||||
|
type: BaseModel.TYPE_NOTE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: BaseModel.TYPE_FOLDER,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: BaseModel.TYPE_RESOURCE,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: BaseModel.TYPE_TAG,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const lines = [];
|
||||||
|
|
||||||
|
lines.push('# Joplin API');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('When the Web Clipper service is enabled, Joplin exposes a [REST API](https://en.wikipedia.org/wiki/Representational_state_transfer) which allows third-party applications to access Joplin\'s data and to create, modify or delete notes, notebooks, resources or tags.');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('In order to use it, you\'ll first need to find on which port the service is running. To do so, open the Web Clipper Options in Joplin and if the service is running it should tell you on which port. Normally it runs on port **41184**. If you want to find it programmatically, you may follow this kind of algorithm:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('```javascript');
|
||||||
|
lines.push('let port = null;');
|
||||||
|
lines.push('for (let portToTest = 41184; portToTest <= 41194; portToTest++) {');
|
||||||
|
lines.push(' const result = pingPort(portToTest); // Call GET /ping');
|
||||||
|
lines.push(' if (result == \'JoplinClipperServer\') {');
|
||||||
|
lines.push(' port = portToTest; // Found the port');
|
||||||
|
lines.push(' break;');
|
||||||
|
lines.push(' }');
|
||||||
|
lines.push('}');
|
||||||
|
lines.push('```');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('# Authorisation')
|
||||||
|
lines.push('');
|
||||||
|
lines.push('To prevent unauthorised applications from accessing the API, the calls must be authentified. To do so, you must provide a token as a query parameter for each API call. You can get this token from the Joplin desktop application, on the Web Clipper Options screen.');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('This would be an example of valid cURL call using a token:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('\tcurl http://localhost:41184/notes?token=ABCD123ABCD123ABCD123ABCD123ABCD123');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('In the documentation below, the token will not be specified every time however you will need to include it.');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('# Using the API');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('All the calls, unless noted otherwise, receives and send **JSON data**. For example to create a new note:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('\tcurl --data \'{ "title": "My note", "body": "Some note in **Markdown**"}\' http://localhost:41184/notes');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('In the documentation below, the calls may include special parameters such as :id or :note_id. You would replace this with the item ID or note ID.');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('For example, for the endpoint `DELETE /tags/:id/notes/:note_id`, to remove the tag with ID "ABCD1234" from the note with ID "EFGH789", you would run for example:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('\tcurl -X DELETE http://localhost:41184/tags/ABCD1234/notes/EFGH789');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('The four verbs supported by the API are the following ones:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('* **GET**: To retrieve items (notes, notebooks, etc.).');
|
||||||
|
lines.push('* **POST**: To create new items. In general most item properties are optional. If you omit any, a default value will be used.');
|
||||||
|
lines.push('* **PUT**: To update an item. Note in a REST API, traditionally PUT is used to completely replace an item, however in this API it will only replace the properties that are provided. For example if you PUT {"title": "my new title"}, only the "title" property will be changed. The other properties will be left untouched (they won\'t be cleared nor changed).');
|
||||||
|
lines.push('* **DELETE**: To delete items.');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('# Filtering data');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('You can change the fields that will be returned by the API using the `fields=` query parameter, which takes a list of comma separated fields. For example, to get the longitude and latitude of a note, use this:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('\tcurl http://localhost:41184/notes/ABCD123?fields=longitude,latitude');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('To get the IDs only of all the tags:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('\tcurl http://localhost:41184/tags?fields=id');
|
||||||
|
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('');
|
||||||
|
lines.push('* Text is UTF-8.');
|
||||||
|
lines.push('* All date/time are Unix timestamps in milliseconds.');
|
||||||
|
lines.push('* Booleans are integer values 0 or 1.');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('# Testing if the service is available');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Call **GET /ping** to check if the service is available. It should return "JoplinClipperServer" if it works.');
|
||||||
|
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++) {
|
||||||
|
const model = models[i];
|
||||||
|
const ModelClass = BaseItem.getClassByItemType(model.type);
|
||||||
|
const tableName = ModelClass.tableName();
|
||||||
|
let tableFields = reg.db().tableFields(tableName, { includeDescription: true });
|
||||||
|
const singular = tableName.substr(0, tableName.length - 1);
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_NOTE) {
|
||||||
|
tableFields = tableFields.slice();
|
||||||
|
tableFields.push({
|
||||||
|
name: 'body_html',
|
||||||
|
type: Database.enumId('fieldType', 'text'),
|
||||||
|
description: 'Note body, in HTML format',
|
||||||
|
});
|
||||||
|
tableFields.push({
|
||||||
|
name: 'base_url',
|
||||||
|
type: Database.enumId('fieldType', 'text'),
|
||||||
|
description: 'If `body_html` is provided and contains relative URLs, provide the `base_url` parameter too so that all the URLs can be converted to absolute ones. The base URL is basically where the HTML was fetched from, minus the query (everything after the \'?\'). For example if the original page was `https://stackoverflow.com/search?q=%5Bjava%5D+test`, the base URL is `https://stackoverflow.com/search`.',
|
||||||
|
});
|
||||||
|
tableFields.push({
|
||||||
|
name: 'image_data_url',
|
||||||
|
type: Database.enumId('fieldType', 'text'),
|
||||||
|
description: 'An image to attach to the note, in [Data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) format.',
|
||||||
|
});
|
||||||
|
tableFields.push({
|
||||||
|
name: 'crop_rect',
|
||||||
|
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 }`',
|
||||||
|
});
|
||||||
|
// tableFields.push({
|
||||||
|
// name: 'tags',
|
||||||
|
// type: Database.enumId('fieldType', 'text'),
|
||||||
|
// description: 'Comma-separated list of tags. eg. `tag1,tag2`.',
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
|
||||||
|
lines.push('# ' + toTitleCase(tableName));
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_FOLDER) {
|
||||||
|
lines.push('This is actually a notebook. Internally notebooks are called "folders".');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
lines.push('## Properties');
|
||||||
|
lines.push('');
|
||||||
|
lines.push(this.createPropertiesTable(tableFields));
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('## GET /' + tableName);
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Gets all ' + tableName);
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_FOLDER) {
|
||||||
|
lines.push('The folders are returned as a tree. The sub-notebooks of a notebook, if any, are under the `children` key.');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
lines.push('## GET /' + tableName + '/:id');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Gets ' + singular + ' with ID :id');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_TAG) {
|
||||||
|
lines.push('## GET /tags/:id/notes');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Gets all the notes with this tag.');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_NOTE) {
|
||||||
|
lines.push('## GET /notes/:id/tags');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Gets all the tags attached to this note.');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_FOLDER) {
|
||||||
|
lines.push('## GET /folders/:id/notes');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Gets all the notes inside this folder.');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_RESOURCE) {
|
||||||
|
lines.push('## GET /resources/:id/file');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Gets the actual file associated with this resource.');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
lines.push('## POST /' + tableName);
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Creates a new ' + singular);
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_RESOURCE) {
|
||||||
|
lines.push('Creating a new resource is special because you also need to upload the file. Unlike other API calls, this one must have the "multipart/form-data" Content-Type. The file data must be passed to the "data" form field, and the other properties to the "props" form field. An example of a valid call with cURL would be:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('\tcurl -F \'data=@/path/to/file.jpg\' -F \'props={"title":"my resource title"}\' http://localhost:41184/resources');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('The "data" field is required, while the "props" one is not. If not specified, default values will be used.');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_TAG) {
|
||||||
|
lines.push('## POST /tags/:id/notes');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Post a note to this endpoint to add the tag to the note. The note data must at least contain an ID property (all other properties will be ignored).');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_NOTE) {
|
||||||
|
lines.push('You can either specify the note body as Markdown by setting the `body` parameter, or in HTML by setting the `body_html`.');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Examples:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('* Create a note from some Markdown text');
|
||||||
|
lines.push('');
|
||||||
|
lines.push(' curl --data \'{ "title": "My note", "body": "Some note in **Markdown**"}\' http://127.0.0.1:41184/notes');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('* Create a note from some HTML');
|
||||||
|
lines.push('');
|
||||||
|
lines.push(' curl --data \'{ "title": "My note", "body_html": "Some note in <b>HTML</b>"}\' http://127.0.0.1:41184/notes');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('* Create a note and attach an image to it:');
|
||||||
|
lines.push('');
|
||||||
|
lines.push(' curl --data \'{ "title": "Image test", "body": "Here is Joplin icon:", "image_data_url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUeNoAyAA3/wFwtO3K6gUB/vz2+Prw9fj/+/r+/wBZKAAExOgF4/MC9ff+MRH6Ui4E+/0Bqc/zutj6AgT+/Pz7+vv7++nu82c4DlMqCvLs8goA/gL8/fz09fb59vXa6vzZ6vjT5fbn6voD/fwC8vX4UiT9Zi//APHyAP8ACgUBAPv5APz7BPj2+DIaC2o3E+3o6ywaC5fT6gD6/QD9/QEVf9kD+/dcLQgJA/7v8vqfwOf18wA1IAIEVycAyt//v9XvAPv7APz8LhoIAPz9Ri4OAgwARgx4W/6fVeEAAAAASUVORK5CYII="}\' http://127.0.0.1:41184/notes');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('### Creating a note with a specific ID');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('When a new note is created, it is automatically assigned a new unique ID so **normally you do not need to set the ID**. However, if for some reason you want to set it, you can supply it as the `id` property. It needs to be a 32 characters long hexadecimal string. **Make sure it is unique**, for example by generating it using whatever GUID function is available in your programming language.');
|
||||||
|
lines.push('');
|
||||||
|
lines.push(' curl --data \'{ "id": "00a87474082744c1a8515da6aa5792d2", "title": "My note with custom ID"}\' http://127.0.0.1:41184/notes');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
|
||||||
|
lines.push('## PUT /' + tableName + '/:id');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Sets the properties of the ' + singular + ' with ID :id');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
lines.push('## DELETE /' + tableName + '/:id');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Deletes the ' + singular + ' with ID :id');
|
||||||
|
lines.push('');
|
||||||
|
|
||||||
|
if (model.type === BaseModel.TYPE_TAG) {
|
||||||
|
lines.push('## DELETE /tags/:id/notes/:note_id');
|
||||||
|
lines.push('');
|
||||||
|
lines.push('Remove the tag from the note.');
|
||||||
|
lines.push('');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.stdout(lines.join('\n'));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Command;
|
||||||
@@ -26,7 +26,7 @@ class Command extends BaseCommand {
|
|||||||
const md = Setting.settingMetadata(name);
|
const md = Setting.settingMetadata(name);
|
||||||
let value = Setting.value(name);
|
let value = Setting.value(name);
|
||||||
if (typeof value === 'object' || Array.isArray(value)) value = JSON.stringify(value);
|
if (typeof value === 'object' || Array.isArray(value)) value = JSON.stringify(value);
|
||||||
if (md.secure) value = '********';
|
if (md.secure && value) value = '********';
|
||||||
|
|
||||||
if (Setting.isEnum(name)) {
|
if (Setting.isEnum(name)) {
|
||||||
return _('%s = %s (%s)', name, value, Setting.enumOptionsDoc(name));
|
return _('%s = %s (%s)', name, value, Setting.enumOptionsDoc(name));
|
||||||
|
|||||||
@@ -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,6 +64,10 @@ class Command extends BaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (args.command === 'decrypt') {
|
if (args.command === 'decrypt') {
|
||||||
|
if (args.path) {
|
||||||
|
const plainText = await EncryptionService.instance().decryptString(args.path);
|
||||||
|
this.stdout(plainText);
|
||||||
|
} else {
|
||||||
this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.'));
|
this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.'));
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
@@ -55,14 +76,8 @@ class Command extends BaseCommand {
|
|||||||
break;
|
break;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (error.code === 'masterKeyNotLoaded') {
|
if (error.code === 'masterKeyNotLoaded') {
|
||||||
const masterKeyId = error.masterKeyId;
|
const ok = await askForMasterKey(error);
|
||||||
const password = await this.prompt(_('Enter master password:'), { type: 'string', secure: true });
|
if (!ok) return;
|
||||||
if (!password) {
|
|
||||||
this.stdout(_('Operation cancelled'));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Setting.setObjectKey('encryption.passwordCache', masterKeyId, password);
|
|
||||||
await EncryptionService.instance().loadMasterKeysFromSettings();
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,6 +86,7 @@ class Command extends BaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.stdout(_('Completed decryption.'));
|
this.stdout(_('Completed decryption.'));
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -80,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');
|
||||||
|
|||||||
@@ -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()) {
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ class Command extends BaseCommand {
|
|||||||
row.push(await Folder.noteCount(item.id));
|
row.push(await Folder.noteCount(item.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
row.push(time.unixMsToLocalDateTime(item.user_updated_time));
|
row.push(time.formatMsToLocal(item.user_updated_time));
|
||||||
}
|
}
|
||||||
|
|
||||||
let title = item.title;
|
let title = item.title;
|
||||||
|
|||||||
@@ -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);
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ const { _ } = require('lib/locale.js');
|
|||||||
const { OneDriveApiNodeUtils } = require('./onedrive-api-node-utils.js');
|
const { OneDriveApiNodeUtils } = require('./onedrive-api-node-utils.js');
|
||||||
const Setting = require('lib/models/Setting.js');
|
const Setting = require('lib/models/Setting.js');
|
||||||
const BaseItem = require('lib/models/BaseItem.js');
|
const BaseItem = require('lib/models/BaseItem.js');
|
||||||
|
const ResourceFetcher = require('lib/services/ResourceFetcher');
|
||||||
const { Synchronizer } = require('lib/synchronizer.js');
|
const { Synchronizer } = require('lib/synchronizer.js');
|
||||||
const { reg } = require('lib/registry.js');
|
const { reg } = require('lib/registry.js');
|
||||||
const { cliUtils } = require('./cli-utils.js');
|
const { cliUtils } = require('./cli-utils.js');
|
||||||
@@ -116,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');
|
||||||
|
|
||||||
@@ -191,6 +191,15 @@ class Command extends BaseCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// When using the tool in command line mode, the ResourceFetcher service is
|
||||||
|
// not going to be running in the background, so the resources need to be
|
||||||
|
// explicitely downloaded below.
|
||||||
|
if (!app().hasGui()) {
|
||||||
|
this.stdout(_('Downloading resources...'));
|
||||||
|
await ResourceFetcher.instance().fetchAll();
|
||||||
|
await ResourceFetcher.instance().waitForAllFinished();
|
||||||
|
}
|
||||||
|
|
||||||
await app().refreshCurrentFolder();
|
await app().refreshCurrentFolder();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
cleanUp();
|
cleanUp();
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ const { app } = require('./app.js');
|
|||||||
const { _ } = require('lib/locale.js');
|
const { _ } = require('lib/locale.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 { time } = require('lib/time-utils.js');
|
||||||
|
|
||||||
class Command extends BaseCommand {
|
class Command extends BaseCommand {
|
||||||
|
|
||||||
@@ -11,11 +12,19 @@ class Command extends BaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
description() {
|
description() {
|
||||||
return _('<tag-command> can be "add", "remove" or "list" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags.');
|
return _('<tag-command> can be "add", "remove" or "list" to assign or remove [tag] from [note], or to list the notes associated with [tag]. The command `tag list` can be used to list all the tags (use -l for long option).');
|
||||||
|
}
|
||||||
|
|
||||||
|
options() {
|
||||||
|
return [
|
||||||
|
['-l, --long', _('Use long list format. Format is ID, NOTE_COUNT (for notebook), DATE, TODO_CHECKED (for to-dos), TITLE')],
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
async action(args) {
|
async action(args) {
|
||||||
let tag = null;
|
let tag = null;
|
||||||
|
let options = args.options;
|
||||||
|
|
||||||
if (args.tag) tag = await app().loadItem(BaseModel.TYPE_TAG, args.tag);
|
if (args.tag) tag = await app().loadItem(BaseModel.TYPE_TAG, args.tag);
|
||||||
let notes = [];
|
let notes = [];
|
||||||
if (args.note) {
|
if (args.note) {
|
||||||
@@ -41,7 +50,28 @@ class Command extends BaseCommand {
|
|||||||
} else if (command == 'list') {
|
} else if (command == 'list') {
|
||||||
if (tag) {
|
if (tag) {
|
||||||
let notes = await Tag.notes(tag.id);
|
let notes = await Tag.notes(tag.id);
|
||||||
notes.map((note) => { this.stdout(note.title); });
|
notes.map((note) => {
|
||||||
|
let line = '';
|
||||||
|
if (options.long) {
|
||||||
|
line += BaseModel.shortId(note.id);
|
||||||
|
line += ' ';
|
||||||
|
line += time.formatMsToLocal(note.user_updated_time);
|
||||||
|
line += ' ';
|
||||||
|
}
|
||||||
|
if (note.is_todo) {
|
||||||
|
line += '[';
|
||||||
|
if (note.todo_completed) {
|
||||||
|
line += 'X';
|
||||||
|
} else {
|
||||||
|
line += ' ';
|
||||||
|
}
|
||||||
|
line += '] ';
|
||||||
|
} else {
|
||||||
|
line += ' ';
|
||||||
|
}
|
||||||
|
line += note.title;
|
||||||
|
this.stdout(line);
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
let tags = await Tag.all();
|
let tags = await Tag.all();
|
||||||
tags.map((tag) => { this.stdout(tag.title); });
|
tags.map((tag) => { this.stdout(tag.title); });
|
||||||
|
|||||||
@@ -33,8 +33,6 @@ class FolderListWidget extends ListWidget {
|
|||||||
output.push(item.title);
|
output.push(item.title);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (item && item.id) output.push(item.id.substr(0, 5));
|
|
||||||
|
|
||||||
return output.join(' ');
|
return output.join(' ');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -85,7 +83,6 @@ class FolderListWidget extends ListWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
set notesParentType(v) {
|
set notesParentType(v) {
|
||||||
//if (this.notesParentType_ === v) return;
|
|
||||||
this.notesParentType_ = v;
|
this.notesParentType_ = v;
|
||||||
this.updateIndexFromSelectedItemId()
|
this.updateIndexFromSelectedItemId()
|
||||||
this.invalidate();
|
this.invalidate();
|
||||||
@@ -124,13 +121,33 @@ class FolderListWidget extends ListWidget {
|
|||||||
this.invalidate();
|
this.invalidate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
folderHasChildren_(folders, folderId) {
|
||||||
|
for (let i = 0; i < folders.length; i++) {
|
||||||
|
let folder = folders[i];
|
||||||
|
if (folder.parent_id === folderId) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
if (this.updateItems_) {
|
if (this.updateItems_) {
|
||||||
this.logger().debug('Rebuilding items...', this.notesParentType, this.selectedJoplinItemId, this.selectedSearchId);
|
this.logger().debug('Rebuilding items...', this.notesParentType, this.selectedJoplinItemId, this.selectedSearchId);
|
||||||
const wasSelectedItemId = this.selectedJoplinItemId;
|
const wasSelectedItemId = this.selectedJoplinItemId;
|
||||||
const previousParentType = this.notesParentType;
|
const previousParentType = this.notesParentType;
|
||||||
|
|
||||||
let newItems = this.folders.slice();
|
let newItems = [];
|
||||||
|
const orderFolders = (parentId) => {
|
||||||
|
for (let i = 0; i < this.folders.length; i++) {
|
||||||
|
const f = this.folders[i];
|
||||||
|
const folderParentId = f.parent_id ? f.parent_id : '';
|
||||||
|
if (folderParentId === parentId) {
|
||||||
|
newItems.push(f);
|
||||||
|
if (this.folderHasChildren_(this.folders, f.id)) orderFolders(f.id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
orderFolders('');
|
||||||
|
|
||||||
if (this.tags.length) {
|
if (this.tags.length) {
|
||||||
if (newItems.length) newItems.push('-');
|
if (newItems.length) newItems.push('-');
|
||||||
|
|||||||
@@ -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»"
|
||||||
@@ -460,13 +461,17 @@ msgstr "No es pot inicialitzar el sincronitzador."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Està començant la sincronització..."
|
msgstr "Està començant la sincronització..."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "S'està cancel·lant... Espereu."
|
msgstr "S'està cancel·lant... Espereu."
|
||||||
|
|
||||||
|
#, 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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command>pot ser «add», «remove» o «list» per a assignar o suprimir "
|
"<tag-command>pot ser «add», «remove» o «list» per a assignar o suprimir "
|
||||||
"[tag] de la [nota], o per a llistar les notes associades amb [tag]. L'ordre "
|
"[tag] de la [nota], o per a llistar les notes associades amb [tag]. L'ordre "
|
||||||
@@ -585,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..."
|
||||||
@@ -592,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"
|
||||||
@@ -604,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"
|
||||||
@@ -620,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"
|
||||||
@@ -632,19 +681,34 @@ msgstr "Retalla"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Enganxa"
|
msgstr "Enganxa"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Seleccioneu una data"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Cerca a totes les notes"
|
msgstr "Cerca a totes les notes"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "Search in current note"
|
||||||
|
msgstr "Cerca a totes les notes"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Visualització"
|
msgstr "Visualització"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -653,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"
|
||||||
@@ -677,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"
|
||||||
@@ -703,15 +751,30 @@ 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í"
|
||||||
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "No"
|
msgstr "No"
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
"El servei de desa-retalls de webs és actiu i configurat per a iniciar-se "
|
"El servei de desa-retalls de webs és actiu i configurat per a iniciar-se "
|
||||||
@@ -762,19 +825,40 @@ msgstr "Pas 2: Instal·leu l'extensió"
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr "Baixeu i instal·leu l'extensió adient per al vostre navegador:"
|
msgstr "Baixeu i instal·leu l'extensió adient per al vostre navegador:"
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
#, fuzzy
|
||||||
msgstr "Comprova la configuració de la sincronització"
|
msgid "Advanced options"
|
||||||
|
msgstr "Mostra les opcions avançades"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Desa"
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Comprova la configuració de la sincronització"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr "Tramet"
|
msgstr "Tramet"
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Desa"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -860,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"
|
||||||
|
|
||||||
@@ -910,21 +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 "Switch between note and 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»."
|
||||||
|
|
||||||
@@ -934,6 +1007,15 @@ msgstr ""
|
|||||||
"Ara mateix no hi ha cap bloc de notes. Creeu-ne un fent clic a «Bloc de "
|
"Ara mateix no hi ha cap bloc de notes. Creeu-ne un fent clic a «Bloc de "
|
||||||
"notes nou»."
|
"notes nou»."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Obre..."
|
msgstr "Obre..."
|
||||||
|
|
||||||
@@ -947,6 +1029,12 @@ msgstr "Anomena i desa..."
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr "Copia el camí al porta-retalls"
|
msgstr "Copia el camí al porta-retalls"
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr "Missatge o enllaç no suportat: %s"
|
msgstr "Missatge o enllaç no suportat: %s"
|
||||||
@@ -959,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 ""
|
||||||
|
|
||||||
@@ -1046,24 +1137,83 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Elements obtinguts: %d/%d."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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"
|
||||||
@@ -1105,6 +1255,9 @@ msgstr ""
|
|||||||
"No es pot actualitzar el testimoni: manquen les dades d'autenticació. Si "
|
"No es pot actualitzar el testimoni: manquen les dades d'autenticació. Si "
|
||||||
"comenceu altre cop la sincronització, potser es corregeixi el problema."
|
"comenceu altre cop la sincronització, potser es corregeixi el problema."
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Sense títol"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1152,10 +1305,6 @@ msgstr "Elements remots suprimits: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Elements obtinguts: %d/%d."
|
msgstr "Elements obtinguts: %d/%d."
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Estat: %s"
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "S'està cancel·lant..."
|
msgstr "S'està cancel·lant..."
|
||||||
|
|
||||||
@@ -1183,32 +1332,25 @@ 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"
|
||||||
|
|
||||||
msgid "Cannot move notebook to this location"
|
msgid "Cannot move notebook to this location"
|
||||||
msgstr "No es pot moure el bloc de notes a aquesta ubicació"
|
msgstr "No es pot moure el bloc de notes a aquesta ubicació"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "Ja existeix un bloc de notes amb aquest títol: «%s»"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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ó"
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Sense títol"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Aquesta nota no té informació de geolocalització."
|
msgstr "Aquesta nota no té informació de geolocalització."
|
||||||
|
|
||||||
@@ -1220,15 +1362,12 @@ 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»"
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Editor de text"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"L'editor que s'usarà per a obrir una nota. Si no s'indica cap, intentarà "
|
|
||||||
"detectar automàticament l'editor predeterminat."
|
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Llengua"
|
msgstr "Llengua"
|
||||||
@@ -1260,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"
|
||||||
|
|
||||||
@@ -1275,15 +1418,65 @@ 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"
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr "Nota: no funciona en tots els entorns d'escriptori."
|
msgstr "Nota: no funciona en tots els entorns d'escriptori."
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Percentatge de zoom global"
|
msgstr "Percentatge de zoom global"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Tipus de lletra de l'editor"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Tipus de lletra de l'editor"
|
msgstr "Tipus de lletra de l'editor"
|
||||||
|
|
||||||
@@ -1298,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ó"
|
||||||
|
|
||||||
@@ -1313,6 +1513,18 @@ msgstr "%d hora"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "%d hores"
|
msgstr "%d hores"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Editor de text"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"L'editor que s'usarà per a obrir una nota. Si no s'indica cap, intentarà "
|
||||||
|
"detectar automàticament l'editor predeterminat."
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Mostra les opcions avançades"
|
msgstr "Mostra les opcions avançades"
|
||||||
|
|
||||||
@@ -1329,13 +1541,6 @@ 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"
|
||||||
|
|
||||||
@@ -1360,7 +1565,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1370,6 +1576,32 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Fitxer d'exportació del Joplin"
|
msgstr "Fitxer d'exportació del Joplin"
|
||||||
|
|
||||||
@@ -1382,6 +1614,13 @@ msgstr "Directori d'exportació del Joplin"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Fitxer d'exportació de l'Evernote"
|
msgstr "Fitxer d'exportació de l'Evernote"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Directori d'exportació del Joplin"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fitxer"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Directori"
|
msgstr "Directori"
|
||||||
|
|
||||||
@@ -1456,6 +1695,12 @@ msgstr "Alarmes programades"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "A les %s.%s"
|
msgstr "A les %s.%s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 "Ara mateix no hi ha cap nota. Creeu-ne una fent clic en el botó (+)."
|
msgstr "Ara mateix no hi ha cap nota. Creeu-ne una fent clic en el botó (+)."
|
||||||
|
|
||||||
@@ -1484,6 +1729,10 @@ msgstr "Voleu moure %d notes al bloc de notes «%s»?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Premeu per a establir la contrasenya de desxifratge."
|
msgstr "Premeu per a establir la contrasenya de desxifratge."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr "Estableix una alarma"
|
||||||
|
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Desa l'alarma"
|
msgstr "Desa l'alarma"
|
||||||
|
|
||||||
@@ -1496,8 +1745,34 @@ msgstr "Confirmació"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Cancel·la la sincronització"
|
msgstr "Cancel·la la sincronització"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr "S'està cancel·lant... Espereu."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "Comprova la configuració de la sincronització"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "L'aplicació s'ha autoritzat correctament."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Elements obtinguts: %d/%d."
|
msgstr "Elements obtinguts: %d/%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1532,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"
|
||||||
@@ -1587,6 +1873,10 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Tipus d'imatge no admesa: %s"
|
msgstr "Tipus d'imatge no admesa: %s"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Adjunta una imatge"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Adjunta una imatge"
|
msgstr "Adjunta una imatge"
|
||||||
|
|
||||||
@@ -1611,6 +1901,12 @@ msgstr "Mostra les metadades"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Mostra-ho al mapa"
|
msgstr "Mostra-ho al mapa"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Edita"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Suprimeix el bloc de notes"
|
msgstr "Suprimeix el bloc de notes"
|
||||||
|
|
||||||
@@ -1633,3 +1929,24 @@ 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."
|
||||||
|
#~ msgstr "Estat: %s"
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "Ja existeix un bloc de notes amb aquest títol: «%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 "
|
||||||
@@ -448,13 +449,17 @@ msgstr "Nelze zavézt synchronizátor."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Zahajuji synchronizaci..."
|
msgstr "Zahajuji synchronizaci..."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Zastavuji, chvíli strpení."
|
msgstr "Zastavuji, chvíli strpení."
|
||||||
|
|
||||||
|
#, 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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command> může být \"add\", \"remove\" nebo \"list\" - přidat (add) či "
|
"<tag-command> může být \"add\", \"remove\" nebo \"list\" - přidat (add) či "
|
||||||
"odebrat (remove) [tag] k [poznámce], nebo vypsat (list) seznam poznámek "
|
"odebrat (remove) [tag] k [poznámce], nebo vypsat (list) seznam poznámek "
|
||||||
@@ -567,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í..."
|
||||||
@@ -574,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"
|
||||||
@@ -586,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"
|
||||||
@@ -602,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"
|
||||||
@@ -614,19 +663,34 @@ msgstr "Vyjmout"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Vložit"
|
msgstr "Vložit"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Vybrat datum"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Hledat ve všech poznámkách"
|
msgstr "Hledat ve všech poznámkách"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "Search in current note"
|
||||||
|
msgstr "Hledat ve všech poznámkách"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Zobrazit"
|
msgstr "Zobrazit"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -635,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"
|
||||||
@@ -659,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"
|
||||||
@@ -685,15 +733,30 @@ 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"
|
||||||
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Ne"
|
msgstr "Ne"
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -737,19 +800,40 @@ msgstr ""
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
#, fuzzy
|
||||||
msgstr "Zkontrolujte nastavení synchronizace"
|
msgid "Advanced options"
|
||||||
|
msgstr "Ukázat pokročilé volby"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Uložit"
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Zkontrolujte nastavení synchronizace"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Uložit"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -830,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"
|
||||||
|
|
||||||
@@ -882,22 +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 "Switch between note and 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\"."
|
||||||
|
|
||||||
@@ -905,6 +977,15 @@ msgid ""
|
|||||||
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
||||||
msgstr "Nemáte žádný zápisník. Vytvořte jeden kliknutím na \"Nový zápisník\"."
|
msgstr "Nemáte žádný zápisník. Vytvořte jeden kliknutím na \"Nový zápisník\"."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Otevřít..."
|
msgstr "Otevřít..."
|
||||||
|
|
||||||
@@ -918,6 +999,12 @@ msgstr "Uložit jako..."
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr "Nepodporovaný link či zpráva: %s"
|
msgstr "Nepodporovaný link či zpráva: %s"
|
||||||
@@ -928,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 ""
|
||||||
|
|
||||||
@@ -1016,24 +1106,82 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Získané položky: %d/%d."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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"
|
||||||
@@ -1075,6 +1223,9 @@ msgstr ""
|
|||||||
"Nelze obnovit token: chybí autentizační data. Restart synchronizace může "
|
"Nelze obnovit token: chybí autentizační data. Restart synchronizace může "
|
||||||
"tento problém vyřešit. "
|
"tento problém vyřešit. "
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Bez názvu"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1122,10 +1273,6 @@ msgstr "Položky smazané na vzdáleném úložišti: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Získané položky: %d/%d."
|
msgstr "Získané položky: %d/%d."
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Stav: %s."
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "Zastavuji..."
|
msgstr "Zastavuji..."
|
||||||
|
|
||||||
@@ -1153,21 +1300,6 @@ 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"
|
||||||
|
|
||||||
msgid "Conflicts"
|
|
||||||
msgstr "Konflikty"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Cannot move notebook to this location"
|
|
||||||
msgstr "Poznámku nelze přesunout do zápisníku \"%s\""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "Zápisník s tímto názvem již existuje: \"%s\""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|
||||||
msgstr "Zápisník se nemůže jmenovat \"%s\", tento název je rezervován."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Bez názvu"
|
msgstr "Bez názvu"
|
||||||
@@ -1176,13 +1308,21 @@ msgstr "Bez názvu"
|
|||||||
msgid "updated date"
|
msgid "updated date"
|
||||||
msgstr "Upraveno: %d."
|
msgstr "Upraveno: %d."
|
||||||
|
|
||||||
|
msgid "Conflicts"
|
||||||
|
msgstr "Konflikty"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Cannot move notebook to this location"
|
||||||
|
msgstr "Poznámku nelze přesunout do zápisníku \"%s\""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
|
msgstr "Zápisník se nemůže jmenovat \"%s\", tento název je rezervován."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Vytvořeno: %d."
|
msgstr "Vytvořeno: %d."
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Bez názvu"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Tato poznámka nemá informace o poloze."
|
msgstr "Tato poznámka nemá informace o poloze."
|
||||||
|
|
||||||
@@ -1194,15 +1334,12 @@ 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\""
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Textový editor"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Editor ve kterém budou otvírány poznámky. Pokud není specifikováno, aplikace "
|
|
||||||
"se pokusí o autodetekci defaultního editoru."
|
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Jazyk"
|
msgstr "Jazyk"
|
||||||
@@ -1235,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)"
|
||||||
|
|
||||||
@@ -1250,15 +1391,65 @@ 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"
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Globální zoom"
|
msgstr "Globální zoom"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Rodina písma v editoru"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Rodina písma v editoru"
|
msgstr "Rodina písma v editoru"
|
||||||
|
|
||||||
@@ -1273,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"
|
||||||
|
|
||||||
@@ -1288,6 +1486,18 @@ msgstr "%d hodina"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "%d hodin"
|
msgstr "%d hodin"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Textový editor"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"Editor ve kterém budou otvírány poznámky. Pokud není specifikováno, aplikace "
|
||||||
|
"se pokusí o autodetekci defaultního editoru."
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Ukázat pokročilé volby"
|
msgstr "Ukázat pokročilé volby"
|
||||||
|
|
||||||
@@ -1304,13 +1514,6 @@ 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"
|
||||||
|
|
||||||
@@ -1335,7 +1538,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1345,6 +1549,32 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Soubor Joplin Export"
|
msgstr "Soubor Joplin Export"
|
||||||
|
|
||||||
@@ -1357,6 +1587,13 @@ msgstr "Složka pro export"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Soubor Evernote Exportu"
|
msgstr "Soubor Evernote Exportu"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Složka pro export"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Soubor"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Adresář"
|
msgstr "Adresář"
|
||||||
|
|
||||||
@@ -1431,6 +1668,12 @@ msgstr "Nadcházející alarmy"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "Na %s: %s"
|
msgstr "Na %s: %s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 "Nemáte žádné poznámky. Vytvořte jednu kliknutím na tlačítko (+)."
|
msgstr "Nemáte žádné poznámky. Vytvořte jednu kliknutím na tlačítko (+)."
|
||||||
|
|
||||||
@@ -1459,6 +1702,10 @@ msgstr "Přesunout poznámky %d do zápisníku \"%s\"?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Stiskněte pro zadání hesla k dešifrování."
|
msgstr "Stiskněte pro zadání hesla k dešifrování."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr "Nastavit alarm"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Nastavit alarm"
|
msgstr "Nastavit alarm"
|
||||||
@@ -1472,8 +1719,34 @@ msgstr "Potvrdit"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Zrušit synchronizaci"
|
msgstr "Zrušit synchronizaci"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr "Zastavuji, chvíli strpení."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "Zkontrolujte nastavení synchronizace"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "Aplikace byla úspěšně autorizována."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Získané položky: %d/%d."
|
msgstr "Získané položky: %d/%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1501,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"
|
||||||
@@ -1556,6 +1840,10 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Nepodporovaný formát obrázku: %s"
|
msgstr "Nepodporovaný formát obrázku: %s"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Přiložit obrázek"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Přiložit obrázek"
|
msgstr "Přiložit obrázek"
|
||||||
|
|
||||||
@@ -1580,6 +1868,12 @@ msgstr "Zobrazit metadata"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Zobrazit na map+"
|
msgstr "Zobrazit na map+"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Upravit"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Smazat zápisník"
|
msgstr "Smazat zápisník"
|
||||||
|
|
||||||
@@ -1602,5 +1896,26 @@ 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."
|
||||||
|
#~ msgstr "Stav: %s."
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "Zápisník s tímto názvem již existuje: \"%s\""
|
||||||
|
|
||||||
#~ msgid "Searches"
|
#~ msgid "Searches"
|
||||||
#~ msgstr "Hledané výrazy"
|
#~ msgstr "Hledané výrazy"
|
||||||
|
|||||||
@@ -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-"
|
||||||
@@ -452,13 +453,17 @@ msgstr "Kan ikke initialisere synkroniseringen."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Starter synkronisering."
|
msgstr "Starter synkronisering."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Annullerer... Vent venligst."
|
msgstr "Annullerer... Vent venligst."
|
||||||
|
|
||||||
|
#, 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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command> (mærke-kommando) kan enten være \"add\" (tilføj), \"remove"
|
"<tag-command> (mærke-kommando) kan enten være \"add\" (tilføj), \"remove"
|
||||||
"\" (slet) eller \"list\" (liste) for at tilføje eller fjerne mærke [tag] fra "
|
"\" (slet) eller \"list\" (liste) for at tilføje eller fjerne mærke [tag] fra "
|
||||||
@@ -572,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..."
|
||||||
@@ -579,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"
|
||||||
@@ -591,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"
|
||||||
@@ -607,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"
|
||||||
@@ -619,19 +668,34 @@ msgstr "Klip"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Indsæt"
|
msgstr "Indsæt"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Vælg dato"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Søg i alle noter"
|
msgstr "Søg i alle noter"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "Search in current note"
|
||||||
|
msgstr "Søg i alle noter"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Vis"
|
msgstr "Vis"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -640,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"
|
||||||
@@ -664,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"
|
||||||
@@ -690,15 +738,30 @@ 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"
|
||||||
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Nej"
|
msgstr "Nej"
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -742,19 +805,40 @@ msgstr ""
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
#, fuzzy
|
||||||
msgstr "Check synkroniserings Indstillinger"
|
msgid "Advanced options"
|
||||||
|
msgstr "Vis avancerede indstillinger"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Gem"
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Check synkroniserings Indstillinger"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr "Gem"
|
msgstr "Gem"
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Gem"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -839,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"
|
||||||
|
|
||||||
@@ -891,22 +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 "Switch between note and 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\"."
|
||||||
|
|
||||||
@@ -914,6 +986,15 @@ msgid ""
|
|||||||
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
||||||
msgstr "Der er ingen notesbog. Opret en ved at klikke på \"Ny Notesbog\"."
|
msgstr "Der er ingen notesbog. Opret en ved at klikke på \"Ny Notesbog\"."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Åben..."
|
msgstr "Åben..."
|
||||||
|
|
||||||
@@ -927,6 +1008,12 @@ msgstr "Gem som..."
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr "Ugyldigt- eller ulovligt link eller besked: %s"
|
msgstr "Ugyldigt- eller ulovligt link eller besked: %s"
|
||||||
@@ -937,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 ""
|
||||||
|
|
||||||
@@ -1025,24 +1115,82 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Hentede emner: %d/%d."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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"
|
||||||
@@ -1084,6 +1232,9 @@ msgstr ""
|
|||||||
"Kan ikke opdatere token: Godkendelses data mangler. Prøv at starte "
|
"Kan ikke opdatere token: Godkendelses data mangler. Prøv at starte "
|
||||||
"synkronisering igen, det kan løse problemet."
|
"synkronisering igen, det kan løse problemet."
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Samlet"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1131,10 +1282,6 @@ msgstr "Slettede fjern-emner: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Hentede emner: %d/%d."
|
msgstr "Hentede emner: %d/%d."
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Tilstand: %s."
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "Annullerer..."
|
msgstr "Annullerer..."
|
||||||
|
|
||||||
@@ -1162,21 +1309,6 @@ 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"
|
||||||
|
|
||||||
msgid "Conflicts"
|
|
||||||
msgstr "Konflikter"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Cannot move notebook to this location"
|
|
||||||
msgstr "Kan ikke flytte note til \"%s\" notesbog"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "En notesbog bruger allerede dette navn: \"%s\""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|
||||||
msgstr "Notesbøger kan ikke få navnet \"%s\", da det er en beskyttet titel."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Samlet"
|
msgstr "Samlet"
|
||||||
@@ -1185,13 +1317,21 @@ msgstr "Samlet"
|
|||||||
msgid "updated date"
|
msgid "updated date"
|
||||||
msgstr "Opdateret %d."
|
msgstr "Opdateret %d."
|
||||||
|
|
||||||
|
msgid "Conflicts"
|
||||||
|
msgstr "Konflikter"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Cannot move notebook to this location"
|
||||||
|
msgstr "Kan ikke flytte note til \"%s\" notesbog"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
|
msgstr "Notesbøger kan ikke få navnet \"%s\", da det er en beskyttet titel."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Oprettet: %d."
|
msgstr "Oprettet: %d."
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Samlet"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Denne note har ingen geolokations oplysninger."
|
msgstr "Denne note har ingen geolokations oplysninger."
|
||||||
|
|
||||||
@@ -1203,15 +1343,12 @@ 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"
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Tekst editor"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Editor der bruges til at åbne note. Hvis ingen valgt/udfyldt, vil auto-"
|
|
||||||
"funktion søge efter standard editor."
|
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Sprog"
|
msgstr "Sprog"
|
||||||
@@ -1244,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"
|
||||||
|
|
||||||
@@ -1259,15 +1400,65 @@ 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"
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Global zoom procent"
|
msgstr "Global zoom procent"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Rediger skrifttype"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Rediger skrifttype"
|
msgstr "Rediger skrifttype"
|
||||||
|
|
||||||
@@ -1282,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"
|
||||||
|
|
||||||
@@ -1297,6 +1495,18 @@ msgstr "%d time"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "%d timer"
|
msgstr "%d timer"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Tekst editor"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"Editor der bruges til at åbne note. Hvis ingen valgt/udfyldt, vil auto-"
|
||||||
|
"funktion søge efter standard editor."
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Vis avancerede indstillinger"
|
msgstr "Vis avancerede indstillinger"
|
||||||
|
|
||||||
@@ -1313,13 +1523,6 @@ 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"
|
||||||
|
|
||||||
@@ -1344,7 +1547,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1354,6 +1558,32 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Joplin eksport fil"
|
msgstr "Joplin eksport fil"
|
||||||
|
|
||||||
@@ -1366,6 +1596,13 @@ msgstr "Joplin eksport mappe"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Evernote eksport fil"
|
msgstr "Evernote eksport fil"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Joplin eksport mappe"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fil"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Indeks"
|
msgstr "Indeks"
|
||||||
|
|
||||||
@@ -1440,6 +1677,12 @@ msgstr "Kommende alarmer"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "På %s: %s"
|
msgstr "På %s: %s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 "Der er ingen noter. Opret note ved at klikke på (+) knappen."
|
msgstr "Der er ingen noter. Opret note ved at klikke på (+) knappen."
|
||||||
|
|
||||||
@@ -1468,6 +1711,10 @@ msgstr "Flyt %d noter til notesbogen \"%s\"?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Klik for at gemme dekrypterings kodeord."
|
msgstr "Klik for at gemme dekrypterings kodeord."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr "Indstil alarm"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Indstil alarm"
|
msgstr "Indstil alarm"
|
||||||
@@ -1481,8 +1728,34 @@ msgstr "Bekræft"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Afbryd synkronisering"
|
msgstr "Afbryd synkronisering"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr "Annullerer... Vent venligst."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "Check synkroniserings Indstillinger"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "Denne app er succesfuldt godkendt."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Hentede emner: %d/%d."
|
msgstr "Hentede emner: %d/%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1510,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"
|
||||||
@@ -1565,6 +1849,10 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Ulovlig billedtype: %s"
|
msgstr "Ulovlig billedtype: %s"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Vedhæft foto"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Vedhæft foto"
|
msgstr "Vedhæft foto"
|
||||||
|
|
||||||
@@ -1589,6 +1877,12 @@ msgstr "Vis metadata"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Vis på kort"
|
msgstr "Vis på kort"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Ret"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Slet notesbog"
|
msgstr "Slet notesbog"
|
||||||
|
|
||||||
@@ -1611,6 +1905,27 @@ 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."
|
||||||
|
#~ msgstr "Tilstand: %s."
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "En notesbog bruger allerede dette navn: \"%s\""
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "For more information about End-To-End Encryption (E2EE) and advices on "
|
#~ "For more information about End-To-End Encryption (E2EE) and advices on "
|
||||||
#~ "how to enable it please check the documentation"
|
#~ "how to enable it please check the documentation"
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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:"
|
||||||
@@ -408,13 +408,16 @@ msgstr ""
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
@@ -505,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 ""
|
||||||
@@ -512,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"
|
||||||
@@ -524,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
|
||||||
@@ -540,7 +583,7 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -552,19 +595,31 @@ msgstr ""
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "View"
|
msgid "Search in current note"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -573,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"
|
||||||
@@ -597,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 ""
|
||||||
@@ -623,15 +659,30 @@ 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 ""
|
||||||
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -675,19 +726,39 @@ msgstr ""
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
msgid "Advanced options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Save"
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -757,6 +828,9 @@ msgstr ""
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -807,21 +881,6 @@ msgstr ""
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Switch between note and 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 ""
|
||||||
|
|
||||||
@@ -829,6 +888,15 @@ msgid ""
|
|||||||
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -842,6 +910,12 @@ msgstr ""
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -852,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 ""
|
||||||
|
|
||||||
@@ -938,24 +1015,78 @@ 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"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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 ""
|
||||||
@@ -995,6 +1126,9 @@ msgid ""
|
|||||||
"synchronisation again may fix the problem."
|
"synchronisation again may fix the problem."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1036,10 +1170,6 @@ msgstr ""
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1067,32 +1197,25 @@ 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 ""
|
||||||
|
|
||||||
msgid "Cannot move notebook to this location"
|
msgid "Cannot move notebook to this location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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 ""
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1104,12 +1227,11 @@ msgstr ""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
@@ -1142,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 ""
|
||||||
|
|
||||||
@@ -1157,15 +1282,63 @@ 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 ""
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1177,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 ""
|
||||||
|
|
||||||
@@ -1192,6 +1372,14 @@ msgstr ""
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1206,11 +1394,6 @@ 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 ""
|
||||||
|
|
||||||
@@ -1235,7 +1418,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1245,6 +1429,28 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1257,6 +1463,12 @@ msgstr ""
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1326,6 +1538,12 @@ msgstr ""
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -1354,6 +1572,9 @@ msgstr ""
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1366,8 +1587,31 @@ msgstr ""
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1395,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 ""
|
||||||
@@ -1449,6 +1704,9 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1473,6 +1731,12 @@ msgstr ""
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
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`."
|
||||||
@@ -457,13 +460,16 @@ msgstr "No se puede inicializar sincronizador."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Iniciando sincronización..."
|
msgstr "Iniciando sincronización..."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr "Descargando recursos..."
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Cancelando... Por favor espere."
|
msgstr "Cancelando... Por favor espere."
|
||||||
|
|
||||||
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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command> puede ser \"add\", \"remove\" o \"list\" para asignar o "
|
"<tag-command> puede ser \"add\", \"remove\" o \"list\" para asignar o "
|
||||||
"eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El "
|
"eliminar [tag] de [note], o para listar las notas asociadas con [tag]. El "
|
||||||
@@ -581,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..."
|
||||||
@@ -588,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"
|
||||||
@@ -600,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"
|
||||||
@@ -616,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"
|
||||||
@@ -628,20 +674,32 @@ msgstr "Cortar"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Pegar"
|
msgstr "Pegar"
|
||||||
|
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Seleccionar todo"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr "Negrita"
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr "Cursiva"
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr "Enlace"
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr "Introduce fecha"
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
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"
|
||||||
|
|
||||||
msgid "View"
|
msgid "Search in current note"
|
||||||
msgstr "Ver"
|
msgstr "Buscar en nota actual"
|
||||||
|
|
||||||
|
msgid "&View"
|
||||||
|
msgstr "&Ver"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
msgstr "Cambia la barra lateral"
|
msgstr "Cambia la barra lateral"
|
||||||
@@ -649,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"
|
||||||
@@ -673,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"
|
||||||
@@ -699,20 +738,34 @@ 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í"
|
||||||
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "No"
|
msgstr "No"
|
||||||
|
|
||||||
#, fuzzy
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
"El servicio de recorte web está habilitado y configurado para inicie "
|
"El servicio de recorte web está habilitado y configurado para que inicie "
|
||||||
"automaticamente"
|
"automáticamente."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Status: Started on port %d"
|
msgid "Status: Started on port %d"
|
||||||
@@ -759,19 +812,39 @@ 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:"
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
msgid "Advanced options"
|
||||||
msgstr "Comprobar sincronización"
|
msgstr "Opciones avanzadas"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr "Token de autorización:"
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr "Copiar token"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Guardar"
|
msgstr "Explorar..."
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Comprobar sincronización"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "Aplicar"
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr "Aceptar"
|
msgstr "Aceptar"
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Guardar"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -856,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"
|
||||||
|
|
||||||
@@ -906,21 +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 "Switch between note and 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»."
|
||||||
|
|
||||||
@@ -928,12 +989,21 @@ msgid ""
|
|||||||
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
||||||
msgstr "No hay ninguna libreta. Cree una pulsando en «Libreta nueva»."
|
msgstr "No hay ninguna libreta. Cree una pulsando en «Libreta nueva»."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr "Localización"
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr "URL"
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr "Propiedades de nota"
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Abrir..."
|
msgstr "Abrir..."
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "This file could not be opened: %s"
|
msgid "This file could not be opened: %s"
|
||||||
msgstr "No se ha podido guardar esta libreta: %s"
|
msgstr "No se ha podido abrir este archivo: %s"
|
||||||
|
|
||||||
msgid "Save as..."
|
msgid "Save as..."
|
||||||
msgstr "Guardar como..."
|
msgstr "Guardar como..."
|
||||||
@@ -941,6 +1011,12 @@ msgstr "Guardar como..."
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr "Copiar la ruta en el portapapeles"
|
msgstr "Copiar la ruta en el portapapeles"
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr "Copiar enlace"
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
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"
|
||||||
msgstr "Enlace o mensaje no soportado: %s"
|
msgstr "Enlace o mensaje no soportado: %s"
|
||||||
@@ -953,17 +1029,20 @@ 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 ""
|
msgstr "texto destacado"
|
||||||
|
|
||||||
msgid "emphasized text"
|
msgid "emphasized text"
|
||||||
msgstr ""
|
msgstr "texto resaltado"
|
||||||
|
|
||||||
msgid "List item"
|
msgid "List item"
|
||||||
msgstr ""
|
msgstr "Listar elementos"
|
||||||
|
|
||||||
msgid "Insert Hyperlink"
|
msgid "Insert Hyperlink"
|
||||||
msgstr ""
|
msgstr "Insertar hipervínculo"
|
||||||
|
|
||||||
msgid "Attach file"
|
msgid "Attach file"
|
||||||
msgstr "Adjuntar archivo"
|
msgstr "Adjuntar archivo"
|
||||||
@@ -974,37 +1053,36 @@ msgstr "Etiquetas"
|
|||||||
msgid "Set alarm"
|
msgid "Set alarm"
|
||||||
msgstr "Establecer alarma"
|
msgstr "Establecer alarma"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "In: %s"
|
msgid "In: %s"
|
||||||
msgstr "%s: %s"
|
msgstr "En: %s"
|
||||||
|
|
||||||
msgid "Hyperlink"
|
msgid "Hyperlink"
|
||||||
msgstr ""
|
msgstr "Hipervínculo"
|
||||||
|
|
||||||
msgid "Code"
|
msgid "Code"
|
||||||
msgstr ""
|
msgstr "Código"
|
||||||
|
|
||||||
msgid "Numbered List"
|
msgid "Numbered List"
|
||||||
msgstr ""
|
msgstr "Lista numerada"
|
||||||
|
|
||||||
msgid "Bulleted List"
|
msgid "Bulleted List"
|
||||||
msgstr ""
|
msgstr "Lista con viñetas"
|
||||||
|
|
||||||
msgid "Checkbox"
|
msgid "Checkbox"
|
||||||
msgstr ""
|
msgstr "Casilla"
|
||||||
|
|
||||||
msgid "Heading"
|
msgid "Heading"
|
||||||
msgstr ""
|
msgstr "Título"
|
||||||
|
|
||||||
msgid "Horizontal Rule"
|
msgid "Horizontal Rule"
|
||||||
msgstr ""
|
msgstr "Regla horizontal"
|
||||||
|
|
||||||
msgid "Click to stop external editing"
|
msgid "Click to stop external editing"
|
||||||
msgstr ""
|
msgstr "Pulsa para detener la edición externa"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Watching..."
|
msgid "Watching..."
|
||||||
msgstr "Cancelando..."
|
msgstr "Mirando..."
|
||||||
|
|
||||||
msgid "to-do"
|
msgid "to-do"
|
||||||
msgstr "lista de tareas"
|
msgstr "lista de tareas"
|
||||||
@@ -1040,24 +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
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Descifrando elementos: %d/%d"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Fetching resources: %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"
|
||||||
@@ -1099,6 +1234,9 @@ msgstr ""
|
|||||||
"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar "
|
"No se ha podido actualizar token: faltan datos de autenticación. Reiniciar "
|
||||||
"la sincronización podría solucionar el problema."
|
"la sincronización podría solucionar el problema."
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Sin título"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1146,10 +1284,6 @@ msgstr "Elementos remotos borrados: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Elementos obtenidos: %d/%d."
|
msgstr "Elementos obtenidos: %d/%d."
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Estado: «%s»."
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "Cancelando..."
|
msgstr "Cancelando..."
|
||||||
|
|
||||||
@@ -1177,35 +1311,25 @@ 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"
|
||||||
|
|
||||||
msgid "Cannot move notebook to this location"
|
msgid "Cannot move notebook to this location"
|
||||||
msgstr "No se puede mover la libreta a este lugar"
|
msgstr "No se puede mover la libreta a este lugar"
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "Ya existe una libreta con este nombre: «%s»"
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
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."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "title"
|
|
||||||
msgstr "Sin título"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "updated date"
|
|
||||||
msgstr "Actualizado: %d."
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Creado: %d."
|
msgstr "fecha de creación"
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Sin título"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Esta nota no tiene informacion de geolocalización."
|
msgstr "Esta nota no tiene informacion de geolocalización."
|
||||||
@@ -1218,15 +1342,15 @@ 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»"
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Editor de texto"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"El editor que se usará para abrir una nota. Se intentará auto-detectar el "
|
"Atención: Si cambias esta ubicación, asegúrate de copiar todo tu contenido "
|
||||||
"editor predeterminado si no se proporciona ninguno."
|
"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"
|
||||||
@@ -1258,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"
|
||||||
|
|
||||||
@@ -1273,15 +1401,67 @@ 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"
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr "Nota: No funciona en todos los entornos de escritorio."
|
msgstr "Nota: No funciona en todos los entornos de escritorio."
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
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"
|
||||||
|
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"
|
||||||
|
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Editar tamaño de fuente"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Fuente del editor"
|
msgstr "Fuente del editor"
|
||||||
|
|
||||||
@@ -1296,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"
|
||||||
|
|
||||||
@@ -1311,6 +1498,17 @@ msgstr "%d hora"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "%d horas"
|
msgstr "%d horas"
|
||||||
|
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Editor de texto"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"El comando del editor (puede incluir argumentos) que se utilizará para abrir "
|
||||||
|
"una nota. Si no se provee ninguno se intentará auto detectar el editor por "
|
||||||
|
"defecto."
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Mostrar opciones avanzadas"
|
msgstr "Mostrar opciones avanzadas"
|
||||||
|
|
||||||
@@ -1328,13 +1526,6 @@ 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"
|
||||||
|
|
||||||
@@ -1354,21 +1545,49 @@ msgid "WebDAV password"
|
|||||||
msgstr "Contraseña de WebDAV"
|
msgstr "Contraseña de WebDAV"
|
||||||
|
|
||||||
msgid "Custom TLS certificates"
|
msgid "Custom TLS certificates"
|
||||||
msgstr ""
|
msgstr "Certificados TLS personalizados"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Lista de rutas de los directorios de dónde cargar los certificados separados "
|
||||||
|
"por comas, o la ruta individual de los certificados. Por ejemplo: /mi/"
|
||||||
|
"cert_dir, /otro/personalizado.pem. Tenga en cuenta que si realiza cambios en "
|
||||||
|
"la configuración de los certificados debe guardar los cambios antes de "
|
||||||
|
"pulsar en \"Comprobar la configuración de sincronización\"."
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
msgstr ""
|
msgstr "Ignorar errores en certificados TLS"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
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"
|
||||||
|
|
||||||
@@ -1381,6 +1600,12 @@ msgstr "Directorio para exportar de Joplin"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Archivo exportado de Evernote"
|
msgstr "Archivo exportado de Evernote"
|
||||||
|
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Directorio para exportar JSON"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Archivo"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Directorio"
|
msgstr "Directorio"
|
||||||
|
|
||||||
@@ -1455,6 +1680,12 @@ msgstr "Alarmas próximas"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "En %s: %s"
|
msgstr "En %s: %s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr "Permiso para usar tu cámara"
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
msgstr "El permiso para usar tu cámara es necesario."
|
||||||
|
|
||||||
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 (+)."
|
||||||
|
|
||||||
@@ -1483,7 +1714,9 @@ 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"
|
||||||
|
msgstr "Quitar alarma"
|
||||||
|
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Establecer alarma"
|
msgstr "Establecer alarma"
|
||||||
|
|
||||||
@@ -1496,9 +1729,39 @@ msgstr "Confirmar"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Cancelar sincronización"
|
msgstr "Cancelar sincronización"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
msgid "Checking... Please wait."
|
||||||
msgid "Decrypting items: %d/%d"
|
msgstr "Comprobando... Por favor espere."
|
||||||
msgstr "Elementos obtenidos: %d/%d."
|
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "¡Éxito! La configuración de sincronización es correcta."
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
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:"
|
||||||
|
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "¡La aplicacion ha sido autorizada!"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
"No se pudo autorizar aplicación:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Por favor, vuelva a intentarlo."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Decrypted items: %s / %s"
|
||||||
|
msgstr "Descifrando elementos: %s / %s"
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr "Nuevas etiquetas:"
|
msgstr "Nuevas etiquetas:"
|
||||||
@@ -1532,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"
|
||||||
@@ -1587,6 +1861,9 @@ 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"
|
||||||
|
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Tomar foto"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Adjuntar foto"
|
msgstr "Adjuntar foto"
|
||||||
|
|
||||||
@@ -1611,6 +1888,12 @@ msgstr "Mostrar metadatos"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Ver en un mapa"
|
msgstr "Ver en un mapa"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr "Ir a origen URL"
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editar"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Borrar libreta"
|
msgstr "Borrar libreta"
|
||||||
|
|
||||||
@@ -1634,6 +1917,32 @@ 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."
|
||||||
|
#~ msgstr "Estado: «%s»."
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "Ya existe una libreta con este nombre: «%s»"
|
||||||
|
|
||||||
#~ msgid ""
|
#~ msgid ""
|
||||||
#~ "For more information about End-To-End Encryption (E2EE) and advices on "
|
#~ "For more information about End-To-End Encryption (E2EE) and advices on "
|
||||||
#~ "how to enable it please check the documentation"
|
#~ "how to enable it please check the documentation"
|
||||||
@@ -1678,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"
|
||||||
|
|
||||||
@@ -1690,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."
|
||||||
|
|
||||||
@@ -1743,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`."
|
||||||
@@ -455,13 +456,17 @@ msgstr "Ezin has daiteke sinkronizazio prozesua."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Sinkronizazioa hasten..."
|
msgstr "Sinkronizazioa hasten..."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Bertan behera uzten... itxaron, mesedez."
|
msgstr "Bertan behera uzten... itxaron, mesedez."
|
||||||
|
|
||||||
|
#, 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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command> izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik "
|
"<tag-command> izan daiteke \"add\", \"remove\" edo \"list\" [oharra]tik "
|
||||||
"[etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak "
|
"[etiketa] esleitu edo kentzeko, edo [etiketa]rekin elkartutako oharrak "
|
||||||
@@ -578,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 ""
|
||||||
@@ -586,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"
|
||||||
@@ -598,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"
|
||||||
|
|
||||||
@@ -605,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"
|
||||||
@@ -615,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"
|
||||||
@@ -627,19 +676,33 @@ msgstr "Moztu"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Itsatsi"
|
msgstr "Itsatsi"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Data aukeratu"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Bilatu ohar guztietan"
|
msgstr "Bilatu ohar guztietan"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "Search in current note"
|
||||||
|
msgstr "Bilatu ohar guztietan"
|
||||||
|
|
||||||
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -648,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"
|
||||||
@@ -673,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"
|
||||||
@@ -699,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 ""
|
||||||
|
|
||||||
@@ -709,6 +767,9 @@ msgstr ""
|
|||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "E"
|
msgstr "E"
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -753,19 +814,40 @@ msgid "Download and install the relevant extension for your browser:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Check synchronisation configuration"
|
msgid "Advanced options"
|
||||||
msgstr "Sinkronizazioa utzi"
|
msgstr "Erakutsi aukera aurreratuak"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Gorde"
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Sinkronizazioa utzi"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Gorde"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -847,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"
|
||||||
|
|
||||||
@@ -901,21 +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 "Switch between note and 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."
|
||||||
|
|
||||||
@@ -923,6 +994,15 @@ msgid ""
|
|||||||
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
||||||
msgstr "Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta."
|
msgstr "Momentuz ez dago koadernorik. Sortu bat \"Koaderno berria\" sakatuta."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -937,6 +1017,12 @@ msgstr "Gorde aldaketak"
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr "Esteka edo mezu ez dago onartua: %s"
|
msgstr "Esteka edo mezu ez dago onartua: %s"
|
||||||
@@ -947,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 ""
|
||||||
|
|
||||||
@@ -1038,25 +1127,82 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Itemak eskuratuta: %d%d."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
msgstr "Baliabideak: %d."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
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"
|
||||||
@@ -1100,6 +1246,9 @@ msgstr ""
|
|||||||
"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, "
|
"Tokena ezin eguneratu daiteke: egiaztatze-datuak desagertuta daude. Agian, "
|
||||||
"berriro sinkronizatzeak arazoa konpon lezake."
|
"berriro sinkronizatzeak arazoa konpon lezake."
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Titulu gabekoa"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
@@ -1146,10 +1295,6 @@ msgstr "Urruneko itemak ezabatuta: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Itemak eskuratuta: %d%d."
|
msgstr "Itemak eskuratuta: %d%d."
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Egoera: \"%s\"."
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "Bertan behera uzten..."
|
msgstr "Bertan behera uzten..."
|
||||||
|
|
||||||
@@ -1177,22 +1322,6 @@ 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"
|
||||||
|
|
||||||
msgid "Conflicts"
|
|
||||||
msgstr "Gatazkak"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Cannot move notebook to this location"
|
|
||||||
msgstr "Ezin eraman daiteke oharra \"%s\" koadernora"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "Dagoeneko bada koaderno bat izen horrekin: \"%s\""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|
||||||
msgstr ""
|
|
||||||
"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka"
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Titulu gabekoa"
|
msgstr "Titulu gabekoa"
|
||||||
@@ -1201,13 +1330,22 @@ msgstr "Titulu gabekoa"
|
|||||||
msgid "updated date"
|
msgid "updated date"
|
||||||
msgstr "Eguneratuta: %d."
|
msgstr "Eguneratuta: %d."
|
||||||
|
|
||||||
|
msgid "Conflicts"
|
||||||
|
msgstr "Gatazkak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Cannot move notebook to this location"
|
||||||
|
msgstr "Ezin eraman daiteke oharra \"%s\" koadernora"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
|
msgstr ""
|
||||||
|
"Koadernoak ezin izendatu daitezke \"%s\", izen hori Joplinek gordeta dauka"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Sortuta: %d."
|
msgstr "Sortuta: %d."
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Titulu gabekoa"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Ohar honek ez du geokokapen informaziorik."
|
msgstr "Ohar honek ez du geokokapen informaziorik."
|
||||||
|
|
||||||
@@ -1219,15 +1357,12 @@ 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"
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Testu editorea"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia "
|
|
||||||
"igartzen ahaleginduko da."
|
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Hizkuntza"
|
msgstr "Hizkuntza"
|
||||||
@@ -1262,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"
|
||||||
|
|
||||||
@@ -1279,16 +1418,66 @@ 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 ""
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Ezarri aplikazioaren zoomaren ehunekoa"
|
msgstr "Ezarri aplikazioaren zoomaren ehunekoa"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Oharra editatu."
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1300,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"
|
||||||
|
|
||||||
@@ -1315,6 +1511,18 @@ msgstr "% ordua"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "% orduak"
|
msgstr "% orduak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Testu editorea"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"Editorea erabiliko da oharra zabaltzeko. Ez badago zehaztutakorik lehenetsia "
|
||||||
|
"igartzen ahaleginduko da."
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Erakutsi aukera aurreratuak"
|
msgstr "Erakutsi aukera aurreratuak"
|
||||||
|
|
||||||
@@ -1332,12 +1540,6 @@ 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"
|
||||||
|
|
||||||
@@ -1365,7 +1567,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1375,6 +1578,32 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Evernotetik esportatutako fitxategiak"
|
msgstr "Evernotetik esportatutako fitxategiak"
|
||||||
@@ -1389,6 +1618,13 @@ msgstr ""
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Evernotetik esportatutako fitxategiak"
|
msgstr "Evernotetik esportatutako fitxategiak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Evernotetik esportatutako fitxategiak"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Fitxategia"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1461,6 +1697,12 @@ msgstr "Hurrengo alarmak"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "On %s: %s"
|
msgstr "On %s: %s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 "Ez dago oharrik. Sortu bat (+) botoian klik eginaz."
|
msgstr "Ez dago oharrik. Sortu bat (+) botoian klik eginaz."
|
||||||
|
|
||||||
@@ -1489,6 +1731,10 @@ msgstr "Mugitu %d oharrak \"%s\" koadernora?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Sakatu deszifratze pasahitza ezartzeko."
|
msgstr "Sakatu deszifratze pasahitza ezartzeko."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr "Ezarri alarma"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Ezarri alarma"
|
msgstr "Ezarri alarma"
|
||||||
@@ -1502,8 +1748,34 @@ msgstr "Baieztatu"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Sinkronizazioa utzi"
|
msgstr "Sinkronizazioa utzi"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr "Bertan behera uzten... itxaron, mesedez."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "Sinkronizazioa utzi"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "Aplikazioak baimena hartu du."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Itemak eskuratuta: %d%d."
|
msgstr "Itemak eskuratuta: %d%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1531,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"
|
||||||
@@ -1586,6 +1870,10 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Irudi formatua ez onartua: %s"
|
msgstr "Irudi formatua ez onartua: %s"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Argazkia erantsi"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Argazkia erantsi"
|
msgstr "Argazkia erantsi"
|
||||||
|
|
||||||
@@ -1610,6 +1898,12 @@ msgstr "Erakutsi metadatuak"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Ikusi mapan"
|
msgstr "Ikusi mapan"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Editatu"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Ezabatu koadernoa"
|
msgstr "Ezabatu koadernoa"
|
||||||
|
|
||||||
@@ -1632,6 +1926,23 @@ 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
|
||||||
|
#~ msgid "State: %s."
|
||||||
|
#~ msgstr "Egoera: \"%s\"."
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "Dagoeneko bada koaderno bat izen horrekin: \"%s\""
|
||||||
|
|
||||||
#~ msgid "Searches"
|
#~ msgid "Searches"
|
||||||
#~ msgstr "Bilaketak"
|
#~ msgstr "Bilaketak"
|
||||||
|
|
||||||
@@ -1667,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"
|
||||||
|
|
||||||
@@ -1679,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"
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -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»."
|
||||||
@@ -452,13 +453,17 @@ msgstr "Non é posíbel iniciar o sincronizador."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Iniciando sincronización..."
|
msgstr "Iniciando sincronización..."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Cancelando... Agarde."
|
msgstr "Cancelando... Agarde."
|
||||||
|
|
||||||
|
#, 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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command> pode ser «add», «remove» ou «list» para asignar ou eliminar "
|
"<tag-command> pode ser «add», «remove» ou «list» para asignar ou eliminar "
|
||||||
"[tag] da [note] ou para listar as notas asociadas con [tag]. A orde «list» "
|
"[tag] da [note] ou para listar as notas asociadas con [tag]. A orde «list» "
|
||||||
@@ -572,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..."
|
||||||
@@ -579,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"
|
||||||
@@ -591,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"
|
||||||
@@ -607,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"
|
||||||
@@ -619,19 +668,34 @@ msgstr "Cortar"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Pegar"
|
msgstr "Pegar"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Seleccionar data"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Buscar en todas as notas"
|
msgstr "Buscar en todas as notas"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "Search in current note"
|
||||||
|
msgstr "Buscar en todas as notas"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Vista"
|
msgstr "Vista"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -640,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"
|
||||||
@@ -664,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"
|
||||||
@@ -690,15 +738,30 @@ 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"
|
||||||
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Non"
|
msgstr "Non"
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -742,19 +805,40 @@ msgstr ""
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
#, fuzzy
|
||||||
msgstr "Comprobar a configuración da sincronización"
|
msgid "Advanced options"
|
||||||
|
msgstr "Mostrar opcións avanzadas"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Gardar"
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Comprobar a configuración da sincronización"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Gardar"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -837,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"
|
||||||
|
|
||||||
@@ -888,22 +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 "Switch between note and 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»."
|
||||||
|
|
||||||
@@ -911,6 +983,15 @@ msgid ""
|
|||||||
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
||||||
msgstr "Este no é un caderno. Cree un, premendo en «Novo caderno»."
|
msgstr "Este no é un caderno. Cree un, premendo en «Novo caderno»."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Abrir…"
|
msgstr "Abrir…"
|
||||||
|
|
||||||
@@ -924,6 +1005,12 @@ msgstr "Gardar como…"
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr "Ligazón ou mensaxe incompatíbeis: %s"
|
msgstr "Ligazón ou mensaxe incompatíbeis: %s"
|
||||||
@@ -936,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 ""
|
||||||
|
|
||||||
@@ -1024,24 +1114,83 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Elementos obtidos: %d/%d."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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"
|
||||||
@@ -1083,6 +1232,9 @@ msgstr ""
|
|||||||
"Non é posíbel actualizar o «token»: faltan datos da autenticación. Iniciar a "
|
"Non é posíbel actualizar o «token»: faltan datos da autenticación. Iniciar a "
|
||||||
"sincronización de novo pode arranxar o problema."
|
"sincronización de novo pode arranxar o problema."
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Sen título"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1130,10 +1282,6 @@ msgstr "Elementos remotos borrados: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Elementos obtidos: %d/%d."
|
msgstr "Elementos obtidos: %d/%d."
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Estado: %s."
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "Cancelando..."
|
msgstr "Cancelando..."
|
||||||
|
|
||||||
@@ -1161,21 +1309,6 @@ 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"
|
||||||
|
|
||||||
msgid "Conflicts"
|
|
||||||
msgstr "Conflitos"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Cannot move notebook to this location"
|
|
||||||
msgstr "Non é posíbel mover a nota ao caderno «%s»"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "Xa existe un caderno con ese título: «%s»"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|
||||||
msgstr "Os cadernos non poden levar o nome «%s» porque é un título reservado."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Sen título"
|
msgstr "Sen título"
|
||||||
@@ -1184,13 +1317,21 @@ msgstr "Sen título"
|
|||||||
msgid "updated date"
|
msgid "updated date"
|
||||||
msgstr "Actualizado: %d."
|
msgstr "Actualizado: %d."
|
||||||
|
|
||||||
|
msgid "Conflicts"
|
||||||
|
msgstr "Conflitos"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Cannot move notebook to this location"
|
||||||
|
msgstr "Non é posíbel mover a nota ao caderno «%s»"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
|
msgstr "Os cadernos non poden levar o nome «%s» porque é un título reservado."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Creado: %d."
|
msgstr "Creado: %d."
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Sen título"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Esta nota non ten información de xeolocalización."
|
msgstr "Esta nota non ten información de xeolocalización."
|
||||||
|
|
||||||
@@ -1202,15 +1343,12 @@ 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»"
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Editor de texto"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Editor a usar para abrir unha nota. Se non se indica ningún tentará detectar "
|
|
||||||
"automaticamente o editor predeterminado."
|
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Idioma"
|
msgstr "Idioma"
|
||||||
@@ -1243,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"
|
||||||
|
|
||||||
@@ -1258,15 +1400,65 @@ 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"
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Porcentaxe de ampliación"
|
msgstr "Porcentaxe de ampliación"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Familia de tipos de letra do editor"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Familia de tipos de letra do editor"
|
msgstr "Familia de tipos de letra do editor"
|
||||||
|
|
||||||
@@ -1281,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"
|
||||||
|
|
||||||
@@ -1296,6 +1495,18 @@ msgstr "%d hora"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "%d horas"
|
msgstr "%d horas"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Editor de texto"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"Editor a usar para abrir unha nota. Se non se indica ningún tentará detectar "
|
||||||
|
"automaticamente o editor predeterminado."
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Mostrar opcións avanzadas"
|
msgstr "Mostrar opcións avanzadas"
|
||||||
|
|
||||||
@@ -1312,13 +1523,6 @@ 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"
|
||||||
|
|
||||||
@@ -1343,7 +1547,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1353,6 +1558,32 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Ficheiro de exportación do Joplin"
|
msgstr "Ficheiro de exportación do Joplin"
|
||||||
|
|
||||||
@@ -1365,6 +1596,13 @@ msgstr "Cartafol de exportación do Joplin"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Ficheiro de exportación de Evernote"
|
msgstr "Ficheiro de exportación de Evernote"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Cartafol de exportación do Joplin"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Ficheiro"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Cartafol"
|
msgstr "Cartafol"
|
||||||
|
|
||||||
@@ -1439,6 +1677,12 @@ msgstr "Alarmas próximas"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "En %s: %s"
|
msgstr "En %s: %s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 "Non ten notas actualmente. Cree unha premendo no botón (+)."
|
msgstr "Non ten notas actualmente. Cree unha premendo no botón (+)."
|
||||||
|
|
||||||
@@ -1467,6 +1711,10 @@ msgstr "Mover %d notas para o caderno \"%s\"?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Prema para estabelecer o contrasinal de descifrado."
|
msgstr "Prema para estabelecer o contrasinal de descifrado."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr "Estabelecer alarma"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Estabelecer alarma"
|
msgstr "Estabelecer alarma"
|
||||||
@@ -1480,8 +1728,34 @@ msgstr "Confirmar"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Cancelar sincronización"
|
msgstr "Cancelar sincronización"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr "Cancelando... Agarde."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "Comprobar a configuración da sincronización"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "O aplicativo foi autorizado correctamente."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Elementos obtidos: %d/%d."
|
msgstr "Elementos obtidos: %d/%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1509,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"
|
||||||
@@ -1564,6 +1849,10 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Tipo de imaxe incompatíbel: %s"
|
msgstr "Tipo de imaxe incompatíbel: %s"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Anexar foto"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Anexar foto"
|
msgstr "Anexar foto"
|
||||||
|
|
||||||
@@ -1588,6 +1877,12 @@ msgstr "Mostrar metadatos"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Ver no mapa"
|
msgstr "Ver no mapa"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Edtar"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Eliminar caderno"
|
msgstr "Eliminar caderno"
|
||||||
|
|
||||||
@@ -1609,3 +1904,24 @@ 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."
|
||||||
|
#~ msgstr "Estado: %s."
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "Xa existe un caderno con ese título: «%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:"
|
||||||
@@ -455,6 +455,9 @@ msgstr "Ne mogu započeti sinkronizaciju."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Započinjem sinkronizaciju..."
|
msgstr "Započinjem sinkronizaciju..."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Prekidam... Pričekaj."
|
msgstr "Prekidam... Pričekaj."
|
||||||
|
|
||||||
@@ -462,7 +465,7 @@ msgstr "Prekidam... Pričekaj."
|
|||||||
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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<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 "
|
||||||
@@ -576,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 ""
|
||||||
@@ -584,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"
|
||||||
@@ -596,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"
|
||||||
|
|
||||||
@@ -603,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"
|
||||||
@@ -613,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"
|
||||||
@@ -625,19 +673,33 @@ msgstr "Izreži"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Zalijepi"
|
msgstr "Zalijepi"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Odaberi datum"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Pretraži u svim bilješkama"
|
msgstr "Pretraži u svim bilješkama"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "Search in current note"
|
||||||
|
msgstr "Pretraži u svim bilješkama"
|
||||||
|
|
||||||
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -646,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"
|
||||||
@@ -672,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"
|
||||||
@@ -698,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 ""
|
||||||
|
|
||||||
@@ -708,6 +765,9 @@ msgstr ""
|
|||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "N"
|
msgstr "N"
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -752,19 +812,40 @@ msgid "Download and install the relevant extension for your browser:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Check synchronisation configuration"
|
msgid "Advanced options"
|
||||||
msgstr "Prekini sinkronizaciju"
|
msgstr "Prikaži napredne opcije"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Spremi"
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Prekini sinkronizaciju"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Spremi"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -834,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"
|
||||||
|
|
||||||
@@ -889,21 +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 "Switch between note and 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\"."
|
||||||
|
|
||||||
@@ -911,6 +981,15 @@ msgid ""
|
|||||||
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
||||||
msgstr "Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\"."
|
msgstr "Ovdje nema bilježnica. Stvori novu pritiskom na \"Nova bilježnica\"."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -925,6 +1004,12 @@ msgstr "Spremi promjene"
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr "Nepodržana poveznica ili poruka: %s"
|
msgstr "Nepodržana poveznica ili poruka: %s"
|
||||||
@@ -935,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 ""
|
||||||
|
|
||||||
@@ -1025,24 +1113,82 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Stvorene lokalne stavke: %d."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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"
|
||||||
@@ -1082,6 +1228,9 @@ msgid ""
|
|||||||
"synchronisation again may fix the problem."
|
"synchronisation again may fix the problem."
|
||||||
msgstr "Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju."
|
msgstr "Nedostaju podaci za ovjeru. Pokušaj ponovo započeti sinkronizaciju."
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Nenaslovljen"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1129,10 +1278,6 @@ msgstr "Obrisane udaljene stavke: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Stvorene lokalne stavke: %d."
|
msgstr "Stvorene lokalne stavke: %d."
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Stanje: \"%s\"."
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "Prekidam..."
|
msgstr "Prekidam..."
|
||||||
|
|
||||||
@@ -1161,21 +1306,6 @@ 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."
|
||||||
|
|
||||||
msgid "Conflicts"
|
|
||||||
msgstr "Sukobi"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Cannot move notebook to this location"
|
|
||||||
msgstr "Ne mogu premjestiti bilješku u bilježnicu %s"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "Bilježnica s ovim naslovom već postoji: \"%s\""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|
||||||
msgstr "Naslov \"%s\" je rezerviran i ne može se koristiti."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Nenaslovljen"
|
msgstr "Nenaslovljen"
|
||||||
@@ -1184,13 +1314,21 @@ msgstr "Nenaslovljen"
|
|||||||
msgid "updated date"
|
msgid "updated date"
|
||||||
msgstr "Ažurirano: %d."
|
msgstr "Ažurirano: %d."
|
||||||
|
|
||||||
|
msgid "Conflicts"
|
||||||
|
msgstr "Sukobi"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Cannot move notebook to this location"
|
||||||
|
msgstr "Ne mogu premjestiti bilješku u bilježnicu %s"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
|
msgstr "Naslov \"%s\" je rezerviran i ne može se koristiti."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Stvoreno: %d."
|
msgstr "Stvoreno: %d."
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Nenaslovljen"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Ova bilješka nema geolokacijske informacije."
|
msgstr "Ova bilješka nema geolokacijske informacije."
|
||||||
|
|
||||||
@@ -1202,15 +1340,12 @@ 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"
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Uređivač teksta"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni "
|
|
||||||
"jedan nije odabran, pokušati će se sa default programom."
|
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Jezik"
|
msgstr "Jezik"
|
||||||
@@ -1245,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"
|
||||||
|
|
||||||
@@ -1263,15 +1402,64 @@ 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 ""
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Uredi bilješku."
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1283,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"
|
||||||
|
|
||||||
@@ -1298,6 +1493,18 @@ msgstr "%d sat"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "%d sati"
|
msgstr "%d sati"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Uređivač teksta"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"Program za uređivanje koji će biti korišten za uređivanje bilješki. Ako ni "
|
||||||
|
"jedan nije odabran, pokušati će se sa default programom."
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Prikaži napredne opcije"
|
msgstr "Prikaži napredne opcije"
|
||||||
|
|
||||||
@@ -1312,13 +1519,6 @@ 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 ""
|
||||||
|
|
||||||
@@ -1343,7 +1543,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1353,6 +1554,32 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Evernote izvozne datoteke"
|
msgstr "Evernote izvozne datoteke"
|
||||||
@@ -1367,6 +1594,13 @@ msgstr ""
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Evernote izvozne datoteke"
|
msgstr "Evernote izvozne datoteke"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Evernote izvozne datoteke"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Datoteka"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1437,6 +1671,12 @@ msgstr "Nadolazeća upozorenja"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "On %s: %s"
|
msgstr "On %s: %s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 "Trenutno nema bilješki. Stvori novu klikom na (+) gumb."
|
msgstr "Trenutno nema bilješki. Stvori novu klikom na (+) gumb."
|
||||||
|
|
||||||
@@ -1465,6 +1705,10 @@ msgstr "Premjesti %d bilješke u bilježnicu \"%s\"?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr "Postavi upozorenje"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Postavi upozorenje"
|
msgstr "Postavi upozorenje"
|
||||||
@@ -1478,8 +1722,34 @@ msgstr "Potvrdi"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Prekini sinkronizaciju"
|
msgstr "Prekini sinkronizaciju"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr "Prekidam... Pričekaj."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "Prekini sinkronizaciju"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "Aplikacija je uspješno autorizirana."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Stvorene lokalne stavke: %d."
|
msgstr "Stvorene lokalne stavke: %d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1507,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 ""
|
||||||
@@ -1563,6 +1845,10 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Nepodržana vrsta slike: %s"
|
msgstr "Nepodržana vrsta slike: %s"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Priloži sliku"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Priloži sliku"
|
msgstr "Priloži sliku"
|
||||||
|
|
||||||
@@ -1587,6 +1873,12 @@ msgstr "Prikaži metapodatke"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Vidi na karti"
|
msgstr "Vidi na karti"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Uredi"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Obriši bilježnicu"
|
msgstr "Obriši bilježnicu"
|
||||||
|
|
||||||
@@ -1609,6 +1901,24 @@ 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
|
||||||
|
#~ msgid "State: %s."
|
||||||
|
#~ msgstr "Stanje: \"%s\"."
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "Bilježnica s ovim naslovom već postoji: \"%s\""
|
||||||
|
|
||||||
#~ msgid "Searches"
|
#~ msgid "Searches"
|
||||||
#~ msgstr "Pretraživanja"
|
#~ msgstr "Pretraživanja"
|
||||||
|
|
||||||
@@ -1643,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"
|
||||||
|
|
||||||
@@ -1655,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."
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -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:"
|
||||||
@@ -408,13 +408,16 @@ msgstr ""
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
@@ -505,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 ""
|
||||||
@@ -512,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"
|
||||||
@@ -524,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
|
||||||
@@ -540,7 +583,7 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -552,19 +595,31 @@ msgstr ""
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "View"
|
msgid "Search in current note"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -573,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"
|
||||||
@@ -597,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 ""
|
||||||
@@ -623,15 +659,30 @@ 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 ""
|
||||||
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -675,19 +726,39 @@ msgstr ""
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
msgid "Advanced options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Notes and settings are stored in: %s"
|
msgid "Notes and settings are stored in: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Save"
|
msgid "Browse..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -757,6 +828,9 @@ msgstr ""
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -807,21 +881,6 @@ msgstr ""
|
|||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Switch between note and 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 ""
|
||||||
|
|
||||||
@@ -829,6 +888,15 @@ msgid ""
|
|||||||
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
"There is currently no notebook. Create one by clicking on \"New notebook\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -842,6 +910,12 @@ msgstr ""
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -852,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 ""
|
||||||
|
|
||||||
@@ -938,24 +1015,78 @@ 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"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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 ""
|
||||||
@@ -995,6 +1126,9 @@ msgid ""
|
|||||||
"synchronisation again may fix the problem."
|
"synchronisation again may fix the problem."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1036,10 +1170,6 @@ msgstr ""
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1067,32 +1197,25 @@ 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 ""
|
||||||
|
|
||||||
msgid "Cannot move notebook to this location"
|
msgid "Cannot move notebook to this location"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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 ""
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1104,12 +1227,11 @@ msgstr ""
|
|||||||
msgid "Cannot move note to \"%s\" notebook"
|
msgid "Cannot move note to \"%s\" notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
@@ -1142,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 ""
|
||||||
|
|
||||||
@@ -1157,15 +1282,63 @@ 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 ""
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1177,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 ""
|
||||||
|
|
||||||
@@ -1192,6 +1372,14 @@ msgstr ""
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1206,11 +1394,6 @@ 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 ""
|
||||||
|
|
||||||
@@ -1235,7 +1418,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1245,6 +1429,28 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1257,6 +1463,12 @@ msgstr ""
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1326,6 +1538,12 @@ msgstr ""
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -1354,6 +1572,9 @@ msgstr ""
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1366,8 +1587,31 @@ msgstr ""
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1395,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 ""
|
||||||
@@ -1449,6 +1704,9 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1473,6 +1731,12 @@ msgstr ""
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
1918
CliClient/locales/ko.po
Normal file
1918
CliClient/locales/ko.po
Normal file
File diff suppressed because it is too large
Load Diff
1921
CliClient/locales/nb_NO.po
Normal file
1921
CliClient/locales/nb_NO.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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`."
|
||||||
@@ -456,13 +457,17 @@ msgstr "Kan de synchronisatie niet starten."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Synchronisatie starten..."
|
msgstr "Synchronisatie starten..."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "Annuleren.. Even geduld."
|
msgstr "Annuleren.. Even geduld."
|
||||||
|
|
||||||
|
#, 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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command> kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te "
|
"<tag-command> kan \"add\", \"remove\" of \"list\" zijn om een [tag] toe te "
|
||||||
"voegen aan een [note] of te verwijderen, of om alle notities geassocieerd "
|
"voegen aan een [note] of te verwijderen, of om alle notities geassocieerd "
|
||||||
@@ -580,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 ""
|
||||||
@@ -588,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"
|
||||||
@@ -600,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"
|
||||||
|
|
||||||
@@ -607,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"
|
||||||
@@ -617,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"
|
||||||
@@ -629,19 +678,33 @@ msgstr "Knip"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Plak"
|
msgstr "Plak"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Selecteer datum"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Zoek in alle notities"
|
msgstr "Zoek in alle notities"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "Search in current note"
|
||||||
|
msgstr "Zoek in alle notities"
|
||||||
|
|
||||||
|
msgid "&View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -650,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"
|
||||||
@@ -675,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"
|
||||||
@@ -701,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 ""
|
||||||
|
|
||||||
@@ -711,6 +769,9 @@ msgstr ""
|
|||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "N"
|
msgstr "N"
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -755,19 +816,40 @@ msgid "Download and install the relevant extension for your browser:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Check synchronisation configuration"
|
msgid "Advanced options"
|
||||||
msgstr "Annuleer synchronisatie"
|
msgstr "Toon geavanceerde opties"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Sla op"
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Annuleer synchronisatie"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Sla op"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -849,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"
|
||||||
|
|
||||||
@@ -903,21 +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 "Switch between note and 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."
|
||||||
|
|
||||||
@@ -927,6 +998,15 @@ msgstr ""
|
|||||||
"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw "
|
"U heeft momenteel geen notitieboek. Maak een notitieboek door op \"Nieuw "
|
||||||
"notitieboek\" te klikken."
|
"notitieboek\" te klikken."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -941,6 +1021,12 @@ msgstr "Sla wijzigingen op"
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr "Link of bericht \"%s\" wordt niet ondersteund"
|
msgstr "Link of bericht \"%s\" wordt niet ondersteund"
|
||||||
@@ -951,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 ""
|
||||||
|
|
||||||
@@ -1041,24 +1130,83 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Opgehaalde items: %d/%d."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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"
|
||||||
@@ -1101,6 +1249,9 @@ msgstr ""
|
|||||||
"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de "
|
"Kan token niet vernieuwen: authenticatiedata ontbreekt. Herstarten van de "
|
||||||
"synchronisatie kan het probleem eventueel oplossen. "
|
"synchronisatie kan het probleem eventueel oplossen. "
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Untitled"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1148,10 +1299,6 @@ msgstr "Verwijderde remote items: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Opgehaalde items: %d/%d."
|
msgstr "Opgehaalde items: %d/%d."
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Status: \"%s\""
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "Annuleren..."
|
msgstr "Annuleren..."
|
||||||
|
|
||||||
@@ -1179,23 +1326,6 @@ 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"
|
||||||
|
|
||||||
msgid "Conflicts"
|
|
||||||
msgstr "Conflicten"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Cannot move notebook to this location"
|
|
||||||
msgstr "Kan notitie niet naar notitieboek \"%s\" verplaatsen."
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "Er bestaat al een notitieboek met \"%s\" als titel"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|
||||||
msgstr ""
|
|
||||||
"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd "
|
|
||||||
"woord."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Untitled"
|
msgstr "Untitled"
|
||||||
@@ -1204,13 +1334,23 @@ msgstr "Untitled"
|
|||||||
msgid "updated date"
|
msgid "updated date"
|
||||||
msgstr "Bijgewerkt: %d."
|
msgstr "Bijgewerkt: %d."
|
||||||
|
|
||||||
|
msgid "Conflicts"
|
||||||
|
msgstr "Conflicten"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Cannot move notebook to this location"
|
||||||
|
msgstr "Kan notitie niet naar notitieboek \"%s\" verplaatsen."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
|
msgstr ""
|
||||||
|
"Notitieboeken kunnen niet \"%s\" genoemd worden, dit is een gereserveerd "
|
||||||
|
"woord."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Aangemaakt: %d."
|
msgstr "Aangemaakt: %d."
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Untitled"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Deze notitie bevat geen geo-locatie informatie."
|
msgstr "Deze notitie bevat geen geo-locatie informatie."
|
||||||
|
|
||||||
@@ -1222,16 +1362,12 @@ 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."
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Tekst editor"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"De editor die zal gebruikt worden bij het openen van een notitie. Als er "
|
|
||||||
"geen meegegeven wordt, zal het programma de standaard editor proberen te "
|
|
||||||
"detecteren. "
|
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Taal"
|
msgstr "Taal"
|
||||||
@@ -1266,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"
|
||||||
|
|
||||||
@@ -1283,15 +1423,65 @@ 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 ""
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Bewerk notitie."
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1303,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"
|
||||||
|
|
||||||
@@ -1318,6 +1515,19 @@ msgstr "%d uur"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "%d uren"
|
msgstr "%d uren"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Tekst editor"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"De editor die zal gebruikt worden bij het openen van een notitie. Als er "
|
||||||
|
"geen meegegeven wordt, zal het programma de standaard editor proberen te "
|
||||||
|
"detecteren. "
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Toon geavanceerde opties"
|
msgstr "Toon geavanceerde opties"
|
||||||
|
|
||||||
@@ -1332,13 +1542,6 @@ 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 ""
|
||||||
|
|
||||||
@@ -1365,7 +1568,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1375,6 +1579,32 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Exporteer Evernote bestanden"
|
msgstr "Exporteer Evernote bestanden"
|
||||||
@@ -1389,6 +1619,13 @@ msgstr ""
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Exporteer Evernote bestanden"
|
msgstr "Exporteer Evernote bestanden"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Exporteer Evernote bestanden"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Bestand"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1462,6 +1699,12 @@ msgstr "Meldingen"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "Op %s: %s"
|
msgstr "Op %s: %s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 ""
|
||||||
"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken."
|
"Er zijn momenteel geen notities. Maak een notitie door op (+) te klikken."
|
||||||
@@ -1491,6 +1734,10 @@ msgstr "Verplaats %d notities naar notitieboek \"%s\"?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Klik om het decryptie wachtwoord in te stellen"
|
msgstr "Klik om het decryptie wachtwoord in te stellen"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr "Zet melding"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Zet melding"
|
msgstr "Zet melding"
|
||||||
@@ -1504,8 +1751,34 @@ msgstr "Bevestig"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Annuleer synchronisatie"
|
msgstr "Annuleer synchronisatie"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr "Annuleren.. Even geduld."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "Annuleer synchronisatie"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "De applicatie is succesvol geauthenticeerd."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Opgehaalde items: %d/%d."
|
msgstr "Opgehaalde items: %d/%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1533,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"
|
||||||
@@ -1588,6 +1873,10 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Afbeeldingstype %s wordt niet ondersteund"
|
msgstr "Afbeeldingstype %s wordt niet ondersteund"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Voeg foto toe"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Voeg foto toe"
|
msgstr "Voeg foto toe"
|
||||||
|
|
||||||
@@ -1612,6 +1901,12 @@ msgstr "Toon metadata"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Toon op de kaart"
|
msgstr "Toon op de kaart"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Bewerk"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Verwijder notitieboek"
|
msgstr "Verwijder notitieboek"
|
||||||
|
|
||||||
@@ -1636,6 +1931,24 @@ 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
|
||||||
|
#~ msgid "State: %s."
|
||||||
|
#~ msgstr "Status: \"%s\""
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "Er bestaat al een notitieboek met \"%s\" als titel"
|
||||||
|
|
||||||
#~ msgid "Searches"
|
#~ msgid "Searches"
|
||||||
#~ msgstr "Zoekopdrachten"
|
#~ msgstr "Zoekopdrachten"
|
||||||
|
|
||||||
@@ -1671,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"
|
||||||
|
|
||||||
@@ -1683,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."
|
||||||
|
|||||||
1956
CliClient/locales/nl_NL.po
Normal file
1956
CliClient/locales/nl_NL.po
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
1812
CliClient/locales/ro.po
Normal file
1812
CliClient/locales/ro.po
Normal file
File diff suppressed because it is too large
Load Diff
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`."
|
||||||
@@ -455,13 +456,17 @@ msgstr "Ni moč zagnati sinhronizatorja."
|
|||||||
msgid "Starting synchronisation..."
|
msgid "Starting synchronisation..."
|
||||||
msgstr "Sinhronizacija se začenja."
|
msgstr "Sinhronizacija se začenja."
|
||||||
|
|
||||||
|
msgid "Downloading resources..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Cancelling... Please wait."
|
msgid "Cancelling... Please wait."
|
||||||
msgstr "V preklicu...Prosim počakajte."
|
msgstr "V preklicu...Prosim počakajte."
|
||||||
|
|
||||||
|
#, 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."
|
"`tag list` can be used to list all the tags (use -l for long option)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<tag-command> je lahko \"dodaj\", \"odstrani\" ali \"naštej\", da dodeliš "
|
"<tag-command> je lahko \"dodaj\", \"odstrani\" ali \"naštej\", da dodeliš "
|
||||||
"ali odstraniš [tag] from [note] ali našteje zabeležke povezane z oznako "
|
"ali odstraniš [tag] from [note] ali našteje zabeležke povezane z oznako "
|
||||||
@@ -578,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..."
|
||||||
@@ -585,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"
|
||||||
@@ -597,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"
|
||||||
@@ -613,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"
|
||||||
@@ -625,19 +674,34 @@ msgstr "Izreži"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Prilepi"
|
msgstr "Prilepi"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Izberi datum"
|
||||||
|
|
||||||
msgid "Bold"
|
msgid "Bold"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Italic"
|
msgid "Italic"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit in external editor"
|
msgid "Edit in external editor"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Search in all the notes"
|
msgid "Search in all the notes"
|
||||||
msgstr "Išči znotraj vseh zabeležk"
|
msgstr "Išči znotraj vseh zabeležk"
|
||||||
|
|
||||||
msgid "View"
|
#, fuzzy
|
||||||
|
msgid "Search in current note"
|
||||||
|
msgstr "Išči znotraj vseh zabeležk"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "&View"
|
||||||
msgstr "Pogled"
|
msgstr "Pogled"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
@@ -646,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"
|
||||||
@@ -670,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"
|
||||||
@@ -696,15 +744,30 @@ 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"
|
||||||
|
|
||||||
msgid "No"
|
msgid "No"
|
||||||
msgstr "Ne"
|
msgstr "Ne"
|
||||||
|
|
||||||
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
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 ""
|
||||||
|
|
||||||
@@ -748,19 +811,40 @@ msgstr ""
|
|||||||
msgid "Download and install the relevant extension for your browser:"
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Check synchronisation configuration"
|
#, fuzzy
|
||||||
msgstr "Preveri nastavitve sinhronizacije"
|
msgid "Advanced options"
|
||||||
|
msgstr "Pokaži napredne možnosti"
|
||||||
|
|
||||||
|
msgid "Authorisation token:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy token"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This authorisation token is only needed to allow third-party applications to "
|
||||||
|
"access Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, 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 "Save"
|
msgid "Browse..."
|
||||||
msgstr "Shrani"
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Check synchronisation configuration"
|
||||||
|
msgstr "Preveri nastavitve sinhronizacije"
|
||||||
|
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Submit"
|
msgid "Submit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save"
|
||||||
|
msgstr "Shrani"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Disabling encryption means *all* your notes and attachments are going to be "
|
"Disabling encryption means *all* your notes and attachments are going to be "
|
||||||
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
"re-synchronised and sent unencrypted to the sync target. Do you wish to "
|
||||||
@@ -845,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"
|
||||||
|
|
||||||
@@ -898,22 +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 "Switch between note and 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"
|
||||||
@@ -925,6 +997,15 @@ msgstr ""
|
|||||||
"Trenutno ni tukaj nobene beležnice. Ustvarite jo z klikom na \"Nova beležnica"
|
"Trenutno ni tukaj nobene beležnice. Ustvarite jo z klikom na \"Nova beležnica"
|
||||||
"\"."
|
"\"."
|
||||||
|
|
||||||
|
msgid "Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Note properties"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "Odpri..."
|
msgstr "Odpri..."
|
||||||
|
|
||||||
@@ -938,6 +1019,12 @@ msgstr "Shrani kot..."
|
|||||||
msgid "Copy path to clipboard"
|
msgid "Copy path to clipboard"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy Link Address"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "This attachment is not downloaded or not decrypted yet."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported link or message: %s"
|
msgid "Unsupported link or message: %s"
|
||||||
msgstr "Nepodprta povezava ali sporočilo: %s"
|
msgstr "Nepodprta povezava ali sporočilo: %s"
|
||||||
@@ -950,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 ""
|
||||||
|
|
||||||
@@ -1038,24 +1128,84 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Decrypting items: %d/%d"
|
||||||
|
msgstr "Preneseni predmeti: %d/%d."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Fetching resources: %d"
|
||||||
|
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"
|
||||||
@@ -1097,6 +1247,9 @@ msgstr ""
|
|||||||
"Ne gre osvežiti tokena: manjkajo podatki o avtentikaciji. Ponovno zaženite "
|
"Ne gre osvežiti tokena: manjkajo podatki o avtentikaciji. Ponovno zaženite "
|
||||||
"sinhronizacijo, da morda popravite težavo."
|
"sinhronizacijo, da morda popravite težavo."
|
||||||
|
|
||||||
|
msgid "Untitled"
|
||||||
|
msgstr "Neimenovano"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Could not synchronize with OneDrive.\n"
|
"Could not synchronize with OneDrive.\n"
|
||||||
"\n"
|
"\n"
|
||||||
@@ -1144,10 +1297,6 @@ msgstr "Izbrisani oddaljeni predmeti: %d."
|
|||||||
msgid "Fetched items: %d/%d."
|
msgid "Fetched items: %d/%d."
|
||||||
msgstr "Preneseni predmeti: %d/%d."
|
msgstr "Preneseni predmeti: %d/%d."
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "State: %s."
|
|
||||||
msgstr "Stanje: %s."
|
|
||||||
|
|
||||||
msgid "Cancelling..."
|
msgid "Cancelling..."
|
||||||
msgstr "V preklicu..."
|
msgstr "V preklicu..."
|
||||||
|
|
||||||
@@ -1175,21 +1324,6 @@ 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"
|
||||||
|
|
||||||
msgid "Conflicts"
|
|
||||||
msgstr "Konfikti"
|
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Cannot move notebook to this location"
|
|
||||||
msgstr "Ni moč premakniti zabeležke v \"%s\" beležnico"
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr "Beležnica s tem naslovom že obstaja: \"%s\""
|
|
||||||
|
|
||||||
#, javascript-format
|
|
||||||
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
|
||||||
msgstr "Beležnica ne more biti imenovana \"%s\", ker je to rezerviran naslov."
|
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "title"
|
msgid "title"
|
||||||
msgstr "Neimenovano"
|
msgstr "Neimenovano"
|
||||||
@@ -1198,13 +1332,21 @@ msgstr "Neimenovano"
|
|||||||
msgid "updated date"
|
msgid "updated date"
|
||||||
msgstr "Posodobljeno: %d."
|
msgstr "Posodobljeno: %d."
|
||||||
|
|
||||||
|
msgid "Conflicts"
|
||||||
|
msgstr "Konfikti"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Cannot move notebook to this location"
|
||||||
|
msgstr "Ni moč premakniti zabeležke v \"%s\" beležnico"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Notebooks cannot be named \"%s\", which is a reserved title."
|
||||||
|
msgstr "Beležnica ne more biti imenovana \"%s\", ker je to rezerviran naslov."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "created date"
|
msgid "created date"
|
||||||
msgstr "Ustvarjeno: %d."
|
msgstr "Ustvarjeno: %d."
|
||||||
|
|
||||||
msgid "Untitled"
|
|
||||||
msgstr "Neimenovano"
|
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
msgstr "Ta zabeležke nima geografske lokacije."
|
msgstr "Ta zabeležke nima geografske lokacije."
|
||||||
|
|
||||||
@@ -1216,15 +1358,12 @@ 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"
|
||||||
|
|
||||||
msgid "Text editor"
|
#, javascript-format
|
||||||
msgstr "Urejevalnik besedila"
|
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The editor that will be used to open a note. If none is provided it will try "
|
"Attention: If you change this location, make sure you copy all your content "
|
||||||
"to auto-detect the default editor."
|
"to it before syncing, otherwise all files will be removed! See the FAQ for "
|
||||||
|
"more details: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Urejevalnik, ki bo uporabljen za odpiranje zabeležk. Če noben ni izbran, bo "
|
|
||||||
"avtomatsko zaznan privzeti urejevalnik."
|
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "Jezik"
|
msgstr "Jezik"
|
||||||
@@ -1257,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"
|
||||||
|
|
||||||
@@ -1272,15 +1415,65 @@ 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)"
|
||||||
|
|
||||||
msgid "Note: Does not work in all desktop environments."
|
msgid "Note: Does not work in all desktop environments."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This will allow Joplin to run in the background. It is recommended to enable "
|
||||||
|
"this setting so that your notes are constantly being synchronised, thus "
|
||||||
|
"reducing the number of conflicts."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Start application minimised in the tray icon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Global zoom percentage"
|
msgid "Global zoom percentage"
|
||||||
msgstr "Celokupen procent povečave"
|
msgstr "Celokupen procent povečave"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Editor font size"
|
||||||
|
msgstr "Družina urejevalnika besedilnega stila"
|
||||||
|
|
||||||
msgid "Editor font family"
|
msgid "Editor font family"
|
||||||
msgstr "Družina urejevalnika besedilnega stila"
|
msgstr "Družina urejevalnika besedilnega stila"
|
||||||
|
|
||||||
@@ -1295,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"
|
||||||
|
|
||||||
@@ -1310,6 +1510,18 @@ msgstr "Števil ur: %d"
|
|||||||
msgid "%d hours"
|
msgid "%d hours"
|
||||||
msgstr "Število ur: %d"
|
msgstr "Število ur: %d"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Text editor command"
|
||||||
|
msgstr "Urejevalnik besedila"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The editor command (may include arguments) that will be used to open a note. "
|
||||||
|
"If none is provided it will try to auto-detect the default editor."
|
||||||
|
msgstr ""
|
||||||
|
"Urejevalnik, ki bo uporabljen za odpiranje zabeležk. Če noben ni izbran, bo "
|
||||||
|
"avtomatsko zaznan privzeti urejevalnik."
|
||||||
|
|
||||||
msgid "Show advanced options"
|
msgid "Show advanced options"
|
||||||
msgstr "Pokaži napredne možnosti"
|
msgstr "Pokaži napredne možnosti"
|
||||||
|
|
||||||
@@ -1326,13 +1538,6 @@ 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"
|
||||||
|
|
||||||
@@ -1357,7 +1562,8 @@ msgstr ""
|
|||||||
msgid ""
|
msgid ""
|
||||||
"Comma-separated list of paths to directories to load the certificates from, "
|
"Comma-separated list of paths to directories to load the certificates from, "
|
||||||
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
"or path to individual cert files. For example: /my/cert_dir, /other/custom."
|
||||||
"pem"
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
@@ -1367,6 +1573,32 @@ 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
|
||||||
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Joplin Export File"
|
msgid "Joplin Export File"
|
||||||
msgstr "Joplin izvozna datoteka"
|
msgstr "Joplin izvozna datoteka"
|
||||||
|
|
||||||
@@ -1379,6 +1611,13 @@ msgstr "Joplin izvozno mesto"
|
|||||||
msgid "Evernote Export File"
|
msgid "Evernote Export File"
|
||||||
msgstr "Evernote izvozna datoteka"
|
msgstr "Evernote izvozna datoteka"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Json Export Directory"
|
||||||
|
msgstr "Joplin izvozno mesto"
|
||||||
|
|
||||||
|
msgid "File"
|
||||||
|
msgstr "Datoteka"
|
||||||
|
|
||||||
msgid "Directory"
|
msgid "Directory"
|
||||||
msgstr "Mesto datoteke"
|
msgstr "Mesto datoteke"
|
||||||
|
|
||||||
@@ -1453,6 +1692,12 @@ msgstr "Prihajajoči alarmi"
|
|||||||
msgid "On %s: %s"
|
msgid "On %s: %s"
|
||||||
msgstr "Vključeno %s: %s"
|
msgstr "Vključeno %s: %s"
|
||||||
|
|
||||||
|
msgid "Permission to use camera"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Your permission to use your camera is required."
|
||||||
|
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 "Trenutno ni zabeležk. Ustvarite jo s klikom na (+) gumb."
|
msgstr "Trenutno ni zabeležk. Ustvarite jo s klikom na (+) gumb."
|
||||||
|
|
||||||
@@ -1481,6 +1726,10 @@ msgstr "Premakni %d zabeležk v beležnico \"%s\"?"
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr "Klikni za nastavitev dekripcijskega gesla."
|
msgstr "Klikni za nastavitev dekripcijskega gesla."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr "Nastavi alarm"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Save alarm"
|
msgid "Save alarm"
|
||||||
msgstr "Nastavi alarm"
|
msgstr "Nastavi alarm"
|
||||||
@@ -1494,8 +1743,34 @@ msgstr "Potrdi"
|
|||||||
msgid "Cancel synchronisation"
|
msgid "Cancel synchronisation"
|
||||||
msgstr "Prekliči sinhronizacijo"
|
msgstr "Prekliči sinhronizacijo"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Checking... Please wait."
|
||||||
|
msgstr "V preklicu...Prosim počakajte."
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Success! Synchronisation configuration appears to be correct."
|
||||||
|
msgstr "Preveri nastavitve sinhronizacije"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Error. Please check that URL, username, password, etc. are correct and that "
|
||||||
|
"the sync target is accessible. The reported error was:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "The application has been authorised!"
|
||||||
|
msgstr "Aplikacija je bila uspešno avtorizirana."
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid "Decrypting items: %d/%d"
|
msgid "Decrypted items: %s / %s"
|
||||||
msgstr "Preneseni predmeti: %d/%d."
|
msgstr "Preneseni predmeti: %d/%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
@@ -1523,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"
|
||||||
@@ -1578,6 +1864,10 @@ msgstr ""
|
|||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "Nepodprt tip slike: %s"
|
msgstr "Nepodprt tip slike: %s"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr "Pripni fotografijo"
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr "Pripni fotografijo"
|
msgstr "Pripni fotografijo"
|
||||||
|
|
||||||
@@ -1602,6 +1892,12 @@ msgstr "Prikaži meta podatke"
|
|||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "Prikaži na zemljevidu"
|
msgstr "Prikaži na zemljevidu"
|
||||||
|
|
||||||
|
msgid "Go to source URL"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit"
|
||||||
|
msgstr "Uredi"
|
||||||
|
|
||||||
msgid "Delete notebook"
|
msgid "Delete notebook"
|
||||||
msgstr "Izbriši beležnico"
|
msgstr "Izbriši beležnico"
|
||||||
|
|
||||||
@@ -1624,5 +1920,26 @@ 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."
|
||||||
|
#~ msgstr "Stanje: %s."
|
||||||
|
|
||||||
|
#~ msgid "A notebook with this title already exists: \"%s\""
|
||||||
|
#~ msgstr "Beležnica s tem naslovom že obstaja: \"%s\""
|
||||||
|
|
||||||
#~ msgid "Searches"
|
#~ msgid "Searches"
|
||||||
#~ msgstr "Iskalni niz"
|
#~ msgstr "Iskalni niz"
|
||||||
|
|||||||
1957
CliClient/locales/sv.po
Normal file
1957
CliClient/locales/sv.po
Normal file
File diff suppressed because it is too large
Load Diff
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
File diff suppressed because it is too large
Load Diff
2251
CliClient/package-lock.json
generated
2251
CliClient/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -15,11 +15,12 @@
|
|||||||
"years": [
|
"years": [
|
||||||
2016,
|
2016,
|
||||||
2017,
|
2017,
|
||||||
2018
|
2018,
|
||||||
|
2019
|
||||||
],
|
],
|
||||||
"owner": "Laurent Cozic"
|
"owner": "Laurent Cozic"
|
||||||
},
|
},
|
||||||
"version": "1.0.108",
|
"version": "1.0.125",
|
||||||
"bin": {
|
"bin": {
|
||||||
"joplin": "./main.js"
|
"joplin": "./main.js"
|
||||||
},
|
},
|
||||||
@@ -31,18 +32,21 @@
|
|||||||
"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",
|
||||||
"fs-extra": "^5.0.0",
|
"fs-extra": "^5.0.0",
|
||||||
"html-entities": "^1.2.1",
|
"html-entities": "^1.2.1",
|
||||||
"html-minifier": "^3.5.15",
|
"html-minifier": "^3.5.15",
|
||||||
|
"image-data-uri": "^2.0.0",
|
||||||
"image-type": "^3.0.0",
|
"image-type": "^3.0.0",
|
||||||
"joplin-turndown": "^4.0.3",
|
"joplin-turndown": "^4.0.11",
|
||||||
"joplin-turndown-plugin-gfm": "^1.0.2",
|
"joplin-turndown-plugin-gfm": "^1.0.7",
|
||||||
"jssha": "^2.3.0",
|
"jssha": "^2.3.0",
|
||||||
"levenshtein": "^1.0.5",
|
"levenshtein": "^1.0.5",
|
||||||
"lodash": "^4.17.4",
|
"lodash": "^4.17.4",
|
||||||
|
"markdown-it": "^8.4.2",
|
||||||
"md5": "^2.2.1",
|
"md5": "^2.2.1",
|
||||||
"mime": "^2.0.3",
|
"mime": "^2.0.3",
|
||||||
"moment": "^2.18.1",
|
"moment": "^2.18.1",
|
||||||
@@ -56,12 +60,13 @@
|
|||||||
"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.18.4",
|
"sharp": "^0.22.1",
|
||||||
"sprintf-js": "^1.1.1",
|
"sprintf-js": "^1.1.1",
|
||||||
"sqlite3": "^3.1.8",
|
"sqlite3": "^4.0.1",
|
||||||
"string-padding": "^1.0.2",
|
"string-padding": "^1.0.2",
|
||||||
"string-to-stream": "^1.1.0",
|
"string-to-stream": "^1.1.0",
|
||||||
"strip-ansi": "^4.0.0",
|
"strip-ansi": "^4.0.0",
|
||||||
|
"syswide-cas": "^5.2.0",
|
||||||
"tar": "^4.4.0",
|
"tar": "^4.4.0",
|
||||||
"tcp-port-used": "^0.1.2",
|
"tcp-port-used": "^0.1.2",
|
||||||
"tkwidgets": "^0.5.26",
|
"tkwidgets": "^0.5.26",
|
||||||
|
|||||||
@@ -26,10 +26,18 @@ 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_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_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/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/services_rest_Api.js
|
||||||
|
npm test tests-build/services_SearchEngine.js
|
||||||
|
npm test tests-build/StringUtils.js
|
||||||
npm test tests-build/synchronizer.js
|
npm test tests-build/synchronizer.js
|
||||||
npm test tests-build/urlUtils.js
|
npm test tests-build/urlUtils.js
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
const os = require('os');
|
||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { filename } = require('lib/path-utils.js');
|
const { filename } = require('lib/path-utils.js');
|
||||||
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
@@ -34,12 +35,17 @@ 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);
|
||||||
const expectedMd = await shim.fsDriver().readFile(mdPath);
|
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
||||||
|
|
||||||
const actualMd = await enexXmlToMd('<div>' + html + '</div>', []);
|
let actualMd = await enexXmlToMd('<div>' + html + '</div>', []);
|
||||||
|
|
||||||
|
if (os.EOL === '\r\n') {
|
||||||
|
expectedMd = expectedMd.replace(/\r\n/g, '\n')
|
||||||
|
actualMd = actualMd.replace(/\r\n/g, '\n')
|
||||||
|
}
|
||||||
|
|
||||||
if (actualMd !== expectedMd) {
|
if (actualMd !== expectedMd) {
|
||||||
console.info('');
|
console.info('');
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
const os = require('os');
|
||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { filename } = require('lib/path-utils.js');
|
const { filename } = require('lib/path-utils.js');
|
||||||
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
@@ -36,12 +37,17 @@ 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 !== 'code_1.html') continue;
|
// if (htmlFilename !== 'picture.html') continue;
|
||||||
|
|
||||||
const html = await shim.fsDriver().readFile(htmlPath);
|
const html = await shim.fsDriver().readFile(htmlPath);
|
||||||
const expectedMd = await shim.fsDriver().readFile(mdPath);
|
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
||||||
|
|
||||||
const actualMd = await htmlToMd.parse('<div>' + html + '</div>', []);
|
let actualMd = await htmlToMd.parse('<div>' + html + '</div>', []);
|
||||||
|
|
||||||
|
if (os.EOL === '\r\n') {
|
||||||
|
expectedMd = expectedMd.replace(/\r\n/g, '\n')
|
||||||
|
actualMd = actualMd.replace(/\r\n/g, '\n')
|
||||||
|
}
|
||||||
|
|
||||||
if (actualMd !== expectedMd) {
|
if (actualMd !== expectedMd) {
|
||||||
console.info('');
|
console.info('');
|
||||||
|
|||||||
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();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
5
CliClient/tests/enex_to_md/list4.html
Normal file
5
CliClient/tests/enex_to_md/list4.html
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<ul>
|
||||||
|
<li><div>This note has an unordered list</div></li>
|
||||||
|
<li><div>List item</div></li>
|
||||||
|
<li><div>List item</div></li>
|
||||||
|
</ul>
|
||||||
3
CliClient/tests/enex_to_md/list4.md
Normal file
3
CliClient/tests/enex_to_md/list4.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
- This note has an unordered list
|
||||||
|
- List item
|
||||||
|
- List item
|
||||||
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)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<a href="http://example.com/That is not right"/>Testing</a>
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
[Testing](http://example.com/That%20is%20not%20right)
|
||||||
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
|
||||||
29
CliClient/tests/html_to_md/picture_with_no_img.html
Normal file
29
CliClient/tests/html_to_md/picture_with_no_img.html
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
Some pictures:
|
||||||
|
|
||||||
|
<picture>
|
||||||
|
<!--[if IE 9]><video style="display: none;"><![endif]-->
|
||||||
|
<source media="(min-width: 768px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: px) and (min-resolution: 120dpi)" sizes="588px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop&dpr=1.5 882w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop&dpr=1.5 882w">
|
||||||
|
<source media="(min-width: 768px)" sizes="588px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop 588w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop 588w">
|
||||||
|
<source media="(min-width: 481px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: px) and (min-resolution: 120dpi)" sizes="588px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop&dpr=1.5 882w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop&dpr=1.5 882w">
|
||||||
|
<source media="(min-width: 481px)" sizes="588px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop 588w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop 588w">
|
||||||
|
<source media="(min-width: 321px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: px) and (min-resolution: 120dpi)" sizes="450px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=450&h=688&fit=crop&dpr=1.5 675w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=450&h=688&fit=crop&dpr=1.5 675w">
|
||||||
|
<source media="(min-width: 321px)" sizes="450px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=450&h=688&fit=crop 450w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=450&h=688&fit=crop 450w">
|
||||||
|
<source media="(min-width: 0px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: px) and (min-resolution: 120dpi)" sizes="320px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=320&h=489&fit=crop&dpr=1.5 480w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=320&h=489&fit=crop&dpr=1.5 480w">
|
||||||
|
<source media="(min-width: 0px)" sizes="320px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=320&h=489&fit=crop 320w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=320&h=489&fit=crop 320w">
|
||||||
|
<!--[if IE 9]></video><![endif]-->
|
||||||
|
<img class=" lazyloaded" title="" alt="" id="img-id-0">
|
||||||
|
</picture>
|
||||||
|
|
||||||
|
<picture>
|
||||||
|
<!--[if IE 9]><video style="display: none;"><![endif]-->
|
||||||
|
<source media="(min-width: 768px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: px) and (min-resolution: 120dpi)" sizes="588px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop&dpr=1.5 882w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop&dpr=1.5 882w">
|
||||||
|
<source media="(min-width: 768px)" sizes="588px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop 588w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop 588w">
|
||||||
|
<source media="(min-width: 481px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: px) and (min-resolution: 120dpi)" sizes="588px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop&dpr=1.5 882w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop&dpr=1.5 882w">
|
||||||
|
<source media="(min-width: 481px)" sizes="588px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop 588w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=588&h=900&fit=crop 588w">
|
||||||
|
<source media="(min-width: 321px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: px) and (min-resolution: 120dpi)" sizes="450px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=450&h=688&fit=crop&dpr=1.5 675w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=450&h=688&fit=crop&dpr=1.5 675w">
|
||||||
|
<source media="(min-width: 321px)" sizes="450px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=450&h=688&fit=crop 450w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=450&h=688&fit=crop 450w">
|
||||||
|
<source media="(min-width: 0px) and (-webkit-min-device-pixel-ratio: 1.25), (min-width: px) and (min-resolution: 120dpi)" sizes="320px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=320&h=489&fit=crop&dpr=1.5 480w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=320&h=489&fit=crop&dpr=1.5 480w">
|
||||||
|
<source media="(min-width: 0px)" sizes="320px" data-srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=320&h=489&fit=crop 320w" srcset="https://static2.cbrimages.com/wp-content/uploads/2018/09/Die-01-cvrA.jpg?q=35&w=320&h=489&fit=crop 320w">
|
||||||
|
<!--[if IE 9]></video><![endif]-->
|
||||||
|
<img class=" lazyloaded" title="" alt="" id="img-id-0" src="http://example.com/test.gif">
|
||||||
|
</picture>
|
||||||
1
CliClient/tests/html_to_md/picture_with_no_img.md
Normal file
1
CliClient/tests/html_to_md/picture_with_no_img.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Some pictures:  
|
||||||
5
CliClient/tests/html_to_md/text_with_escaped_html.html
Normal file
5
CliClient/tests/html_to_md/text_with_escaped_html.html
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<p>Some text, not an image, so it should remain escaped:</p>
|
||||||
|
<p><img src="http://test.com/image.png" /></p>
|
||||||
|
<p><p class="testing">Paragraph example</p>
|
||||||
|
<p>But this is code so it can be unescaped:</p>
|
||||||
|
<pre><code><img src="http://test.com/image.png" /></code></pre>
|
||||||
9
CliClient/tests/html_to_md/text_with_escaped_html.md
Normal file
9
CliClient/tests/html_to_md/text_with_escaped_html.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Some text, not an image, so it should remain escaped:
|
||||||
|
|
||||||
|
<img src="http://test.com/image.png" />
|
||||||
|
|
||||||
|
<p class="testing">Paragraph example</p>
|
||||||
|
|
||||||
|
But this is code so it can be unescaped:
|
||||||
|
|
||||||
|
<img src="http://test.com/image.png" />
|
||||||
@@ -39,6 +39,7 @@ describe('markdownUtils', function() {
|
|||||||
['', ['http://test.com/img.png']],
|
['', ['http://test.com/img.png']],
|
||||||
[' ', ['http://test.com/img.png', 'http://test.com/img2.png']],
|
[' ', ['http://test.com/img.png', 'http://test.com/img2.png']],
|
||||||
['', ['http://test.com/img.png']],
|
['', ['http://test.com/img.png']],
|
||||||
|
['.png)', ['https://test.com/ohoh_(123).png']],
|
||||||
];
|
];
|
||||||
|
|
||||||
for (let i = 0; i < testCases.length; i++) {
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
|
|||||||
51
CliClient/tests/models_BaseItem.js
Normal file
51
CliClient/tests/models_BaseItem.js
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
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 Folder = require('lib/models/Folder.js');
|
||||||
|
const Note = require('lib/models/Note.js');
|
||||||
|
const BaseItem = require('lib/models/BaseItem.js');
|
||||||
|
const Resource = require('lib/models/Resource.js');
|
||||||
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
|
const { shim } = require('lib/shim');
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
async function allItems() {
|
||||||
|
let folders = await Folder.all();
|
||||||
|
let notes = await Note.all();
|
||||||
|
return folders.concat(notes);
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('models_BaseItem', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
await switchClient(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
// it('should be able to exclude keys when syncing', asyncTest(async () => {
|
||||||
|
// let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
// let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
// await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
|
// let resource1 = (await Resource.all())[0];
|
||||||
|
// console.info(await Resource.serializeForSync(resource1));
|
||||||
|
// }));
|
||||||
|
|
||||||
|
// This is to handle the case where a property is removed from a BaseItem table - in that case files in
|
||||||
|
// the sync target will still have the old property but we don't need it locally.
|
||||||
|
it('should ignore properties that are present in sync file but not in database when serialising', asyncTest(async () => {
|
||||||
|
let folder = await Folder.save({ title: "folder1" });
|
||||||
|
|
||||||
|
let serialized = await Folder.serialize(folder);
|
||||||
|
serialized += "\nignore_me: true"
|
||||||
|
|
||||||
|
let unserialized = await Folder.unserialize(serialized);
|
||||||
|
|
||||||
|
expect('ignore_me' in unserialized).toBe(false);
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
@@ -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);
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
@@ -5,6 +5,7 @@ const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer
|
|||||||
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 BaseModel = require('lib/BaseModel.js');
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
|
const ArrayUtils = require('lib/ArrayUtils.js');
|
||||||
const { shim } = require('lib/shim');
|
const { shim } = require('lib/shim');
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
@@ -34,6 +35,56 @@ describe('models_Note', function() {
|
|||||||
expect(items.length).toBe(2);
|
expect(items.length).toBe(2);
|
||||||
expect(items[0].type_).toBe(BaseModel.TYPE_NOTE);
|
expect(items[0].type_).toBe(BaseModel.TYPE_NOTE);
|
||||||
expect(items[1].type_).toBe(BaseModel.TYPE_RESOURCE);
|
expect(items[1].type_).toBe(BaseModel.TYPE_RESOURCE);
|
||||||
|
|
||||||
|
const resource2 = await shim.createResourceFromPath(__dirname + '/../tests/support/photo.jpg');
|
||||||
|
const resource3 = await shim.createResourceFromPath(__dirname + '/../tests/support/photo.jpg');
|
||||||
|
note2.body += '<img alt="bla" src=":/' + resource2.id + '"/>';
|
||||||
|
note2.body += '<img src=\':/' + resource3.id + '\' />';
|
||||||
|
items = await Note.linkedItems(note2.body);
|
||||||
|
expect(items.length).toBe(4);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should find linked items', asyncTest(async () => {
|
||||||
|
const testCases = [
|
||||||
|
['[](:/06894e83b8f84d3d8cbe0f1587f9e226)', ['06894e83b8f84d3d8cbe0f1587f9e226']],
|
||||||
|
['[](:/06894e83b8f84d3d8cbe0f1587f9e226) [](:/06894e83b8f84d3d8cbe0f1587f9e226)', ['06894e83b8f84d3d8cbe0f1587f9e226']],
|
||||||
|
['[](:/06894e83b8f84d3d8cbe0f1587f9e226) [](:/06894e83b8f84d3d8cbe0f1587f9e227)', ['06894e83b8f84d3d8cbe0f1587f9e226', '06894e83b8f84d3d8cbe0f1587f9e227']],
|
||||||
|
['[](:/06894e83b8f84d3d8cbe0f1587f9e226 "some title")', ['06894e83b8f84d3d8cbe0f1587f9e226']],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
|
const t = testCases[i];
|
||||||
|
|
||||||
|
const input = t[0];
|
||||||
|
const expected = t[1];
|
||||||
|
const actual = Note.linkedItemIds(input);
|
||||||
|
const contentEquals = ArrayUtils.contentEquals(actual, expected);
|
||||||
|
|
||||||
|
// console.info(contentEquals, input, expected, actual);
|
||||||
|
|
||||||
|
expect(contentEquals).toBe(true);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should change the type of notes', asyncTest(async () => {
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
note1 = await Note.load(note1.id);
|
||||||
|
|
||||||
|
let changedNote = Note.changeNoteType(note1, 'todo');
|
||||||
|
expect(changedNote === note1).toBe(false);
|
||||||
|
expect(!!changedNote.is_todo).toBe(true);
|
||||||
|
await Note.save(changedNote);
|
||||||
|
|
||||||
|
note1 = await Note.load(note1.id);
|
||||||
|
changedNote = Note.changeNoteType(note1, 'todo');
|
||||||
|
expect(changedNote === note1).toBe(true);
|
||||||
|
expect(!!changedNote.is_todo).toBe(true);
|
||||||
|
|
||||||
|
note1 = await Note.load(note1.id);
|
||||||
|
changedNote = Note.changeNoteType(note1, 'note');
|
||||||
|
expect(changedNote === note1).toBe(false);
|
||||||
|
expect(!!changedNote.is_todo).toBe(false);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
59
CliClient/tests/models_Resource.js
Normal file
59
CliClient/tests/models_Resource.js
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
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 Folder = require('lib/models/Folder.js');
|
||||||
|
const Note = require('lib/models/Note.js');
|
||||||
|
const Resource = require('lib/models/Resource.js');
|
||||||
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
|
const { shim } = require('lib/shim');
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('models_Resource', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
await switchClient(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should have a "done" fetch_status when created locally', asyncTest(async () => {
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
|
let resource1 = (await Resource.all())[0];
|
||||||
|
let ls = await Resource.localState(resource1);
|
||||||
|
expect(ls.fetch_status).toBe(Resource.FETCH_STATUS_DONE);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should have a default local state', asyncTest(async () => {
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
|
let resource1 = (await Resource.all())[0];
|
||||||
|
let ls = await Resource.localState(resource1);
|
||||||
|
expect(!ls.id).toBe(true);
|
||||||
|
expect(ls.resource_id).toBe(resource1.id);
|
||||||
|
expect(ls.fetch_status).toBe(Resource.FETCH_STATUS_DONE);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should save and delete local state', asyncTest(async () => {
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
|
let resource1 = (await Resource.all())[0];
|
||||||
|
await Resource.setLocalState(resource1, { fetch_status: Resource.FETCH_STATUS_IDLE });
|
||||||
|
|
||||||
|
let ls = await Resource.localState(resource1);
|
||||||
|
expect(!!ls.id).toBe(true);
|
||||||
|
expect(ls.fetch_status).toBe(Resource.FETCH_STATUS_IDLE);
|
||||||
|
|
||||||
|
await Resource.delete(resource1.id);
|
||||||
|
ls = await Resource.localState(resource1);
|
||||||
|
expect(!ls.id).toBe(true);
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
60
CliClient/tests/models_Tag.js
Normal file
60
CliClient/tests/models_Tag.js
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
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 Folder = require('lib/models/Folder.js');
|
||||||
|
const Note = require('lib/models/Note.js');
|
||||||
|
const NoteTag = require('lib/models/NoteTag.js');
|
||||||
|
const Tag = require('lib/models/Tag.js');
|
||||||
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
|
const { shim } = require('lib/shim');
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('models_Tag', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
await switchClient(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should add tags by title', 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', 'deux']);
|
||||||
|
|
||||||
|
const noteTags = await Tag.tagsByNoteId(note1.id);
|
||||||
|
expect(noteTags.length).toBe(2);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should not allow renaming tag to existing tag names', 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', 'deux']);
|
||||||
|
|
||||||
|
const tagUn = await Tag.loadByTitle('un');
|
||||||
|
const hasThrown = await checkThrowAsync(async () => await Tag.save({ id: tagUn.id, title: 'deux' }, { userSideValidation: 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);
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
76
CliClient/tests/pathUtils.js
Normal file
76
CliClient/tests/pathUtils.js
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
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');
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('pathUtils', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create friendly safe filename', async (done) => {
|
||||||
|
const testCases = [
|
||||||
|
['生活', '生活'],
|
||||||
|
['not/good', 'not_good'],
|
||||||
|
['really/not/good', 'really_not_good'],
|
||||||
|
['con', '___'],
|
||||||
|
['no space at the end ', 'no space at the end'],
|
||||||
|
['nor dots...', 'nor dots'],
|
||||||
|
[' no space before either', 'no space before either'],
|
||||||
|
['thatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylong', 'thatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylongthatsreallylong'],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
|
const t = testCases[i];
|
||||||
|
expect(friendlySafeFilename(t[0])).toBe(t[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(!!friendlySafeFilename('')).toBe(true);
|
||||||
|
expect(!!friendlySafeFilename('...')).toBe(true);
|
||||||
|
|
||||||
|
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();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
@@ -310,4 +310,51 @@ describe('services_InteropService', function() {
|
|||||||
expect(note2_2.body.indexOf(note1_2.id) >= 0).toBe(true);
|
expect(note2_2.body.indexOf(note1_2.id) >= 0).toBe(true);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('should export into json format', asyncTest(async () => {
|
||||||
|
const service = new InteropService();
|
||||||
|
let folder1 = await Folder.save({ title: 'folder1' });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
note1 = await Note.load(note1.id);
|
||||||
|
const filePath = exportDir();
|
||||||
|
|
||||||
|
await service.export({ path: filePath, format: 'json' });
|
||||||
|
|
||||||
|
// verify that the json files exist and can be parsed
|
||||||
|
const items = [folder1, note1];
|
||||||
|
for (let i = 0; i < items.length; i++) {
|
||||||
|
const jsonFile = filePath + '/' + items[i].id + '.json';
|
||||||
|
let json = await fs.readFile(jsonFile, 'utf-8');
|
||||||
|
let obj = JSON.parse(json);
|
||||||
|
expect(obj.id).toBe(items[i].id);
|
||||||
|
expect(obj.type_).toBe(items[i].type_);
|
||||||
|
expect(obj.title).toBe(items[i].title);
|
||||||
|
expect(obj.body).toBe(items[i].body);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should export MD with unicode filenames', asyncTest(async () => {
|
||||||
|
const service = new InteropService();
|
||||||
|
let folder1 = await Folder.save({ title: 'folder1' });
|
||||||
|
let folder2 = await Folder.save({ title: 'ジョプリン' });
|
||||||
|
let note1 = await Note.save({ title: '生活', parent_id: folder1.id });
|
||||||
|
let note2 = await Note.save({ title: '生活', parent_id: folder1.id });
|
||||||
|
let note2b = await Note.save({ title: '生活', parent_id: folder1.id });
|
||||||
|
let note3 = await Note.save({ title: '', parent_id: folder1.id });
|
||||||
|
let note4 = await Note.save({ title: '', parent_id: folder1.id });
|
||||||
|
let note5 = await Note.save({ title: 'salut, ça roule ?', parent_id: folder1.id });
|
||||||
|
let note6 = await Note.save({ title: 'ジョプリン', parent_id: folder2.id });
|
||||||
|
|
||||||
|
const outDir = exportDir();
|
||||||
|
|
||||||
|
await service.export({ path: outDir, format: 'md' });
|
||||||
|
|
||||||
|
expect(await shim.fsDriver().exists(outDir + '/folder1/生活.md')).toBe(true);
|
||||||
|
expect(await shim.fsDriver().exists(outDir + '/folder1/生活 (1).md')).toBe(true);
|
||||||
|
expect(await shim.fsDriver().exists(outDir + '/folder1/生活 (2).md')).toBe(true);
|
||||||
|
expect(await shim.fsDriver().exists(outDir + '/folder1/Untitled.md')).toBe(true);
|
||||||
|
expect(await shim.fsDriver().exists(outDir + '/folder1/Untitled (1).md')).toBe(true);
|
||||||
|
expect(await shim.fsDriver().exists(outDir + '/folder1/salut, ça roule _.md')).toBe(true);
|
||||||
|
expect(await shim.fsDriver().exists(outDir + '/ジョプリン/ジョプリン.md')).toBe(true);
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
@@ -1,19 +1,21 @@
|
|||||||
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');
|
||||||
const Tag = require('lib/models/Tag.js');
|
const Tag = require('lib/models/Tag.js');
|
||||||
const NoteTag = require('lib/models/NoteTag.js');
|
const NoteTag = require('lib/models/NoteTag.js');
|
||||||
const Resource = require('lib/models/Resource.js');
|
const Resource = require('lib/models/Resource.js');
|
||||||
|
const ItemChange = require('lib/models/ItemChange.js');
|
||||||
const NoteResource = require('lib/models/NoteResource.js');
|
const NoteResource = require('lib/models/NoteResource.js');
|
||||||
const ResourceService = require('lib/services/ResourceService.js');
|
const ResourceService = require('lib/services/ResourceService.js');
|
||||||
const fs = require('fs-extra');
|
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);
|
||||||
@@ -36,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();
|
||||||
});
|
});
|
||||||
@@ -79,7 +82,6 @@ describe('services_ResourceService', function() {
|
|||||||
let note2 = await Note.save({ title: 'ma deuxième note', parent_id: folder1.id });
|
let note2 = await Note.save({ title: 'ma deuxième note', parent_id: folder1.id });
|
||||||
note1 = await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
note1 = await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
let resource1 = (await Resource.all())[0];
|
let resource1 = (await Resource.all())[0];
|
||||||
const resourcePath = Resource.fullPath(resource1);
|
|
||||||
|
|
||||||
await service.indexNoteResources();
|
await service.indexNoteResources();
|
||||||
|
|
||||||
@@ -106,4 +108,109 @@ describe('services_ResourceService', function() {
|
|||||||
expect((await Resource.all()).length).toBe(1);
|
expect((await Resource.all()).length).toBe(1);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('should not delete resource if it is used in an IMG tag', asyncTest(async () => {
|
||||||
|
const service = new ResourceService();
|
||||||
|
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
note1 = await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
|
let resource1 = (await Resource.all())[0];
|
||||||
|
|
||||||
|
await service.indexNoteResources();
|
||||||
|
|
||||||
|
await Note.save({ id: note1.id, body: 'This is HTML: <img src=":/' + resource1.id + '"/>' });
|
||||||
|
|
||||||
|
await service.indexNoteResources();
|
||||||
|
|
||||||
|
await service.deleteOrphanResources(0);
|
||||||
|
|
||||||
|
expect(!!(await Resource.load(resource1.id))).toBe(true);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should not process twice the same change', asyncTest(async () => {
|
||||||
|
const service = new ResourceService();
|
||||||
|
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
note1 = await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
|
let resource1 = (await Resource.all())[0];
|
||||||
|
|
||||||
|
await service.indexNoteResources();
|
||||||
|
|
||||||
|
const before = (await NoteResource.all())[0];
|
||||||
|
|
||||||
|
await time.sleep(0.1);
|
||||||
|
|
||||||
|
await service.indexNoteResources();
|
||||||
|
|
||||||
|
const after = (await NoteResource.all())[0];
|
||||||
|
|
||||||
|
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
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
326
CliClient/tests/services_SearchEngine.js
Normal file
326
CliClient/tests/services_SearchEngine.js
Normal file
@@ -0,0 +1,326 @@
|
|||||||
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
const { time } = require('lib/time-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 Note = require('lib/models/Note');
|
||||||
|
const ItemChange = require('lib/models/ItemChange');
|
||||||
|
const Setting = require('lib/models/Setting');
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
let engine = null;
|
||||||
|
|
||||||
|
describe('services_SearchEngine', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
await switchClient(1);
|
||||||
|
|
||||||
|
engine = new SearchEngine();
|
||||||
|
engine.setDb(db());
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should keep the content and FTS table in sync', asyncTest(async () => {
|
||||||
|
let rows, n1, n2, n3;
|
||||||
|
|
||||||
|
n1 = await Note.save({ title: "a" });
|
||||||
|
n2 = await Note.save({ title: "b" });
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('a');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
expect(rows[0].title).toBe('a');
|
||||||
|
|
||||||
|
await Note.delete(n1.id);
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('a');
|
||||||
|
expect(rows.length).toBe(0);
|
||||||
|
rows = await engine.search('b');
|
||||||
|
expect(rows[0].title).toBe('b');
|
||||||
|
|
||||||
|
await Note.save({ id: n2.id, title: 'c' });
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('b');
|
||||||
|
expect(rows.length).toBe(0);
|
||||||
|
rows = await engine.search('c');
|
||||||
|
expect(rows[0].title).toBe('c');
|
||||||
|
|
||||||
|
await Note.save({ id: n2.id, encryption_applied: 1 });
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('c');
|
||||||
|
expect(rows.length).toBe(0);
|
||||||
|
|
||||||
|
await Note.save({ id: n2.id, encryption_applied: 0 });
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search('c');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
}));
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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 n2 = await Note.save({ title: "abcd aaaaa abcd abcd" }); // 1
|
||||||
|
const n3 = await Note.save({ title: "abcd aaaaa bbbb eeee abcd" }); // 2
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
const rows = await engine.search('abcd');
|
||||||
|
|
||||||
|
expect(rows[0].id).toBe(n2.id);
|
||||||
|
expect(rows[1].id).toBe(n3.id);
|
||||||
|
expect(rows[2].id).toBe(n1.id);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should order search results by relevance (2)', asyncTest(async () => {
|
||||||
|
// 1
|
||||||
|
const n1 = await Note.save({ title: "abcd efgh", body: "XX abcd XX efgh" });
|
||||||
|
// 4
|
||||||
|
const n2 = await Note.save({ title: "abcd aaaaa bbbb eeee efgh" });
|
||||||
|
// 3
|
||||||
|
const n3 = await Note.save({ title: "abcd aaaaa efgh" });
|
||||||
|
// 2
|
||||||
|
const n4 = await Note.save({ title: "blablablabla blabla bla abcd X efgh" });
|
||||||
|
// 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" });
|
||||||
|
|
||||||
|
await engine.syncTables();
|
||||||
|
const rows = await engine.search('abcd efgh');
|
||||||
|
|
||||||
|
expect(rows[0].id).toBe(n1.id);
|
||||||
|
expect(rows[1].id).toBe(n4.id);
|
||||||
|
expect(rows[2].id).toBe(n3.id);
|
||||||
|
expect(rows[3].id).toBe(n2.id);
|
||||||
|
expect(rows[4].id).toBe(n5.id);
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should order search results by relevance (last updated first)', asyncTest(async () => {
|
||||||
|
let rows;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
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 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');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
rows = await engine.search('"abcd ijkl"');
|
||||||
|
expect(rows.length).toBe(0);
|
||||||
|
|
||||||
|
rows = await engine.search('"abcd efgh"');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
rows = await engine.search('title:abcd');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
rows = await engine.search('title:efgh');
|
||||||
|
expect(rows.length).toBe(2);
|
||||||
|
|
||||||
|
rows = await engine.search('body:abcd');
|
||||||
|
expect(rows.length).toBe(0);
|
||||||
|
|
||||||
|
rows = await engine.search('body:bbbb');
|
||||||
|
expect(rows.length).toBe(2);
|
||||||
|
|
||||||
|
rows = await engine.search('body:bbbb iiii');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
rows = await engine.search('Рейтер');
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
const testCases = [
|
||||||
|
['abcd efgh', { _: ['abcd', 'efgh'] }],
|
||||||
|
['abcd efgh', { _: ['abcd', 'efgh'] }],
|
||||||
|
['title:abcd efgh', { _: ['efgh'], title: ['abcd'] }],
|
||||||
|
['title:abcd', { title: ['abcd'] }],
|
||||||
|
['"abcd efgh"', { _: ['abcd efgh'] }],
|
||||||
|
['title:abcd title:efgh', { title: ['abcd', 'efgh'] }],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
|
const t = testCases[i];
|
||||||
|
const input = t[0];
|
||||||
|
const expected = t[1];
|
||||||
|
const actual = engine.parseQuery(input);
|
||||||
|
|
||||||
|
const _Values = actual.terms._ ? actual.terms._.map(v => v.value) : undefined;
|
||||||
|
const titleValues = actual.terms.title ? actual.terms.title.map(v => v.value) : undefined;
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
it('should handle queries with special characters', asyncTest(async () => {
|
||||||
|
let rows;
|
||||||
|
|
||||||
|
const testCases = [
|
||||||
|
['did-not-match', 'did-not-match'],
|
||||||
|
['does match', 'does match'],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let i = 0; i < testCases.length; i++) {
|
||||||
|
const t = testCases[i];
|
||||||
|
const content = t[0];
|
||||||
|
const query = t[1];
|
||||||
|
|
||||||
|
const n = await Note.save({ title: content });
|
||||||
|
await engine.syncTables();
|
||||||
|
rows = await engine.search(query);
|
||||||
|
expect(rows.length).toBe(1);
|
||||||
|
|
||||||
|
await Note.delete(n.id);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
||||||
300
CliClient/tests/services_rest_Api.js
Normal file
300
CliClient/tests/services_rest_Api.js
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
const { time } = require('lib/time-utils.js');
|
||||||
|
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
|
const markdownUtils = require('lib/markdownUtils.js');
|
||||||
|
const Api = require('lib/services/rest/Api');
|
||||||
|
const Folder = require('lib/models/Folder');
|
||||||
|
const Note = require('lib/models/Note');
|
||||||
|
const Tag = require('lib/models/Tag');
|
||||||
|
const Resource = require('lib/models/Resource');
|
||||||
|
|
||||||
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
let api = null;
|
||||||
|
|
||||||
|
describe('services_rest_Api', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
api = new Api();
|
||||||
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
await switchClient(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should ping', async (done) => {
|
||||||
|
const response = await api.route('GET', 'ping');
|
||||||
|
expect(response).toBe('JoplinClipperServer');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle Not Found errors', async (done) => {
|
||||||
|
const hasThrown = await checkThrowAsync(async () => await api.route('GET', 'pong'));
|
||||||
|
expect(hasThrown).toBe(true);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should get folders', async (done) => {
|
||||||
|
let f1 = await Folder.save({ title: "mon carnet" });
|
||||||
|
const response = await api.route('GET', 'folders');
|
||||||
|
expect(response.length).toBe(1);
|
||||||
|
expect(response[0].title).toBe('mon carnet');
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should update folders', async (done) => {
|
||||||
|
let f1 = await Folder.save({ title: "mon carnet" });
|
||||||
|
const response = await api.route('PUT', 'folders/' + f1.id, null, JSON.stringify({
|
||||||
|
title: 'modifié',
|
||||||
|
}));
|
||||||
|
|
||||||
|
let f1b = await Folder.load(f1.id);
|
||||||
|
expect(f1b.title).toBe('modifié');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should delete folders', async (done) => {
|
||||||
|
let f1 = await Folder.save({ title: "mon carnet" });
|
||||||
|
await api.route('DELETE', 'folders/' + f1.id);
|
||||||
|
|
||||||
|
let f1b = await Folder.load(f1.id);
|
||||||
|
expect(!f1b).toBe(true);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create folders', async (done) => {
|
||||||
|
const response = await api.route('POST', 'folders', null, JSON.stringify({
|
||||||
|
title: 'from api',
|
||||||
|
}));
|
||||||
|
|
||||||
|
expect(!!response.id).toBe(true);
|
||||||
|
|
||||||
|
let f = await Folder.all();
|
||||||
|
expect(f.length).toBe(1);
|
||||||
|
expect(f[0].title).toBe('from api');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should get one folder', async (done) => {
|
||||||
|
let f1 = await Folder.save({ title: "mon carnet" });
|
||||||
|
const response = await api.route('GET', 'folders/' + f1.id);
|
||||||
|
expect(response.id).toBe(f1.id);
|
||||||
|
|
||||||
|
const hasThrown = await checkThrowAsync(async () => await api.route('GET', 'folders/doesntexist'));
|
||||||
|
expect(hasThrown).toBe(true);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should get the folder notes', async (done) => {
|
||||||
|
let f1 = await Folder.save({ title: "mon carnet" });
|
||||||
|
const response2 = await api.route('GET', 'folders/' + f1.id + '/notes');
|
||||||
|
expect(response2.length).toBe(0);
|
||||||
|
|
||||||
|
const n1 = await Note.save({ title: 'un', parent_id: f1.id });
|
||||||
|
const n2 = await Note.save({ title: 'deux', parent_id: f1.id });
|
||||||
|
const response = await api.route('GET', 'folders/' + f1.id + '/notes');
|
||||||
|
expect(response.length).toBe(2);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should fail on invalid paths', async (done) => {
|
||||||
|
const hasThrown = await checkThrowAsync(async () => await api.route('GET', 'schtroumpf'));
|
||||||
|
expect(hasThrown).toBe(true);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should get notes', async (done) => {
|
||||||
|
let response = null;
|
||||||
|
const f1 = await Folder.save({ title: "mon carnet" });
|
||||||
|
const f2 = await Folder.save({ title: "mon deuxième carnet" });
|
||||||
|
const n1 = await Note.save({ title: 'un', parent_id: f1.id });
|
||||||
|
const n2 = await Note.save({ title: 'deux', parent_id: f1.id });
|
||||||
|
const n3 = await Note.save({ title: 'trois', parent_id: f2.id });
|
||||||
|
|
||||||
|
response = await api.route('GET', 'notes');
|
||||||
|
expect(response.length).toBe(3);
|
||||||
|
|
||||||
|
response = await api.route('GET', 'notes/' + n1.id);
|
||||||
|
expect(response.id).toBe(n1.id);
|
||||||
|
|
||||||
|
response = await api.route('GET', 'notes/' + n3.id, { fields: 'id,title' });
|
||||||
|
expect(Object.getOwnPropertyNames(response).length).toBe(3);
|
||||||
|
expect(response.id).toBe(n3.id);
|
||||||
|
expect(response.title).toBe('trois');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create notes', async (done) => {
|
||||||
|
let response = null;
|
||||||
|
const f = await Folder.save({ title: "mon carnet" });
|
||||||
|
|
||||||
|
response = await api.route('POST', 'notes', null, JSON.stringify({
|
||||||
|
title: 'testing',
|
||||||
|
parent_id: f.id,
|
||||||
|
}));
|
||||||
|
expect(response.title).toBe('testing');
|
||||||
|
expect(!!response.id).toBe(true);
|
||||||
|
|
||||||
|
response = await api.route('POST', 'notes', null, JSON.stringify({
|
||||||
|
title: 'testing',
|
||||||
|
parent_id: f.id,
|
||||||
|
}));
|
||||||
|
expect(response.title).toBe('testing');
|
||||||
|
expect(!!response.id).toBe(true);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create notes with supplied ID', async (done) => {
|
||||||
|
let response = null;
|
||||||
|
const f = await Folder.save({ title: "mon carnet" });
|
||||||
|
|
||||||
|
response = await api.route('POST', 'notes', null, JSON.stringify({
|
||||||
|
id: '12345678123456781234567812345678',
|
||||||
|
title: 'testing',
|
||||||
|
parent_id: f.id,
|
||||||
|
}));
|
||||||
|
expect(response.id).toBe('12345678123456781234567812345678');
|
||||||
|
|
||||||
|
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) => {
|
||||||
|
let response = null;
|
||||||
|
const f = await Folder.save({ title: "mon carnet" });
|
||||||
|
|
||||||
|
response = await api.route('POST', 'notes', null, JSON.stringify({
|
||||||
|
title: 'testing image',
|
||||||
|
parent_id: f.id,
|
||||||
|
image_data_url: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUeNoAyAA3/wFwtO3K6gUB/vz2+Prw9fj/+/r+/wBZKAAExOgF4/MC9ff+MRH6Ui4E+/0Bqc/zutj6AgT+/Pz7+vv7++nu82c4DlMqCvLs8goA/gL8/fz09fb59vXa6vzZ6vjT5fbn6voD/fwC8vX4UiT9Zi//APHyAP8ACgUBAPv5APz7BPj2+DIaC2o3E+3o6ywaC5fT6gD6/QD9/QEVf9kD+/dcLQgJA/7v8vqfwOf18wA1IAIEVycAyt//v9XvAPv7APz8LhoIAPz9Ri4OAgwARgx4W/6fVeEAAAAASUVORK5CYII="
|
||||||
|
}));
|
||||||
|
|
||||||
|
const resources = await Resource.all();
|
||||||
|
expect(resources.length).toBe(1);
|
||||||
|
|
||||||
|
const resource = resources[0];
|
||||||
|
expect(response.body.indexOf(resource.id) >= 0).toBe(true);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create notes from HTML', async (done) => {
|
||||||
|
let response = null;
|
||||||
|
const f = await Folder.save({ title: "mon carnet" });
|
||||||
|
|
||||||
|
response = await api.route('POST', 'notes', null, JSON.stringify({
|
||||||
|
title: 'testing HTML',
|
||||||
|
parent_id: f.id,
|
||||||
|
body_html: '<b>Bold text</b>',
|
||||||
|
}));
|
||||||
|
|
||||||
|
expect(response.body).toBe('**Bold text**');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should filter fields', async (done) => {
|
||||||
|
let f = api.fields_({ query: { fields: 'one,two' } }, []);
|
||||||
|
expect(f.length).toBe(2);
|
||||||
|
expect(f[0]).toBe('one');
|
||||||
|
expect(f[1]).toBe('two');
|
||||||
|
|
||||||
|
f = api.fields_({ query: { fields: 'one ,, two ' } }, []);
|
||||||
|
expect(f.length).toBe(2);
|
||||||
|
expect(f[0]).toBe('one');
|
||||||
|
expect(f[1]).toBe('two');
|
||||||
|
|
||||||
|
f = api.fields_({ query: { fields: ' ' } }, ['def']);
|
||||||
|
expect(f.length).toBe(1);
|
||||||
|
expect(f[0]).toBe('def');
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should handle tokens', async (done) => {
|
||||||
|
api = new Api('mytoken');
|
||||||
|
|
||||||
|
let hasThrown = await checkThrowAsync(async () => await api.route('GET', 'notes'));
|
||||||
|
expect(hasThrown).toBe(true);
|
||||||
|
|
||||||
|
const response = await api.route('GET', 'notes', { token: 'mytoken' })
|
||||||
|
expect(response.length).toBe(0);
|
||||||
|
|
||||||
|
hasThrown = await checkThrowAsync(async () => await api.route('POST', 'notes', null, JSON.stringify({title:'testing'})));
|
||||||
|
expect(hasThrown).toBe(true);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should add tags to notes', async (done) => {
|
||||||
|
const tag = await Tag.save({ title: "mon étiquette" });
|
||||||
|
const note = await Note.save({ title: "ma note" });
|
||||||
|
|
||||||
|
const response = await api.route('POST', 'tags/' + tag.id + '/notes', null, JSON.stringify({
|
||||||
|
id: note.id,
|
||||||
|
}));
|
||||||
|
|
||||||
|
const noteIds = await Tag.noteIds(tag.id);
|
||||||
|
expect(noteIds[0]).toBe(note.id);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should remove tags from notes', async (done) => {
|
||||||
|
const tag = await Tag.save({ title: "mon étiquette" });
|
||||||
|
const note = await Note.save({ title: "ma note" });
|
||||||
|
await Tag.addNote(tag.id, note.id);
|
||||||
|
|
||||||
|
const response = await api.route('DELETE', 'tags/' + tag.id + '/notes/' + note.id);
|
||||||
|
|
||||||
|
const noteIds = await Tag.noteIds(tag.id);
|
||||||
|
expect(noteIds.length).toBe(0);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should list all tag notes', async (done) => {
|
||||||
|
const tag = await Tag.save({ title: "mon étiquette" });
|
||||||
|
const tag2 = await Tag.save({ title: "mon étiquette 2" });
|
||||||
|
const note1 = await Note.save({ title: "ma note un" });
|
||||||
|
const note2 = await Note.save({ title: "ma note deux" });
|
||||||
|
await Tag.addNote(tag.id, note1.id);
|
||||||
|
await Tag.addNote(tag.id, note2.id);
|
||||||
|
|
||||||
|
const response = await api.route('GET', 'tags/' + tag.id + '/notes');
|
||||||
|
expect(response.length).toBe(2);
|
||||||
|
expect('id' in response[0]).toBe(true);
|
||||||
|
expect('title' in response[0]).toBe(true);
|
||||||
|
|
||||||
|
const response2 = await api.route('GET', 'notes/' + note1.id + '/tags');
|
||||||
|
expect(response2.length).toBe(1);
|
||||||
|
await Tag.addNote(tag2.id, note1.id);
|
||||||
|
const response3 = await api.route('GET', 'notes/' + note1.id + '/tags');
|
||||||
|
expect(response3.length).toBe(2);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
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');
|
||||||
const Note = require('lib/models/Note.js');
|
const Note = require('lib/models/Note.js');
|
||||||
const Resource = require('lib/models/Resource.js');
|
const Resource = require('lib/models/Resource.js');
|
||||||
|
const ResourceFetcher = require('lib/services/ResourceFetcher');
|
||||||
const Tag = require('lib/models/Tag.js');
|
const Tag = require('lib/models/Tag.js');
|
||||||
const { Database } = require('lib/database.js');
|
const { Database } = require('lib/database.js');
|
||||||
const Setting = require('lib/models/Setting.js');
|
const Setting = require('lib/models/Setting.js');
|
||||||
@@ -14,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);
|
||||||
@@ -27,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 {
|
||||||
@@ -872,12 +842,49 @@ describe('Synchronizer', function() {
|
|||||||
let allResources = await Resource.all();
|
let allResources = await Resource.all();
|
||||||
expect(allResources.length).toBe(1);
|
expect(allResources.length).toBe(1);
|
||||||
let resource1_2 = allResources[0];
|
let resource1_2 = allResources[0];
|
||||||
let resourcePath1_2 = Resource.fullPath(resource1_2);
|
let ls = await Resource.localState(resource1_2);
|
||||||
|
|
||||||
expect(resource1_2.id).toBe(resource1.id);
|
expect(resource1_2.id).toBe(resource1.id);
|
||||||
|
expect(ls.fetch_status).toBe(Resource.FETCH_STATUS_IDLE);
|
||||||
|
|
||||||
|
const fetcher = new ResourceFetcher(() => { return synchronizer().api() });
|
||||||
|
fetcher.queueDownload(resource1_2.id);
|
||||||
|
await fetcher.waitForAllFinished();
|
||||||
|
|
||||||
|
resource1_2 = await Resource.load(resource1.id);
|
||||||
|
ls = await Resource.localState(resource1_2);
|
||||||
|
expect(ls.fetch_status).toBe(Resource.FETCH_STATUS_DONE);
|
||||||
|
|
||||||
|
let resourcePath1_2 = Resource.fullPath(resource1_2);
|
||||||
expect(fileContentEqual(resourcePath1, resourcePath1_2)).toBe(true);
|
expect(fileContentEqual(resourcePath1, resourcePath1_2)).toBe(true);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
it('should handle resource download errors', asyncTest(async () => {
|
||||||
|
while (insideBeforeEach) await time.msleep(500);
|
||||||
|
|
||||||
|
let folder1 = await Folder.save({ title: "folder1" });
|
||||||
|
let note1 = await Note.save({ title: 'ma note', parent_id: folder1.id });
|
||||||
|
await shim.attachFileToNote(note1, __dirname + '/../tests/support/photo.jpg');
|
||||||
|
let resource1 = (await Resource.all())[0];
|
||||||
|
let resourcePath1 = Resource.fullPath(resource1);
|
||||||
|
await synchronizer().start();
|
||||||
|
|
||||||
|
await switchClient(2);
|
||||||
|
|
||||||
|
await synchronizer().start();
|
||||||
|
|
||||||
|
const fetcher = new ResourceFetcher(() => { return {
|
||||||
|
// Simulate a failed download
|
||||||
|
get: () => { return new Promise((resolve, reject) => { reject(new Error('did not work')) }); }
|
||||||
|
} });
|
||||||
|
fetcher.queueDownload(resource1.id);
|
||||||
|
await fetcher.waitForAllFinished();
|
||||||
|
|
||||||
|
resource1 = await Resource.load(resource1.id);
|
||||||
|
let ls = await Resource.localState(resource1);
|
||||||
|
expect(ls.fetch_status).toBe(Resource.FETCH_STATUS_ERROR);
|
||||||
|
expect(ls.fetch_error).toBe('did not work');
|
||||||
|
}));
|
||||||
|
|
||||||
it('should delete resources', asyncTest(async () => {
|
it('should delete resources', asyncTest(async () => {
|
||||||
while (insideBeforeEach) await time.msleep(500);
|
while (insideBeforeEach) await time.msleep(500);
|
||||||
|
|
||||||
@@ -926,6 +933,10 @@ describe('Synchronizer', function() {
|
|||||||
Setting.setObjectKey('encryption.passwordCache', masterKey.id, '123456');
|
Setting.setObjectKey('encryption.passwordCache', masterKey.id, '123456');
|
||||||
await encryptionService().loadMasterKeysFromSettings();
|
await encryptionService().loadMasterKeysFromSettings();
|
||||||
|
|
||||||
|
const fetcher = new ResourceFetcher(() => { return synchronizer().api() });
|
||||||
|
fetcher.queueDownload(resource1.id);
|
||||||
|
await fetcher.waitForAllFinished();
|
||||||
|
|
||||||
let resource1_2 = (await Resource.all())[0];
|
let resource1_2 = (await Resource.all())[0];
|
||||||
resource1_2 = await Resource.decrypt(resource1_2);
|
resource1_2 = await Resource.decrypt(resource1_2);
|
||||||
let resourcePath1_2 = Resource.fullPath(resource1_2);
|
let resourcePath1_2 = Resource.fullPath(resource1_2);
|
||||||
@@ -1057,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);
|
||||||
|
}));
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ const { DatabaseDriverNode } = require('lib/database-driver-node.js');
|
|||||||
const BaseModel = require('lib/BaseModel.js');
|
const BaseModel = require('lib/BaseModel.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 ItemChange = require('lib/models/ItemChange.js');
|
||||||
const Resource = require('lib/models/Resource.js');
|
const Resource = require('lib/models/Resource.js');
|
||||||
const Tag = require('lib/models/Tag.js');
|
const Tag = require('lib/models/Tag.js');
|
||||||
const NoteTag = require('lib/models/NoteTag.js');
|
const NoteTag = require('lib/models/NoteTag.js');
|
||||||
@@ -29,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');
|
||||||
|
|
||||||
@@ -36,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;
|
||||||
|
|
||||||
@@ -48,7 +51,9 @@ EncryptionService.fsDriver_ = fsDriver;
|
|||||||
FileApiDriverLocal.fsDriver_ = fsDriver;
|
FileApiDriverLocal.fsDriver_ = fsDriver;
|
||||||
|
|
||||||
const logDir = __dirname + '/../tests/logs';
|
const logDir = __dirname + '/../tests/logs';
|
||||||
|
const tempDir = __dirname + '/../tests/tmp';
|
||||||
fs.mkdirpSync(logDir, 0o755);
|
fs.mkdirpSync(logDir, 0o755);
|
||||||
|
fs.mkdirpSync(tempDir, 0o755);
|
||||||
|
|
||||||
SyncTargetRegistry.addClass(SyncTargetMemory);
|
SyncTargetRegistry.addClass(SyncTargetMemory);
|
||||||
SyncTargetRegistry.addClass(SyncTargetFilesystem);
|
SyncTargetRegistry.addClass(SyncTargetFilesystem);
|
||||||
@@ -80,6 +85,7 @@ BaseItem.loadClass('MasterKey', MasterKey);
|
|||||||
|
|
||||||
Setting.setConstant('appId', 'net.cozic.joplin-cli');
|
Setting.setConstant('appId', 'net.cozic.joplin-cli');
|
||||||
Setting.setConstant('appType', 'cli');
|
Setting.setConstant('appType', 'cli');
|
||||||
|
Setting.setConstant('tempDir', tempDir);
|
||||||
|
|
||||||
BaseService.logger_ = logger;
|
BaseService.logger_ = logger;
|
||||||
|
|
||||||
@@ -98,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();
|
||||||
|
|
||||||
@@ -119,6 +127,8 @@ async function switchClient(id) {
|
|||||||
async function clearDatabase(id = null) {
|
async function clearDatabase(id = null) {
|
||||||
if (id === null) id = currentClient_;
|
if (id === null) id = currentClient_;
|
||||||
|
|
||||||
|
await ItemChange.waitForAllSaved();
|
||||||
|
|
||||||
let queries = [
|
let queries = [
|
||||||
'DELETE FROM notes',
|
'DELETE FROM notes',
|
||||||
'DELETE FROM folders',
|
'DELETE FROM folders',
|
||||||
@@ -131,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);
|
||||||
@@ -191,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();
|
||||||
}
|
}
|
||||||
@@ -215,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);
|
||||||
|
|
||||||
@@ -307,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;
|
||||||
@@ -38,7 +53,7 @@
|
|||||||
const node = childNodes[i];
|
const node = childNodes[i];
|
||||||
|
|
||||||
let isVisible = node.nodeType === 1 ? window.getComputedStyle(node).display !== 'none' : true;
|
let isVisible = node.nodeType === 1 ? window.getComputedStyle(node).display !== 'none' : true;
|
||||||
if (isVisible && ['input', 'textarea', 'script', 'style', 'select', 'option', 'button'].indexOf(node.nodeName.toLowerCase()) >= 0) isVisible = false;
|
if (isVisible && ['input', 'textarea', 'script', 'noscript', 'style', 'select', 'option', 'button'].indexOf(node.nodeName.toLowerCase()) >= 0) isVisible = false;
|
||||||
|
|
||||||
if (!isVisible) {
|
if (!isVisible) {
|
||||||
element.removeChild(node);
|
element.removeChild(node);
|
||||||
@@ -74,6 +89,19 @@
|
|||||||
async function prepareCommandResponse(command) {
|
async function prepareCommandResponse(command) {
|
||||||
console.info('Got command: ' + command.name);
|
console.info('Got command: ' + command.name);
|
||||||
|
|
||||||
|
const clippedContentResponse = (title, html, imageSizes) => {
|
||||||
|
return {
|
||||||
|
name: 'clippedContent',
|
||||||
|
title: title,
|
||||||
|
html: html,
|
||||||
|
base_url: baseUrl(),
|
||||||
|
url: location.origin + location.pathname + location.search,
|
||||||
|
parent_id: command.parent_id,
|
||||||
|
tags: command.tags || '',
|
||||||
|
image_sizes: imageSizes,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if (command.name === "simplifiedPageHtml") {
|
if (command.name === "simplifiedPageHtml") {
|
||||||
|
|
||||||
let article = null;
|
let article = null;
|
||||||
@@ -87,29 +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, getImageSizes(document));
|
||||||
return {
|
|
||||||
name: 'clippedContent',
|
|
||||||
html: article.body,
|
|
||||||
title: article.title,
|
|
||||||
base_url: baseUrl(),
|
|
||||||
url: location.origin + location.pathname,
|
|
||||||
parent_id: command.parent_id,
|
|
||||||
};
|
|
||||||
|
|
||||||
} else if (command.name === "completePageHtml") {
|
} 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, getImageSizes(document));
|
||||||
|
|
||||||
return {
|
} else if (command.name === "selectedHtml") {
|
||||||
name: 'clippedContent',
|
|
||||||
html: cleanDocument.innerHTML,
|
const range = window.getSelection().getRangeAt(0);
|
||||||
title: pageTitle(),
|
const container = document.createElement('div');
|
||||||
base_url: baseUrl(),
|
container.appendChild(range.cloneContents());
|
||||||
url: location.origin + location.pathname,
|
return clippedContentResponse(pageTitle(), container.innerHTML, getImageSizes(document));
|
||||||
parent_id: command.parent_id,
|
|
||||||
};
|
|
||||||
|
|
||||||
} else if (command.name === 'screenshot') {
|
} else if (command.name === 'screenshot') {
|
||||||
|
|
||||||
@@ -135,6 +154,7 @@
|
|||||||
messageComp.style.maxWidth = messageCompWidth + 'px'
|
messageComp.style.maxWidth = messageCompWidth + 'px'
|
||||||
messageComp.style.border = '1px solid black'
|
messageComp.style.border = '1px solid black'
|
||||||
messageComp.style.background = 'white'
|
messageComp.style.background = 'white'
|
||||||
|
messageComp.style.color = 'black';
|
||||||
messageComp.style.top = '10px'
|
messageComp.style.top = '10px'
|
||||||
messageComp.style.textAlign = 'center';
|
messageComp.style.textAlign = 'center';
|
||||||
messageComp.style.padding = '10px'
|
messageComp.style.padding = '10px'
|
||||||
@@ -212,6 +232,7 @@
|
|||||||
crop_rect: selectionArea,
|
crop_rect: selectionArea,
|
||||||
url: location.origin + location.pathname,
|
url: location.origin + location.pathname,
|
||||||
parent_id: command.parent_id,
|
parent_id: command.parent_id,
|
||||||
|
tags: command.tags,
|
||||||
};
|
};
|
||||||
|
|
||||||
browser_.runtime.sendMessage({
|
browser_.runtime.sendMessage({
|
||||||
@@ -228,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.5",
|
"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
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
||||||
|
<!-- NOTE: I think this is not used at all -->
|
||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
|
|||||||
21992
Clipper/joplin-webclipper/popup/package-lock.json
generated
21992
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"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,21 +100,34 @@
|
|||||||
flex: 0;
|
flex: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.App .Folders {
|
.App .Folders,
|
||||||
|
.App .Tags {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
align-items: center;
|
align-items: top;
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.App .Folders label {
|
.App .Folders label,
|
||||||
|
.App .Tags label {
|
||||||
flex: 0;
|
flex: 0;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
margin-right: .5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
.App .Folders select {
|
.App .Folders select {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
margin-left: 10px;
|
}
|
||||||
|
|
||||||
|
.App .Tags input {
|
||||||
|
display: inline-block;
|
||||||
|
flex: 1;
|
||||||
|
margin-bottom: .5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.App .ClearTagButton {
|
||||||
|
margin-left: .5em;
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.App .StatusBar {
|
.App .StatusBar {
|
||||||
|
|||||||
@@ -14,10 +14,15 @@ class AppComponent extends Component {
|
|||||||
|
|
||||||
this.state = ({
|
this.state = ({
|
||||||
contentScriptLoaded: false,
|
contentScriptLoaded: false,
|
||||||
|
selectedTags: [],
|
||||||
|
contentScriptError: '',
|
||||||
});
|
});
|
||||||
|
|
||||||
this.confirm_click = () => {
|
this.confirm_click = () => {
|
||||||
bridge().sendContentToJoplin(this.props.clippedContent);
|
const content = Object.assign({}, this.props.clippedContent);
|
||||||
|
content.tags = this.state.selectedTags.join(',');
|
||||||
|
content.parent_id = this.props.selectedFolderId;
|
||||||
|
bridge().sendContentToJoplin(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.contentTitle_change = (event) => {
|
this.contentTitle_change = (event) => {
|
||||||
@@ -30,14 +35,24 @@ class AppComponent extends Component {
|
|||||||
this.clipSimplified_click = () => {
|
this.clipSimplified_click = () => {
|
||||||
bridge().sendCommandToActiveTab({
|
bridge().sendCommandToActiveTab({
|
||||||
name: 'simplifiedPageHtml',
|
name: 'simplifiedPageHtml',
|
||||||
parent_id: this.props.selectedFolderId,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
this.clipComplete_click = () => {
|
this.clipComplete_click = () => {
|
||||||
bridge().sendCommandToActiveTab({
|
bridge().sendCommandToActiveTab({
|
||||||
name: 'completePageHtml',
|
name: 'completePageHtml',
|
||||||
parent_id: this.props.selectedFolderId,
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
this.clipSelection_click = () => {
|
||||||
|
bridge().sendCommandToActiveTab({
|
||||||
|
name: 'selectedHtml',
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
this.clipUrl_click = () => {
|
||||||
|
bridge().sendCommandToActiveTab({
|
||||||
|
name: 'pageUrl',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -49,6 +64,7 @@ class AppComponent extends Component {
|
|||||||
name: 'screenshot',
|
name: 'screenshot',
|
||||||
api_base_url: baseUrl,
|
api_base_url: baseUrl,
|
||||||
parent_id: this.props.selectedFolderId,
|
parent_id: this.props.selectedFolderId,
|
||||||
|
tags: this.state.selectedTags.join(','),
|
||||||
});
|
});
|
||||||
|
|
||||||
window.close();
|
window.close();
|
||||||
@@ -58,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) => {
|
||||||
@@ -67,6 +83,41 @@ class AppComponent extends Component {
|
|||||||
id: event.target.value,
|
id: event.target.value,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.tagCompChanged = this.tagCompChanged.bind(this);
|
||||||
|
this.onAddTagClick = this.onAddTagClick.bind(this);
|
||||||
|
this.onClearTagButtonClick = this.onClearTagButtonClick.bind(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
onAddTagClick(event) {
|
||||||
|
const newTags = this.state.selectedTags.slice();
|
||||||
|
newTags.push('');
|
||||||
|
this.setState({ selectedTags: newTags });
|
||||||
|
this.focusNewTagInput_ = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
onClearTagButtonClick(event) {
|
||||||
|
const index = event.target.getAttribute('data-index');
|
||||||
|
const newTags = this.state.selectedTags.slice();
|
||||||
|
newTags.splice(index, 1);
|
||||||
|
this.setState({ selectedTags: newTags });
|
||||||
|
}
|
||||||
|
|
||||||
|
tagCompChanged(event) {
|
||||||
|
const index = Number(event.target.getAttribute('data-index'));
|
||||||
|
const value = event.target.value;
|
||||||
|
|
||||||
|
if (this.state.selectedTags.length <= index) {
|
||||||
|
const newTags = this.state.selectedTags.slice();
|
||||||
|
newTags.push(value);
|
||||||
|
this.setState({ selectedTags: newTags });
|
||||||
|
} else {
|
||||||
|
if (this.state.selectedTags[index] !== value) {
|
||||||
|
const newTags = this.state.selectedTags.slice();
|
||||||
|
newTags[index] = value;
|
||||||
|
this.setState({ selectedTags: newTags });
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async loadContentScripts() {
|
async loadContentScripts() {
|
||||||
@@ -76,14 +127,58 @@ class AppComponent extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async componentDidMount() {
|
async componentDidMount() {
|
||||||
|
try {
|
||||||
await this.loadContentScripts();
|
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,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let foundSelectedFolderId = false;
|
||||||
|
|
||||||
|
const searchSelectedFolder = (folders) => {
|
||||||
|
for (let i = 0; i < folders.length; i++) {
|
||||||
|
const folder = folders[i];
|
||||||
|
if (folder.id === this.props.selectedFolderId) foundSelectedFolderId = true;
|
||||||
|
if (folder.children) searchSelectedFolder(folder.children);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
searchSelectedFolder(this.props.folders);
|
||||||
|
|
||||||
|
if (!foundSelectedFolderId) {
|
||||||
|
const newFolderId = this.props.folders.length ? this.props.folders[0].id : null;
|
||||||
|
this.props.dispatch({
|
||||||
|
type: 'SELECTED_FOLDER_SET',
|
||||||
|
id: newFolderId,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidUpdate() {
|
||||||
|
if (this.focusNewTagInput_) {
|
||||||
|
this.focusNewTagInput_ = false;
|
||||||
|
let lastRef = null;
|
||||||
|
for (let i = 0; i < 100; i++) {
|
||||||
|
const ref = this.refs['tagSelector' + i];
|
||||||
|
if (!ref) break;
|
||||||
|
lastRef = ref;
|
||||||
|
}
|
||||||
|
if (lastRef) lastRef.focus();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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>
|
||||||
|
|
||||||
@@ -112,24 +207,17 @@ class AppComponent extends Component {
|
|||||||
<p className="Info">{ msg }</p>
|
<p className="Info">{ msg }</p>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
} else {
|
} else if (hasContent) {
|
||||||
if (hasContent) {
|
|
||||||
previewComponent = (
|
previewComponent = (
|
||||||
<div className="Preview">
|
<div className="Preview">
|
||||||
|
<a className={"Confirm Button"} onClick={this.confirm_click}>Confirm</a>
|
||||||
|
<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>
|
||||||
);
|
);
|
||||||
} else {
|
|
||||||
previewComponent = (
|
|
||||||
<div className="Preview">
|
|
||||||
<p className="Info">(No preview yet)</p>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const clipperStatusComp = () => {
|
const clipperStatusComp = () => {
|
||||||
@@ -159,8 +247,6 @@ class AppComponent extends Component {
|
|||||||
return <div className="StatusBar"><img alt={foundState} className="Led" src={led}/><span className="ServerStatus">{ msg }{ helpLink }</span></div>
|
return <div className="StatusBar"><img alt={foundState} className="Led" src={led}/><span className="ServerStatus">{ msg }{ helpLink }</span></div>
|
||||||
}
|
}
|
||||||
|
|
||||||
console.info(this.props.selectedFolderId);
|
|
||||||
|
|
||||||
const foldersComp = () => {
|
const foldersComp = () => {
|
||||||
const optionComps = [];
|
const optionComps = [];
|
||||||
|
|
||||||
@@ -189,18 +275,57 @@ class AppComponent extends Component {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const tagsComp = () => {
|
||||||
|
const comps = [];
|
||||||
|
for (let i = 0; i < this.state.selectedTags.length; i++) {
|
||||||
|
comps.push(<div>
|
||||||
|
<input
|
||||||
|
ref={'tagSelector' + i}
|
||||||
|
data-index={i}
|
||||||
|
key={i}
|
||||||
|
type="text"
|
||||||
|
list="tags"
|
||||||
|
value={this.state.selectedTags[i]}
|
||||||
|
onChange={this.tagCompChanged}
|
||||||
|
onInput={this.tagCompChanged}
|
||||||
|
/>
|
||||||
|
<a data-index={i} href="#" className="ClearTagButton" onClick={this.onClearTagButtonClick}>[x]</a>
|
||||||
|
</div>);
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<div>
|
||||||
|
{comps}
|
||||||
|
<a className="AddTagButton" href="#" onClick={this.onAddTagClick}>Add tag</a>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const tagDataListOptions = [];
|
||||||
|
for (let i = 0; i < this.props.tags.length; i++) {
|
||||||
|
const tag = this.props.tags[i];
|
||||||
|
tagDataListOptions.push(<option key={tag.id}>{tag.title}</option>);
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="App">
|
<div className="App">
|
||||||
<div className="Controls">
|
<div className="Controls">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a className="Button" onClick={this.clipSimplified_click}>Clip simplified page</a></li>
|
<li><a className="Button" onClick={this.clipSimplified_click}>Clip simplified page</a></li>
|
||||||
<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.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() }
|
||||||
|
<div className="Tags">
|
||||||
|
<label>Tags:</label>
|
||||||
|
{tagsComp()}
|
||||||
|
<datalist id="tags">
|
||||||
|
{tagDataListOptions}
|
||||||
|
</datalist>
|
||||||
|
</div>
|
||||||
{ warningComponent }
|
{ warningComponent }
|
||||||
<h2>Preview:</h2>
|
|
||||||
{ previewComponent }
|
{ previewComponent }
|
||||||
{ clipperStatusComp() }
|
{ clipperStatusComp() }
|
||||||
</div>
|
</div>
|
||||||
@@ -216,6 +341,7 @@ const mapStateToProps = (state) => {
|
|||||||
contentUploadOperation: state.contentUploadOperation,
|
contentUploadOperation: state.contentUploadOperation,
|
||||||
clipperServer: state.clipperServer,
|
clipperServer: state.clipperServer,
|
||||||
folders: state.folders,
|
folders: state.folders,
|
||||||
|
tags: state.tags,
|
||||||
selectedFolderId: state.selectedFolderId,
|
selectedFolderId: state.selectedFolderId,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ const randomClipperPort = require('./randomClipperPort');
|
|||||||
|
|
||||||
class Bridge {
|
class Bridge {
|
||||||
|
|
||||||
init(browser, browserSupportsPromises, dispatch) {
|
async init(browser, browserSupportsPromises, dispatch) {
|
||||||
console.info('Popup: Init bridge');
|
console.info('Popup: Init bridge');
|
||||||
|
|
||||||
this.browser_ = browser;
|
this.browser_ = browser;
|
||||||
@@ -28,6 +28,8 @@ class Bridge {
|
|||||||
base_url: command.base_url,
|
base_url: command.base_url,
|
||||||
source_url: command.url,
|
source_url: command.url,
|
||||||
parent_id: command.parent_id,
|
parent_id: command.parent_id,
|
||||||
|
tags: command.tags || '',
|
||||||
|
image_sizes: command.image_sizes || {},
|
||||||
};
|
};
|
||||||
|
|
||||||
this.dispatch({ type: 'CLIPPED_CONTENT_SET', content: content });
|
this.dispatch({ type: 'CLIPPED_CONTENT_SET', content: content });
|
||||||
@@ -36,7 +38,7 @@ class Bridge {
|
|||||||
|
|
||||||
this.browser_.runtime.onMessage.addListener(this.browser_notify);
|
this.browser_.runtime.onMessage.addListener(this.browser_notify);
|
||||||
|
|
||||||
const backgroundPage = this.browser_.extension.getBackgroundPage();
|
const backgroundPage = await this.backgroundPage(this.browser_);
|
||||||
|
|
||||||
// Not sure why the getBackgroundPage() sometimes returns null, so
|
// Not sure why the getBackgroundPage() sometimes returns null, so
|
||||||
// in that case default to "prod" environment, which means the live
|
// in that case default to "prod" environment, which means the live
|
||||||
@@ -53,6 +55,17 @@ class Bridge {
|
|||||||
this.findClipperServerPort();
|
this.findClipperServerPort();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async backgroundPage(browser) {
|
||||||
|
const bgp = browser.extension.getBackgroundPage();
|
||||||
|
if (bgp) return bgp;
|
||||||
|
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
browser.runtime.getBackgroundPage((bgp) => {
|
||||||
|
resolve(bgp);
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
env() {
|
env() {
|
||||||
return this.env_;
|
return this.env_;
|
||||||
}
|
}
|
||||||
@@ -111,6 +124,11 @@ class Bridge {
|
|||||||
|
|
||||||
const folders = await this.folderTree();
|
const folders = await this.folderTree();
|
||||||
this.dispatch({ type: 'FOLDERS_SET', folders: folders });
|
this.dispatch({ type: 'FOLDERS_SET', folders: folders });
|
||||||
|
|
||||||
|
const tags = await this.clipperApiExec('GET', 'tags');
|
||||||
|
this.dispatch({ type: 'TAGS_SET', tags: tags });
|
||||||
|
|
||||||
|
bridge().restoreState();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ const defaultState = {
|
|||||||
port: null,
|
port: null,
|
||||||
},
|
},
|
||||||
folders: [],
|
folders: [],
|
||||||
|
tags: [],
|
||||||
selectedFolderId: null,
|
selectedFolderId: null,
|
||||||
env: 'prod',
|
env: 'prod',
|
||||||
};
|
};
|
||||||
@@ -65,6 +66,11 @@ function reducer(state = defaultState, action) {
|
|||||||
newState.selectedFolderId = action.folders[0].id;
|
newState.selectedFolderId = action.folders[0].id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
} else if (action.type === 'TAGS_SET') {
|
||||||
|
|
||||||
|
newState = Object.assign({}, state);
|
||||||
|
newState.tags = action.tags;
|
||||||
|
|
||||||
} else if (action.type === 'SELECTED_FOLDER_SET') {
|
} else if (action.type === 'SELECTED_FOLDER_SET') {
|
||||||
|
|
||||||
newState = Object.assign({}, state);
|
newState = Object.assign({}, state);
|
||||||
@@ -88,11 +94,18 @@ function reducer(state = defaultState, action) {
|
|||||||
return newState;
|
return newState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
const store = createStore(reducer, applyMiddleware(reduxMiddleware));
|
const store = createStore(reducer, applyMiddleware(reduxMiddleware));
|
||||||
|
|
||||||
bridge().init(window.browser ? window.browser : window.chrome, !!window.browser, store.dispatch);
|
console.info('Popup: Init bridge and restore state...');
|
||||||
bridge().restoreState();
|
|
||||||
|
await bridge().init(window.browser ? window.browser : window.chrome, !!window.browser, store.dispatch);
|
||||||
|
|
||||||
console.info('Popup: Creating React app...');
|
console.info('Popup: Creating React app...');
|
||||||
|
|
||||||
ReactDOM.render(<Provider store={store}><App /></Provider>, document.getElementById('root'));
|
ReactDOM.render(<Provider store={store}><App /></Provider>, document.getElementById('root'));
|
||||||
|
}
|
||||||
|
|
||||||
|
main().catch((error) => {
|
||||||
|
console.error('Fatal error on initialisation:', error);
|
||||||
|
});
|
||||||
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
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user