You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-08-24 20:19:10 +02:00
Compare commits
1111 Commits
android-v1
...
android-v1
Author | SHA1 | Date | |
---|---|---|---|
|
d7d573d9dd | ||
|
c4b17f8919 | ||
|
da2f4b96c7 | ||
|
08af9de190 | ||
|
9e2982992a | ||
|
c03ac5c5f1 | ||
|
5934f2f08e | ||
|
f136f40fdc | ||
|
d213e4ab57 | ||
|
782aae4ddf | ||
|
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 | ||
|
c6466a780e | ||
|
43774ad3fb | ||
|
b3ba5b7747 | ||
|
599f4ccef4 | ||
|
a67600d264 | ||
|
ebf4c89ef0 | ||
|
aa7da784fc | ||
|
617ed42d8c | ||
|
5848e7d90d | ||
|
01d032261c | ||
|
54d06646aa | ||
|
81da46035a | ||
|
74d0f75802 | ||
|
f25a352dcb | ||
|
21ef8da45f | ||
|
1f3a1c49df | ||
|
a8b58aaec3 | ||
|
44f9b35d93 | ||
|
711af9beed | ||
|
971339ca9a | ||
|
f5a72ffbaf | ||
|
cf4331c5af | ||
|
07b85388fc | ||
|
553b086ba2 | ||
|
ff89537899 | ||
|
f20792889a | ||
|
ee22a7ff73 | ||
|
4fc4353859 | ||
|
f4f9e25e6b | ||
|
e54f9934b5 | ||
|
f599ae065a | ||
|
5bd9bf6a4e | ||
|
cb9e8d4f76 | ||
|
f64596672e | ||
|
961150b2d3 | ||
|
0cd8e1cbc0 | ||
|
b503aff5e9 | ||
|
54bde47c67 | ||
|
d345f8dc13 | ||
|
979b0c0e78 | ||
|
13525f3327 | ||
|
5d9c2c0904 | ||
|
c748281d86 | ||
|
fa619eba7c | ||
|
17a75f7cf5 | ||
|
a74cfbfb25 | ||
|
af01fed950 | ||
|
218b446915 | ||
|
a68df18cd5 | ||
|
f79326b2d5 | ||
|
b08dcdfd90 | ||
|
ced14e578f | ||
|
0528c6e970 | ||
|
df9c1e0aeb | ||
|
b6619b41df | ||
|
ab9675544c | ||
|
0d9f703c75 | ||
|
f6ee5dd0e7 | ||
|
423d880b92 | ||
|
41017b9ab8 | ||
|
e3314c859f | ||
|
8f794fdbc6 | ||
|
80b0773618 | ||
|
ac848241b9 | ||
|
b4432e2efc | ||
|
52f60a2cf6 | ||
|
03c8438050 | ||
|
0e1c36ccf1 | ||
|
1b2b68c485 | ||
|
5c36f3e78a | ||
|
d4ec8ae823 | ||
|
449a70d840 | ||
|
8375030135 | ||
|
e9f938b0fb | ||
|
b0e57a5990 | ||
|
f47610e6fd | ||
|
c131cb9bb8 | ||
|
023f775bd2 | ||
|
1127eb6e09 | ||
|
0d7437c7d2 | ||
|
6dbc691973 | ||
|
fe53200a3a | ||
|
c7f61271a0 | ||
|
b826e2d97b | ||
|
d8ad42b04a | ||
|
b3ca30b8b6 | ||
|
bdd9da3d22 | ||
|
eb43ddc701 | ||
|
f9c65a148f | ||
|
bd0b9dff51 | ||
|
3822309657 | ||
|
ac2ec65c81 | ||
|
c0943f1776 | ||
|
5a2ab5fae7 | ||
|
281e36fde7 | ||
|
1af1c445c6 | ||
|
e6d2e028ad | ||
|
8d25b8075d | ||
|
58201fd6c3 | ||
|
2b624a9aed | ||
|
792fd7c50d | ||
|
90d37a15bd | ||
|
ef57ee803f | ||
|
e2bfb74895 | ||
|
89b486a3ee | ||
|
d6c6ef20d4 | ||
|
6cb6e9541f | ||
|
a8acecb703 | ||
|
0938297250 | ||
|
a2da2f681c | ||
|
32477e901d | ||
|
1841c4dc11 | ||
|
f81dce3321 | ||
|
e15f84716a | ||
|
d11ecd8fac | ||
|
012e70d668 | ||
|
264ee4f319 | ||
|
4640d6d6e3 | ||
|
9db9d98419 | ||
|
f79d7b9626 | ||
|
a8da469523 | ||
|
3c5eb99c59 | ||
|
8dc14516d6 | ||
|
84efc6a04e | ||
|
86e3038cfe | ||
|
6898b9ca4c | ||
|
9eb62920f7 | ||
|
7cf267254f | ||
|
5a0e3cbbf2 | ||
|
4b376ec5c2 | ||
|
92b71d3eb2 | ||
|
c32d7de7c4 | ||
|
c83a61d45d | ||
|
429f2d5aab | ||
|
ed70cf571c | ||
|
fd77671575 | ||
|
9d915a916e | ||
|
acb90935c7 | ||
|
6301ba0a12 | ||
|
44e1245416 | ||
|
6527d9db83 | ||
|
2bcaf62a2f | ||
|
2db3998f11 | ||
|
04724c58d1 | ||
|
7ed9c2770c | ||
|
48883bfa13 | ||
|
b6d9e695d1 | ||
|
43bab3c1bd | ||
|
dd67602b87 | ||
|
c96a416c2c | ||
|
c4ca9cde32 | ||
|
6c5d208893 | ||
|
795fd8b58c | ||
|
c226940792 | ||
|
bdd0a6106f | ||
|
d1ea7ad3ea | ||
|
a2b1181f7c | ||
|
8cce2f17d5 | ||
|
658b911513 | ||
|
3c95979d94 | ||
|
2e32211a28 | ||
|
ba2874173d | ||
|
ba9598682c | ||
|
30bfd82683 | ||
|
10c6774c28 | ||
|
c4ad9019aa | ||
|
7c99ab9947 | ||
|
feb7778fe4 | ||
|
b45185780f | ||
|
4e032c0c55 | ||
|
2e2b35dfeb | ||
|
526ef7e1d2 | ||
|
a37005446a | ||
|
e012b927dc | ||
|
359b8d5545 | ||
|
23c592b322 | ||
|
9aeddf86f4 | ||
|
0e1887988e | ||
|
394f2df664 | ||
|
2a04378a0d | ||
|
bac68f2c42 | ||
|
0f0ff86ffa | ||
|
8b38752cbf | ||
|
3c24589450 | ||
|
65065a62d8 | ||
|
482e9340bc | ||
|
69d490996e | ||
|
3494937e34 | ||
|
41ba1043be | ||
|
cc57de60c0 | ||
|
60a2b9e5c6 | ||
|
8e1fb666a5 | ||
|
f4ad777bbf | ||
|
2eacf6146a | ||
|
fe2ba34cb4 | ||
|
84daa0db61 | ||
|
b9118a90be | ||
|
ef2ffd4e52 | ||
|
5e3063abe0 | ||
|
f460b2497a | ||
|
c080d7054f | ||
|
61dd4cefbc | ||
|
63d99b2d70 | ||
|
55332d7671 | ||
|
16635defcd | ||
|
595cf3fcad | ||
|
c9b9f82130 | ||
|
f5bca733d7 | ||
|
494e235e18 | ||
|
85219a6004 | ||
|
e4a7851e57 | ||
|
b7529b40b5 | ||
|
74827e5324 | ||
|
2e16cc5433 | ||
|
7f41bc5703 | ||
|
a2380fb752 | ||
|
f6a902809d | ||
|
33a853397d | ||
|
4f02481899 | ||
|
b18076565f | ||
|
853ddc5840 | ||
|
7930ab66c6 | ||
|
c7716c0d59 | ||
|
49cbb254d0 | ||
|
cf9246796d | ||
|
e1dee546dc | ||
|
da6fdad2de | ||
|
567596643c | ||
|
cb617e1b14 | ||
|
facf8afa8b | ||
|
f0dd61a711 | ||
|
e958211a13 | ||
|
0ed170b5bc | ||
|
473d3453a2 | ||
|
fa9d7b0408 | ||
|
d4a28f48c9 | ||
|
ead6fff861 | ||
|
c7d06b35cd | ||
|
fa939e5c76 | ||
|
1bf2601f4f | ||
|
feb0c02c9a | ||
|
40a34a7c05 | ||
|
c62dcd96b0 | ||
|
1364d6786d | ||
|
9f2666aef9 | ||
|
a6a351e68d | ||
|
1db38a9699 | ||
|
c57db1834f | ||
|
3aeb49b469 | ||
|
80b467eead | ||
|
61572f287a | ||
|
f136664c11 | ||
|
0e545baf10 | ||
|
e65e647359 | ||
|
238268884e | ||
|
4c210d0956 | ||
|
5f32c6466a | ||
|
71bd39a8a3 | ||
|
ffb660f0f4 | ||
|
dde23632c1 | ||
|
9d26f13db0 | ||
|
2a4c9c4427 | ||
|
3bfde26b74 | ||
|
a419bc7253 | ||
|
89e0dad88b | ||
|
ff1ee1249b | ||
|
ba9cfd8041 | ||
|
80a51e02a4 | ||
|
a2e2a9a2f5 | ||
|
49e4c37cac | ||
|
11d323d8b7 | ||
|
784ba45f1f | ||
|
e534414874 | ||
|
01f4faf8f1 | ||
|
b33d30ca47 | ||
|
1ba3fae101 | ||
|
9550347e04 | ||
|
398946d39a | ||
|
05faf55e8d | ||
|
4cf5525e20 | ||
|
62e91c44d7 | ||
|
e4ec4ae92b | ||
|
c1f5dfd9cc | ||
|
c8c9f80cc5 | ||
|
577bef5704 | ||
|
69ddcc6e30 | ||
|
16554b22c7 |
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
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
const { Logger } = require('lib/logger.js');
|
const { Logger } = require('lib/logger.js');
|
||||||
const Folder = require('lib/models/Folder.js');
|
const Folder = require('lib/models/Folder.js');
|
||||||
|
const BaseItem = require('lib/models/BaseItem.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 Note = require('lib/models/Note.js');
|
const Note = require('lib/models/Note.js');
|
||||||
@@ -9,6 +10,8 @@ const { reducer, defaultState } = require('lib/reducer.js');
|
|||||||
const { splitCommandString } = require('lib/string-utils.js');
|
const { splitCommandString } = require('lib/string-utils.js');
|
||||||
const { reg } = require('lib/registry.js');
|
const { reg } = require('lib/registry.js');
|
||||||
const { _ } = require('lib/locale.js');
|
const { _ } = require('lib/locale.js');
|
||||||
|
const Entities = require('html-entities').AllHtmlEntities;
|
||||||
|
const htmlentities = (new Entities()).encode;
|
||||||
|
|
||||||
const chalk = require('chalk');
|
const chalk = require('chalk');
|
||||||
const tk = require('terminal-kit');
|
const tk = require('terminal-kit');
|
||||||
@@ -638,12 +641,27 @@ class AppGui {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (link.type === 'resource') {
|
if (link.type === 'item') {
|
||||||
const resourceId = link.id;
|
const itemId = link.id;
|
||||||
let resource = await Resource.load(resourceId);
|
let item = await BaseItem.loadItemById(itemId);
|
||||||
if (!resource) throw new Error('No resource with ID ' + resourceId); // Should be nearly impossible
|
if (!item) throw new Error('No item with ID ' + itemId); // Should be nearly impossible
|
||||||
if (resource.mime) response.setHeader('Content-Type', resource.mime);
|
|
||||||
response.write(await Resource.content(resource));
|
if (item.type_ === BaseModel.TYPE_RESOURCE) {
|
||||||
|
if (item.mime) response.setHeader('Content-Type', item.mime);
|
||||||
|
response.write(await Resource.content(item));
|
||||||
|
} else if (item.type_ === BaseModel.TYPE_NOTE) {
|
||||||
|
const html = [`
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html class="client-nojs" lang="en" dir="ltr">
|
||||||
|
<head><meta charset="UTF-8"/></head><body>
|
||||||
|
`];
|
||||||
|
html.push('<pre>' + htmlentities(item.title) + '\n\n' + htmlentities(item.body) + '</pre>');
|
||||||
|
html.push('</body></html>');
|
||||||
|
response.write(html.join(''));
|
||||||
|
} else {
|
||||||
|
throw new Error('Unsupported item type: ' + item.type_);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -659,7 +677,7 @@ class AppGui {
|
|||||||
|
|
||||||
if (resourceIdRegex.test(url)) {
|
if (resourceIdRegex.test(url)) {
|
||||||
noteLinks[index] = {
|
noteLinks[index] = {
|
||||||
type: 'resource',
|
type: 'item',
|
||||||
id: url.substr(2),
|
id: url.substr(2),
|
||||||
};
|
};
|
||||||
} else if (hasProtocol(url, ['http', 'https', 'file', 'ftp'])) {
|
} else if (hasProtocol(url, ['http', 'https', 'file', 'ftp'])) {
|
||||||
|
@@ -21,8 +21,9 @@ 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');
|
||||||
|
const RevisionService = require('lib/services/RevisionService');
|
||||||
|
|
||||||
class Application extends BaseApplication {
|
class Application extends BaseApplication {
|
||||||
|
|
||||||
@@ -377,6 +378,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 +397,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();
|
||||||
|
|
||||||
@@ -414,6 +423,8 @@ class Application extends BaseApplication {
|
|||||||
const tags = await Tag.allWithNotes();
|
const tags = await Tag.allWithNotes();
|
||||||
|
|
||||||
ResourceService.runInBackground();
|
ResourceService.runInBackground();
|
||||||
|
|
||||||
|
RevisionService.instance().runInBackground();
|
||||||
|
|
||||||
this.dispatch({
|
this.dispatch({
|
||||||
type: 'TAG_UPDATE_ALL',
|
type: 'TAG_UPDATE_ALL',
|
||||||
|
@@ -36,7 +36,7 @@ async function handleAutocompletionPromise(line) {
|
|||||||
if (next[0] === '-') {
|
if (next[0] === '-') {
|
||||||
for (let i = 0; i<metadata.options.length; i++) {
|
for (let i = 0; i<metadata.options.length; i++) {
|
||||||
const options = metadata.options[i][0].split(' ');
|
const options = metadata.options[i][0].split(' ');
|
||||||
//if there are multiple options then they will be seperated by comma and
|
//if there are multiple options then they will be separated by comma and
|
||||||
//space. The comma should be removed
|
//space. The comma should be removed
|
||||||
if (options[0][options[0].length - 1] === ',') {
|
if (options[0][options[0].length - 1] === ',') {
|
||||||
options[0] = options[0].slice(0, -1);
|
options[0] = options[0].slice(0, -1);
|
||||||
|
@@ -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,30 +64,29 @@ class Command extends BaseCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (args.command === 'decrypt') {
|
if (args.command === 'decrypt') {
|
||||||
this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.'));
|
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.'));
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
await DecryptionWorker.instance().start();
|
await DecryptionWorker.instance().start();
|
||||||
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) {
|
continue;
|
||||||
this.stdout(_('Operation cancelled'));
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
Setting.setObjectKey('encryption.passwordCache', masterKeyId, password);
|
|
||||||
await EncryptionService.instance().loadMasterKeysFromSettings();
|
throw error;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
throw error;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
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()) {
|
||||||
@@ -72,7 +72,7 @@ class Command extends BaseCommand {
|
|||||||
this.stdout('');
|
this.stdout('');
|
||||||
this.stdout(commandNames.join(', '));
|
this.stdout(commandNames.join(', '));
|
||||||
this.stdout('');
|
this.stdout('');
|
||||||
this.stdout(_('In any command, a note or notebook can be refered to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.'));
|
this.stdout(_('In any command, a note or notebook can be referred to by title or ID, or using the shortcuts `$n` or `$b` for, respectively, the currently selected note or notebook. `$c` can be used to refer to the currently selected item.'));
|
||||||
this.stdout('');
|
this.stdout('');
|
||||||
this.stdout(_('To move from one pane to another, press Tab or Shift+Tab.'));
|
this.stdout(_('To move from one pane to another, press Tab or Shift+Tab.'));
|
||||||
this.stdout(_('Use the arrows and page up/down to scroll the lists and text areas (including this console).'));
|
this.stdout(_('Use the arrows and page up/down to scroll the lists and text areas (including this console).'));
|
||||||
|
@@ -22,7 +22,7 @@ class Command extends BaseCommand {
|
|||||||
enabled() {
|
enabled() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
options() {
|
options() {
|
||||||
return [
|
return [
|
||||||
['-n, --limit <num>', _('Displays only the first top <num> notes.')],
|
['-n, --limit <num>', _('Displays only the first top <num> notes.')],
|
||||||
@@ -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;
|
||||||
@@ -123,4 +123,4 @@ class Command extends BaseCommand {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = Command;
|
module.exports = Command;
|
||||||
|
@@ -29,7 +29,7 @@ class Command extends BaseCommand {
|
|||||||
|
|
||||||
const folder = await app().loadItem(BaseModel.TYPE_FOLDER, pattern);
|
const folder = await app().loadItem(BaseModel.TYPE_FOLDER, pattern);
|
||||||
if (!folder) throw new Error(_('Cannot find "%s".', pattern));
|
if (!folder) throw new Error(_('Cannot find "%s".', pattern));
|
||||||
const ok = force ? true : await this.prompt(_('Delete notebook? All notes within this notebook will also be deleted.'), { booleanAnswerDefault: 'n' });
|
const ok = force ? true : await this.prompt(_('Delete notebook? All notes and sub-notebooks within this notebook will also be deleted.'), { booleanAnswerDefault: 'n' });
|
||||||
if (!ok) return;
|
if (!ok) return;
|
||||||
|
|
||||||
await Folder.delete(folder.id);
|
await Folder.delete(folder.id);
|
||||||
|
@@ -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); });
|
||||||
|
@@ -18,26 +18,36 @@ class FolderListWidget extends ListWidget {
|
|||||||
this.notesParentType_ = 'Folder';
|
this.notesParentType_ = 'Folder';
|
||||||
this.updateIndexFromSelectedFolderId_ = false;
|
this.updateIndexFromSelectedFolderId_ = false;
|
||||||
this.updateItems_ = false;
|
this.updateItems_ = false;
|
||||||
|
this.trimItemTitle = false;
|
||||||
|
|
||||||
this.itemRenderer = (item) => {
|
this.itemRenderer = (item) => {
|
||||||
let output = [];
|
let output = [];
|
||||||
if (item === '-') {
|
if (item === '-') {
|
||||||
output.push('-'.repeat(this.innerWidth));
|
output.push('-'.repeat(this.innerWidth));
|
||||||
} else if (item.type_ === Folder.modelType()) {
|
} else if (item.type_ === Folder.modelType()) {
|
||||||
output.push(Folder.displayTitle(item));
|
output.push(' '.repeat(this.folderDepth(this.folders, item.id)) + Folder.displayTitle(item));
|
||||||
} else if (item.type_ === Tag.modelType()) {
|
} else if (item.type_ === Tag.modelType()) {
|
||||||
output.push('[' + Folder.displayTitle(item) + ']');
|
output.push('[' + Folder.displayTitle(item) + ']');
|
||||||
} else if (item.type_ === BaseModel.TYPE_SEARCH) {
|
} else if (item.type_ === BaseModel.TYPE_SEARCH) {
|
||||||
output.push(_('Search:'));
|
output.push(_('Search:'));
|
||||||
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(' ');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
folderDepth(folders, folderId) {
|
||||||
|
let output = 0;
|
||||||
|
while (true) {
|
||||||
|
const folder = BaseModel.byId(folders, folderId);
|
||||||
|
if (!folder.parent_id) return output;
|
||||||
|
output++;
|
||||||
|
folderId = folder.parent_id;
|
||||||
|
}
|
||||||
|
throw new Error('unreachable');
|
||||||
|
}
|
||||||
|
|
||||||
get selectedFolderId() {
|
get selectedFolderId() {
|
||||||
return this.selectedFolderId_;
|
return this.selectedFolderId_;
|
||||||
}
|
}
|
||||||
@@ -73,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();
|
||||||
@@ -111,6 +120,14 @@ class FolderListWidget extends ListWidget {
|
|||||||
this.updateIndexFromSelectedItemId()
|
this.updateIndexFromSelectedItemId()
|
||||||
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_) {
|
||||||
@@ -118,7 +135,19 @@ class FolderListWidget extends ListWidget {
|
|||||||
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);
|
||||||
|
|
||||||
@@ -19,6 +22,7 @@ const Tag = require('lib/models/Tag.js');
|
|||||||
const NoteTag = require('lib/models/NoteTag.js');
|
const NoteTag = require('lib/models/NoteTag.js');
|
||||||
const MasterKey = require('lib/models/MasterKey');
|
const MasterKey = require('lib/models/MasterKey');
|
||||||
const Setting = require('lib/models/Setting.js');
|
const Setting = require('lib/models/Setting.js');
|
||||||
|
const Revision = require('lib/models/Revision.js');
|
||||||
const { Logger } = require('lib/logger.js');
|
const { Logger } = require('lib/logger.js');
|
||||||
const { FsDriverNode } = require('lib/fs-driver-node.js');
|
const { FsDriverNode } = require('lib/fs-driver-node.js');
|
||||||
const { shimInit } = require('lib/shim-init-node.js');
|
const { shimInit } = require('lib/shim-init-node.js');
|
||||||
@@ -40,6 +44,7 @@ BaseItem.loadClass('Resource', Resource);
|
|||||||
BaseItem.loadClass('Tag', Tag);
|
BaseItem.loadClass('Tag', Tag);
|
||||||
BaseItem.loadClass('NoteTag', NoteTag);
|
BaseItem.loadClass('NoteTag', NoteTag);
|
||||||
BaseItem.loadClass('MasterKey', MasterKey);
|
BaseItem.loadClass('MasterKey', MasterKey);
|
||||||
|
BaseItem.loadClass('Revision', Revision);
|
||||||
|
|
||||||
Setting.setConstant('appId', 'net.cozic.joplin-cli');
|
Setting.setConstant('appId', 'net.cozic.joplin-cli');
|
||||||
Setting.setConstant('appType', 'cli');
|
Setting.setConstant('appType', 'cli');
|
||||||
@@ -66,26 +71,6 @@ process.stdout.on('error', function( err ) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// async function main() {
|
|
||||||
// const InteropService = require('lib/services/InteropService');
|
|
||||||
// const service = new InteropService();
|
|
||||||
// console.info(service.moduleByFormat('importer', 'enex'));
|
|
||||||
// //await service.modules();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// main().catch((error) => { console.error(error); });
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
application.start(process.argv).catch((error) => {
|
application.start(process.argv).catch((error) => {
|
||||||
if (error.code == 'flagError') {
|
if (error.code == 'flagError') {
|
||||||
console.error(error.message);
|
console.error(error.message);
|
||||||
|
1898
CliClient/locales/ar.po
Normal file
1898
CliClient/locales/ar.po
Normal file
File diff suppressed because it is too large
Load Diff
1952
CliClient/locales/ca.po
Normal file
1952
CliClient/locales/ca.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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 "
|
||||||
@@ -229,7 +230,7 @@ msgid "The possible commands are:"
|
|||||||
msgstr "Dostupné příkazy:"
|
msgstr "Dostupné příkazy:"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"In any command, a note or notebook can be refered to by title or ID, or "
|
"In any command, a note or notebook can be referred to by title or ID, or "
|
||||||
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
||||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -364,7 +365,10 @@ msgstr "Smaže vybraný zápisník."
|
|||||||
msgid "Deletes the notebook without asking for confirmation."
|
msgid "Deletes the notebook without asking for confirmation."
|
||||||
msgstr "Smaže zápisník bez potvrzení."
|
msgstr "Smaže zápisník bez potvrzení."
|
||||||
|
|
||||||
msgid "Delete notebook? All notes within this notebook will also be deleted."
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook? 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é."
|
msgstr "Smazat zápisník? Budou smazány i všechny poznámky v něm obsažené."
|
||||||
|
|
||||||
msgid "Deletes the notes matching <note-pattern>."
|
msgid "Deletes the notes matching <note-pattern>."
|
||||||
@@ -445,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 "
|
||||||
@@ -564,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í..."
|
||||||
@@ -571,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"
|
||||||
@@ -583,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"
|
||||||
@@ -599,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"
|
||||||
@@ -611,10 +663,34 @@ msgstr "Vyjmout"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Vložit"
|
msgstr "Vložit"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Vybrat datum"
|
||||||
|
|
||||||
|
msgid "Bold"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Italic"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit in external editor"
|
||||||
|
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"
|
||||||
@@ -623,19 +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 "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"
|
||||||
@@ -644,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"
|
||||||
@@ -670,28 +733,107 @@ 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 "Check synchronisation configuration"
|
msgid "Token has been copied to the clipboard!"
|
||||||
msgstr "Zkontrolujte nastavení synchronizace"
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Status: Started on port %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Status: %s"
|
||||||
|
msgstr "Stav: %s."
|
||||||
|
|
||||||
|
msgid "Disable Web Clipper Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The web clipper service is not enabled."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable Web Clipper Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
|
||||||
|
"to Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "In order to use the web clipper, you need to do the following:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Step 1: Enable the clipper service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This service allows the browser extension to communicate with Joplin. When "
|
||||||
|
"enabling it your firewall may ask you to give permission to Joplin to listen "
|
||||||
|
"to a particular port."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Step 2: Install the extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
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 "
|
||||||
@@ -772,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"
|
||||||
|
|
||||||
@@ -798,6 +944,10 @@ msgstr "Tagy oddělujte čárkami."
|
|||||||
msgid "Rename notebook:"
|
msgid "Rename notebook:"
|
||||||
msgstr "Přejmenovat zápisník:"
|
msgstr "Přejmenovat zápisník:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Rename tag:"
|
||||||
|
msgstr "Přejmenovat"
|
||||||
|
|
||||||
msgid "Set alarm:"
|
msgid "Set alarm:"
|
||||||
msgstr "Nastavit alarm:"
|
msgstr "Nastavit alarm:"
|
||||||
|
|
||||||
@@ -820,18 +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"
|
|
||||||
|
|
||||||
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\"."
|
||||||
|
|
||||||
@@ -839,16 +977,59 @@ 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..."
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "This file could not be opened: %s"
|
||||||
|
msgstr "Nebylo možné uložit zápisník: %s"
|
||||||
|
|
||||||
msgid "Save as..."
|
msgid "Save as..."
|
||||||
msgstr "Uložit jako..."
|
msgstr "Uložit jako..."
|
||||||
|
|
||||||
|
msgid "Copy path to clipboard"
|
||||||
|
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"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||||
|
"note."
|
||||||
|
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"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "emphasized text"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "List item"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Hyperlink"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach file"
|
msgid "Attach file"
|
||||||
msgstr "Přiložit soubor"
|
msgstr "Přiložit soubor"
|
||||||
|
|
||||||
@@ -858,11 +1039,37 @@ msgstr "Tagy"
|
|||||||
msgid "Set alarm"
|
msgid "Set alarm"
|
||||||
msgstr "Nastavit alarm"
|
msgstr "Nastavit alarm"
|
||||||
|
|
||||||
#, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid ""
|
msgid "In: %s"
|
||||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
msgstr "%s: %s"
|
||||||
"note."
|
|
||||||
msgstr "Tato poznámka je prázdný. Klikněte na \"%s\" pro otevření editoru."
|
msgid "Hyperlink"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Numbered List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Bulleted List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Checkbox"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Heading"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Horizontal Rule"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Click to stop external editing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Watching..."
|
||||||
|
msgstr "Zastavuji..."
|
||||||
|
|
||||||
msgid "to-do"
|
msgid "to-do"
|
||||||
msgstr "to-do"
|
msgstr "to-do"
|
||||||
@@ -895,24 +1102,86 @@ msgstr "Stav synchronizace"
|
|||||||
msgid "Encryption Options"
|
msgid "Encryption Options"
|
||||||
msgstr "Nastavení šifrování"
|
msgstr "Nastavení šifrování"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy
|
||||||
|
msgid "Clipper Options"
|
||||||
|
msgstr "Obecná nastavení"
|
||||||
|
|
||||||
|
#, 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"
|
||||||
@@ -954,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"
|
||||||
@@ -1001,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..."
|
||||||
|
|
||||||
@@ -1032,19 +1300,28 @@ msgstr "Zašifrováno"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Nelze editovat zašifrovanou položku"
|
msgstr "Nelze editovat zašifrovanou položku"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Bez názvu"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Upraveno: %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Konflikty"
|
msgstr "Konflikty"
|
||||||
|
|
||||||
#, javascript-format
|
#, fuzzy
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
msgid "Cannot move notebook to this location"
|
||||||
msgstr "Zápisník s tímto názvem již existuje: \"%s\""
|
msgstr "Poznámku nelze přesunout do zápisníku \"%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 "Zápisník se nemůže jmenovat \"%s\", tento název je rezervován."
|
msgstr "Zápisník se nemůže jmenovat \"%s\", tento název je rezervován."
|
||||||
|
|
||||||
msgid "Untitled"
|
#, fuzzy
|
||||||
msgstr "Bez názvu"
|
msgid "created date"
|
||||||
|
msgstr "Vytvořeno: %d."
|
||||||
|
|
||||||
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."
|
||||||
@@ -1057,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"
|
||||||
@@ -1088,12 +1362,20 @@ msgstr "Tmavý"
|
|||||||
msgid "Uncompleted to-dos on top"
|
msgid "Uncompleted to-dos on top"
|
||||||
msgstr "Nedokončené to-do listy nahoře"
|
msgstr "Nedokončené to-do listy nahoře"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show completed to-dos"
|
||||||
|
msgstr "Nedokončené to-do listy nahoře"
|
||||||
|
|
||||||
msgid "Sort notes by"
|
msgid "Sort notes by"
|
||||||
msgstr "Řadit poznámky podle"
|
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)"
|
||||||
|
|
||||||
@@ -1109,21 +1391,72 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"The font name will not be checked. If incorrect or empty, it will default to "
|
"This must be *monospace* font or it will not work properly. If the font is "
|
||||||
"a generic monospace font."
|
"incorrect or empty, it will default to a generic monospace font."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Jméno fontu není kontrolováno. Pokud je neplatné či chybí, bude použit "
|
"Jméno fontu není kontrolováno. Pokud je neplatné či chybí, bude použit "
|
||||||
"defaultní monospace font."
|
"defaultní monospace font."
|
||||||
@@ -1131,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"
|
||||||
|
|
||||||
@@ -1146,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"
|
||||||
|
|
||||||
@@ -1162,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"
|
||||||
|
|
||||||
@@ -1187,10 +1532,49 @@ msgstr "WebDAV uživatelské jméno"
|
|||||||
msgid "WebDAV password"
|
msgid "WebDAV password"
|
||||||
msgstr "WebDAV heslo"
|
msgstr "WebDAV heslo"
|
||||||
|
|
||||||
|
msgid "Custom TLS certificates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"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."
|
||||||
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ignore TLS certificate errors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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"
|
||||||
|
|
||||||
@@ -1203,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ář"
|
||||||
|
|
||||||
@@ -1277,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 (+)."
|
||||||
|
|
||||||
@@ -1305,6 +1702,14 @@ 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
|
||||||
|
msgid "Save alarm"
|
||||||
|
msgstr "Nastavit alarm"
|
||||||
|
|
||||||
msgid "Select date"
|
msgid "Select date"
|
||||||
msgstr "Vybrat datum"
|
msgstr "Vybrat datum"
|
||||||
|
|
||||||
@@ -1314,19 +1719,76 @@ 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
|
||||||
|
msgid "Decrypted items: %s / %s"
|
||||||
|
msgstr "Získané položky: %d/%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr "Nové tagy:"
|
msgstr "Nové tagy:"
|
||||||
|
|
||||||
msgid "Type new tags or select from list"
|
msgid "Type new tags or select from list"
|
||||||
msgstr "Zadejte nové tagy, nebo vyberte existující ze seznamu"
|
msgstr "Zadejte nové tagy, nebo vyberte existující ze seznamu"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"To work correctly, the app needs the following permissions. Please enable "
|
||||||
|
"them in your phone settings, in Apps > Joplin > Permissions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"- Storage: to allow attaching files to notes and to enable filesystem "
|
||||||
|
"synchronisation."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "- Camera: to allow taking a picture and attaching it to a note."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "- Location: to allow attaching geo-location information to a note."
|
||||||
|
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"
|
||||||
@@ -1366,16 +1828,31 @@ msgstr "Uložit změny"
|
|||||||
msgid "Discard changes"
|
msgid "Discard changes"
|
||||||
msgstr "Zahodit změny"
|
msgstr "Zahodit změny"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "No item with ID %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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"
|
||||||
|
|
||||||
msgid "Attach any file"
|
msgid "Attach any file"
|
||||||
msgstr "Přiložit soubor"
|
msgstr "Přiložit soubor"
|
||||||
|
|
||||||
|
msgid "Share"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Convert to note"
|
msgid "Convert to note"
|
||||||
msgstr "Konvertovat na poznámku"
|
msgstr "Konvertovat na poznámku"
|
||||||
|
|
||||||
@@ -1391,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"
|
||||||
|
|
||||||
@@ -1413,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"
|
||||||
|
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:"
|
||||||
@@ -210,7 +210,7 @@ msgid "The possible commands are:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"In any command, a note or notebook can be refered to by title or ID, or "
|
"In any command, a note or notebook can be referred to by title or ID, or "
|
||||||
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
||||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -332,7 +332,9 @@ msgstr ""
|
|||||||
msgid "Deletes the notebook without asking for confirmation."
|
msgid "Deletes the notebook without asking for confirmation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Delete notebook? All notes within this notebook will also be deleted."
|
msgid ""
|
||||||
|
"Delete notebook? All notes and sub-notebooks within this notebook will also "
|
||||||
|
"be deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Deletes the notes matching <note-pattern>."
|
msgid "Deletes the notes matching <note-pattern>."
|
||||||
@@ -406,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
|
||||||
@@ -503,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 ""
|
||||||
@@ -510,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"
|
||||||
@@ -522,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
|
||||||
@@ -538,7 +583,7 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -550,10 +595,31 @@ msgstr ""
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Bold"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Italic"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit in external editor"
|
||||||
|
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"
|
||||||
@@ -562,19 +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 "Encryption options"
|
msgid "&Help"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -583,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 ""
|
||||||
@@ -609,28 +659,106 @@ 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 "Check synchronisation configuration"
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Status: Started on port %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Status: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Disable Web Clipper Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The web clipper service is not enabled."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable Web Clipper Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
|
||||||
|
"to Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "In order to use the web clipper, you need to do the following:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Step 1: Enable the clipper service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This service allows the browser extension to communicate with Joplin. When "
|
||||||
|
"enabling it your firewall may ask you to give permission to Joplin to listen "
|
||||||
|
"to a particular port."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Step 2: Install the extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "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 "
|
||||||
@@ -700,6 +828,9 @@ msgstr ""
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -726,6 +857,9 @@ msgstr ""
|
|||||||
msgid "Rename notebook:"
|
msgid "Rename notebook:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Rename tag:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Set alarm:"
|
msgid "Set alarm:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -747,18 +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 "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 ""
|
||||||
|
|
||||||
@@ -766,16 +888,59 @@ 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 ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "This file could not be opened: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Save as..."
|
msgid "Save as..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy path to clipboard"
|
||||||
|
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 ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||||
|
"note."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "strong text"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "emphasized text"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "List item"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Hyperlink"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach file"
|
msgid "Attach file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -786,9 +951,34 @@ msgid "Set alarm"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid "In: %s"
|
||||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
msgstr ""
|
||||||
"note."
|
|
||||||
|
msgid "Hyperlink"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Numbered List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Bulleted List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Checkbox"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Heading"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Horizontal Rule"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Click to stop external editing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Watching..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "to-do"
|
msgid "to-do"
|
||||||
@@ -822,24 +1012,81 @@ msgstr ""
|
|||||||
msgid "Encryption Options"
|
msgid "Encryption Options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
msgid "Clipper Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, 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 ""
|
||||||
@@ -879,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"
|
||||||
@@ -920,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 ""
|
||||||
|
|
||||||
@@ -951,18 +1197,23 @@ 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 ""
|
||||||
|
|
||||||
#, javascript-format
|
msgid "Cannot move notebook to this location"
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr ""
|
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 "Untitled"
|
msgid "created date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
@@ -976,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"
|
||||||
@@ -1005,12 +1255,18 @@ msgstr ""
|
|||||||
msgid "Uncompleted to-dos on top"
|
msgid "Uncompleted to-dos on top"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Show completed to-dos"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Sort notes by"
|
msgid "Sort notes by"
|
||||||
msgstr ""
|
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 ""
|
||||||
|
|
||||||
@@ -1026,26 +1282,81 @@ 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 ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The font name will not be checked. If incorrect or empty, it will default to "
|
"This must be *monospace* font or it will not work properly. If the font is "
|
||||||
"a generic monospace font."
|
"incorrect or empty, it will default to a generic monospace font."
|
||||||
msgstr ""
|
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 ""
|
||||||
|
|
||||||
@@ -1061,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 ""
|
||||||
|
|
||||||
@@ -1075,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 ""
|
||||||
|
|
||||||
@@ -1098,10 +1412,45 @@ msgstr ""
|
|||||||
msgid "WebDAV password"
|
msgid "WebDAV password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Custom TLS certificates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"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."
|
||||||
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ignore TLS certificate errors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -1114,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 ""
|
||||||
|
|
||||||
@@ -1183,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 ""
|
||||||
|
|
||||||
@@ -1211,6 +1572,12 @@ msgstr ""
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save alarm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select date"
|
msgid "Select date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1220,18 +1587,72 @@ 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
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Decrypted items: %s / %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Type new tags or select from list"
|
msgid "Type new tags or select from list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"To work correctly, the app needs the following permissions. Please enable "
|
||||||
|
"them in your phone settings, in Apps > Joplin > Permissions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"- Storage: to allow attaching files to notes and to enable filesystem "
|
||||||
|
"synchronisation."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "- Camera: to allow taking a picture and attaching it to a note."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "- Location: to allow attaching geo-location information to a note."
|
||||||
|
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 ""
|
||||||
@@ -1271,16 +1692,30 @@ msgstr ""
|
|||||||
msgid "Discard changes"
|
msgid "Discard changes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "No item with ID %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach any file"
|
msgid "Attach any file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Share"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Convert to note"
|
msgid "Convert to note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1296,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
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
@@ -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»."
|
||||||
@@ -226,7 +227,7 @@ msgid "The possible commands are:"
|
|||||||
msgstr "As ordes posíbeis son:"
|
msgstr "As ordes posíbeis son:"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"In any command, a note or notebook can be refered to by title or ID, or "
|
"In any command, a note or notebook can be referred to by title or ID, or "
|
||||||
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
||||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -364,7 +365,10 @@ msgstr "Eliminar o carderno indicado."
|
|||||||
msgid "Deletes the notebook without asking for confirmation."
|
msgid "Deletes the notebook without asking for confirmation."
|
||||||
msgstr "Elimina o caderno indicado sen solicitar confirmación."
|
msgstr "Elimina o caderno indicado sen solicitar confirmación."
|
||||||
|
|
||||||
msgid "Delete notebook? All notes within this notebook will also be deleted."
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"Delete notebook? All notes and sub-notebooks within this notebook will also "
|
||||||
|
"be deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Desexa eliminar o caderno? Tamén se eliminarán todas as notas deste caderno."
|
"Desexa eliminar o caderno? Tamén se eliminarán todas as notas deste caderno."
|
||||||
|
|
||||||
@@ -449,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» "
|
||||||
@@ -569,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..."
|
||||||
@@ -576,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"
|
||||||
@@ -588,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"
|
||||||
@@ -604,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"
|
||||||
@@ -616,10 +668,34 @@ msgstr "Cortar"
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr "Pegar"
|
msgstr "Pegar"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr "Seleccionar data"
|
||||||
|
|
||||||
|
msgid "Bold"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Italic"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit in external editor"
|
||||||
|
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"
|
||||||
@@ -628,19 +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 "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"
|
||||||
@@ -649,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"
|
||||||
@@ -675,28 +738,107 @@ 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 "Check synchronisation configuration"
|
msgid "Token has been copied to the clipboard!"
|
||||||
msgstr "Comprobar a configuración da sincronización"
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Status: Started on port %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "Status: %s"
|
||||||
|
msgstr "Estado: %s."
|
||||||
|
|
||||||
|
msgid "Disable Web Clipper Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The web clipper service is not enabled."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable Web Clipper Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
|
||||||
|
"to Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "In order to use the web clipper, you need to do the following:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Step 1: Enable the clipper service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This service allows the browser extension to communicate with Joplin. When "
|
||||||
|
"enabling it your firewall may ask you to give permission to Joplin to listen "
|
||||||
|
"to a particular port."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Step 2: Install the extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
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 "
|
||||||
@@ -779,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"
|
||||||
|
|
||||||
@@ -805,6 +951,10 @@ msgstr "Separar cada etiqueta por unha coma."
|
|||||||
msgid "Rename notebook:"
|
msgid "Rename notebook:"
|
||||||
msgstr "Renomear caderno:"
|
msgstr "Renomear caderno:"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Rename tag:"
|
||||||
|
msgstr "Renomear"
|
||||||
|
|
||||||
msgid "Set alarm:"
|
msgid "Set alarm:"
|
||||||
msgstr "Estabelecer alarma:"
|
msgstr "Estabelecer alarma:"
|
||||||
|
|
||||||
@@ -826,18 +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"
|
|
||||||
|
|
||||||
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»."
|
||||||
|
|
||||||
@@ -845,16 +983,61 @@ 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…"
|
||||||
|
|
||||||
|
#, fuzzy, javascript-format
|
||||||
|
msgid "This file could not be opened: %s"
|
||||||
|
msgstr "Non foi posíbel gardar o caderno: %s"
|
||||||
|
|
||||||
msgid "Save as..."
|
msgid "Save as..."
|
||||||
msgstr "Gardar como…"
|
msgstr "Gardar como…"
|
||||||
|
|
||||||
|
msgid "Copy path to clipboard"
|
||||||
|
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"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||||
|
"note."
|
||||||
|
msgstr ""
|
||||||
|
"Esta nota non ten contido. Prema en «%s» para ir ao editor e modificar a "
|
||||||
|
"nota."
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "strong text"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "emphasized text"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "List item"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Hyperlink"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach file"
|
msgid "Attach file"
|
||||||
msgstr "Anexar un ficheiro"
|
msgstr "Anexar un ficheiro"
|
||||||
|
|
||||||
@@ -864,13 +1047,37 @@ msgstr "Etiquetas"
|
|||||||
msgid "Set alarm"
|
msgid "Set alarm"
|
||||||
msgstr "Estabelecer alarma"
|
msgstr "Estabelecer alarma"
|
||||||
|
|
||||||
#, javascript-format
|
#, fuzzy, javascript-format
|
||||||
msgid ""
|
msgid "In: %s"
|
||||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
msgstr "%s: %s"
|
||||||
"note."
|
|
||||||
|
msgid "Hyperlink"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Esta nota non ten contido. Prema en «%s» para ir ao editor e modificar a "
|
|
||||||
"nota."
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Numbered List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Bulleted List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Checkbox"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Heading"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Horizontal Rule"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Click to stop external editing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Watching..."
|
||||||
|
msgstr "Cancelando..."
|
||||||
|
|
||||||
msgid "to-do"
|
msgid "to-do"
|
||||||
msgstr "tarefas pendentes"
|
msgstr "tarefas pendentes"
|
||||||
@@ -903,24 +1110,87 @@ msgstr "Estado da sincronización"
|
|||||||
msgid "Encryption Options"
|
msgid "Encryption Options"
|
||||||
msgstr "Opcións de cifrado"
|
msgstr "Opcións de cifrado"
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
#, fuzzy
|
||||||
|
msgid "Clipper Options"
|
||||||
|
msgstr "Opcións xerais"
|
||||||
|
|
||||||
|
#, 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"
|
||||||
@@ -962,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"
|
||||||
@@ -1009,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..."
|
||||||
|
|
||||||
@@ -1040,19 +1309,28 @@ msgstr "Cifrado"
|
|||||||
msgid "Encrypted items cannot be modified"
|
msgid "Encrypted items cannot be modified"
|
||||||
msgstr "Non é posíbel modificar elementos cifrados"
|
msgstr "Non é posíbel modificar elementos cifrados"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "title"
|
||||||
|
msgstr "Sen título"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "updated date"
|
||||||
|
msgstr "Actualizado: %d."
|
||||||
|
|
||||||
msgid "Conflicts"
|
msgid "Conflicts"
|
||||||
msgstr "Conflitos"
|
msgstr "Conflitos"
|
||||||
|
|
||||||
#, javascript-format
|
#, fuzzy
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
msgid "Cannot move notebook to this location"
|
||||||
msgstr "Xa existe un caderno con ese título: «%s»"
|
msgstr "Non é posíbel mover a nota ao caderno «%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 "Os cadernos non poden levar o nome «%s» porque é un título reservado."
|
msgstr "Os cadernos non poden levar o nome «%s» porque é un título reservado."
|
||||||
|
|
||||||
msgid "Untitled"
|
#, fuzzy
|
||||||
msgstr "Sen título"
|
msgid "created date"
|
||||||
|
msgstr "Creado: %d."
|
||||||
|
|
||||||
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."
|
||||||
@@ -1065,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"
|
||||||
@@ -1096,12 +1371,20 @@ msgstr "Escuro"
|
|||||||
msgid "Uncompleted to-dos on top"
|
msgid "Uncompleted to-dos on top"
|
||||||
msgstr "Tarefas sen completar arriba"
|
msgstr "Tarefas sen completar arriba"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Show completed to-dos"
|
||||||
|
msgstr "Tarefas sen completar arriba"
|
||||||
|
|
||||||
msgid "Sort notes by"
|
msgid "Sort notes by"
|
||||||
msgstr "Ordenar notas por"
|
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"
|
||||||
|
|
||||||
@@ -1117,21 +1400,72 @@ 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"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
"The font name will not be checked. If incorrect or empty, it will default to "
|
"This must be *monospace* font or it will not work properly. If the font is "
|
||||||
"a generic monospace font."
|
"incorrect or empty, it will default to a generic monospace font."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Non se comprobará o nome da fonte. Se é incorrecto ou está baleiro, "
|
"Non se comprobará o nome da fonte. Se é incorrecto ou está baleiro, "
|
||||||
"estabelecerase por omisión un tipo de letra xenérico de largura única."
|
"estabelecerase por omisión un tipo de letra xenérico de largura única."
|
||||||
@@ -1139,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"
|
||||||
|
|
||||||
@@ -1154,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"
|
||||||
|
|
||||||
@@ -1170,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"
|
||||||
|
|
||||||
@@ -1195,10 +1541,49 @@ msgstr "Usuario de WebDAV"
|
|||||||
msgid "WebDAV password"
|
msgid "WebDAV password"
|
||||||
msgstr "Contrasinal do WebDAV"
|
msgstr "Contrasinal do WebDAV"
|
||||||
|
|
||||||
|
msgid "Custom TLS certificates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"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."
|
||||||
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ignore TLS certificate errors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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"
|
||||||
|
|
||||||
@@ -1211,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"
|
||||||
|
|
||||||
@@ -1285,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 (+)."
|
||||||
|
|
||||||
@@ -1313,6 +1711,14 @@ 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
|
||||||
|
msgid "Save alarm"
|
||||||
|
msgstr "Estabelecer alarma"
|
||||||
|
|
||||||
msgid "Select date"
|
msgid "Select date"
|
||||||
msgstr "Seleccionar data"
|
msgstr "Seleccionar data"
|
||||||
|
|
||||||
@@ -1322,19 +1728,76 @@ 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
|
||||||
|
msgid "Decrypted items: %s / %s"
|
||||||
|
msgstr "Elementos obtidos: %d/%d."
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr "Etiquetas novas:"
|
msgstr "Etiquetas novas:"
|
||||||
|
|
||||||
msgid "Type new tags or select from list"
|
msgid "Type new tags or select from list"
|
||||||
msgstr "Escriba etiquetas novas ou seleccione da lista"
|
msgstr "Escriba etiquetas novas ou seleccione da lista"
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"To work correctly, the app needs the following permissions. Please enable "
|
||||||
|
"them in your phone settings, in Apps > Joplin > Permissions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"- Storage: to allow attaching files to notes and to enable filesystem "
|
||||||
|
"synchronisation."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "- Camera: to allow taking a picture and attaching it to a note."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "- Location: to allow attaching geo-location information to a note."
|
||||||
|
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"
|
||||||
@@ -1374,16 +1837,31 @@ msgstr "Gardar cambios"
|
|||||||
msgid "Discard changes"
|
msgid "Discard changes"
|
||||||
msgstr "Desbotar os cambios"
|
msgstr "Desbotar os cambios"
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "No item with ID %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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"
|
||||||
|
|
||||||
msgid "Attach any file"
|
msgid "Attach any file"
|
||||||
msgstr "Adxuntar calquera ficheiro"
|
msgstr "Adxuntar calquera ficheiro"
|
||||||
|
|
||||||
|
msgid "Share"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Convert to note"
|
msgid "Convert to note"
|
||||||
msgstr "Converter para nota"
|
msgstr "Converter para nota"
|
||||||
|
|
||||||
@@ -1399,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"
|
||||||
|
|
||||||
@@ -1420,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»"
|
||||||
|
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
@@ -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:"
|
||||||
@@ -210,7 +210,7 @@ msgid "The possible commands are:"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"In any command, a note or notebook can be refered to by title or ID, or "
|
"In any command, a note or notebook can be referred to by title or ID, or "
|
||||||
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
"using the shortcuts `$n` or `$b` for, respectively, the currently selected "
|
||||||
"note or notebook. `$c` can be used to refer to the currently selected item."
|
"note or notebook. `$c` can be used to refer to the currently selected item."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -332,7 +332,9 @@ msgstr ""
|
|||||||
msgid "Deletes the notebook without asking for confirmation."
|
msgid "Deletes the notebook without asking for confirmation."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Delete notebook? All notes within this notebook will also be deleted."
|
msgid ""
|
||||||
|
"Delete notebook? All notes and sub-notebooks within this notebook will also "
|
||||||
|
"be deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Deletes the notes matching <note-pattern>."
|
msgid "Deletes the notes matching <note-pattern>."
|
||||||
@@ -406,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
|
||||||
@@ -503,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 ""
|
||||||
@@ -510,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"
|
||||||
@@ -522,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
|
||||||
@@ -538,7 +583,7 @@ msgstr ""
|
|||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "&Edit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
@@ -550,10 +595,31 @@ msgstr ""
|
|||||||
msgid "Paste"
|
msgid "Paste"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Select all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Bold"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Italic"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Date Time"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Edit in external editor"
|
||||||
|
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"
|
||||||
@@ -562,19 +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 "Encryption options"
|
msgid "&Help"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "General Options"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Help"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
@@ -583,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 ""
|
||||||
@@ -609,28 +659,106 @@ 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 "Check synchronisation configuration"
|
msgid "Token has been copied to the clipboard!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The web clipper service is enabled and set to auto-start."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Status: Started on port %d"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Status: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Disable Web Clipper Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "The web clipper service is not enabled."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Enable Web Clipper Service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
|
||||||
|
"to Joplin."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "In order to use the web clipper, you need to do the following:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Step 1: Enable the clipper service"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"This service allows the browser extension to communicate with Joplin. When "
|
||||||
|
"enabling it your firewall may ask you to give permission to Joplin to listen "
|
||||||
|
"to a particular port."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Step 2: Install the extension"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Download and install the relevant extension for your browser:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "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 "
|
||||||
@@ -700,6 +828,9 @@ msgstr ""
|
|||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Usage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -726,6 +857,9 @@ msgstr ""
|
|||||||
msgid "Rename notebook:"
|
msgid "Rename notebook:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Rename tag:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Set alarm:"
|
msgid "Set alarm:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -747,18 +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 "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 ""
|
||||||
|
|
||||||
@@ -766,16 +888,59 @@ 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 ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "This file could not be opened: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Save as..."
|
msgid "Save as..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Copy path to clipboard"
|
||||||
|
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 ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid ""
|
||||||
|
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
||||||
|
"note."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "strong text"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "emphasized text"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "List item"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Insert Hyperlink"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach file"
|
msgid "Attach file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -786,9 +951,34 @@ msgid "Set alarm"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid "In: %s"
|
||||||
"This note has no content. Click on \"%s\" to toggle the editor and edit the "
|
msgstr ""
|
||||||
"note."
|
|
||||||
|
msgid "Hyperlink"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Code"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Numbered List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Bulleted List"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Checkbox"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Heading"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Horizontal Rule"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Click to stop external editing"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Watching..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "to-do"
|
msgid "to-do"
|
||||||
@@ -822,24 +1012,81 @@ msgstr ""
|
|||||||
msgid "Encryption Options"
|
msgid "Encryption Options"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Remove this tag from all the notes?"
|
msgid "Clipper Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, 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 ""
|
||||||
@@ -879,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"
|
||||||
@@ -920,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 ""
|
||||||
|
|
||||||
@@ -951,18 +1197,23 @@ 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 ""
|
||||||
|
|
||||||
#, javascript-format
|
msgid "Cannot move notebook to this location"
|
||||||
msgid "A notebook with this title already exists: \"%s\""
|
|
||||||
msgstr ""
|
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 "Untitled"
|
msgid "created date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "This note does not have geolocation information."
|
msgid "This note does not have geolocation information."
|
||||||
@@ -976,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"
|
||||||
@@ -1005,12 +1255,18 @@ msgstr ""
|
|||||||
msgid "Uncompleted to-dos on top"
|
msgid "Uncompleted to-dos on top"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Show completed to-dos"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Sort notes by"
|
msgid "Sort notes by"
|
||||||
msgstr ""
|
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 ""
|
||||||
|
|
||||||
@@ -1026,26 +1282,81 @@ 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 ""
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The font name will not be checked. If incorrect or empty, it will default to "
|
"This must be *monospace* font or it will not work properly. If the font is "
|
||||||
"a generic monospace font."
|
"incorrect or empty, it will default to a generic monospace font."
|
||||||
msgstr ""
|
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 ""
|
||||||
|
|
||||||
@@ -1061,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 ""
|
||||||
|
|
||||||
@@ -1075,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 ""
|
||||||
|
|
||||||
@@ -1098,10 +1412,45 @@ msgstr ""
|
|||||||
msgid "WebDAV password"
|
msgid "WebDAV password"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Custom TLS certificates"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"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."
|
||||||
|
"pem. Note that if you make changes to the TLS settings, you must save your "
|
||||||
|
"changes before clicking on \"Check synchronisation configuration\"."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Ignore TLS certificate errors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
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 ""
|
||||||
|
|
||||||
@@ -1114,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 ""
|
||||||
|
|
||||||
@@ -1183,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 ""
|
||||||
|
|
||||||
@@ -1211,6 +1572,12 @@ msgstr ""
|
|||||||
msgid "Press to set the decryption password."
|
msgid "Press to set the decryption password."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Clear alarm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Save alarm"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Select date"
|
msgid "Select date"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1220,18 +1587,72 @@ 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
|
||||||
|
msgid ""
|
||||||
|
"Could not authorise application:\n"
|
||||||
|
"\n"
|
||||||
|
"%s\n"
|
||||||
|
"\n"
|
||||||
|
"Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Decrypted items: %s / %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "New tags:"
|
msgid "New tags:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Type new tags or select from list"
|
msgid "Type new tags or select from list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"To work correctly, the app needs the following permissions. Please enable "
|
||||||
|
"them in your phone settings, in Apps > Joplin > Permissions"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid ""
|
||||||
|
"- Storage: to allow attaching files to notes and to enable filesystem "
|
||||||
|
"synchronisation."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "- Camera: to allow taking a picture and attaching it to a note."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "- Location: to allow attaching geo-location information to a note."
|
||||||
|
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 ""
|
||||||
@@ -1271,16 +1692,30 @@ msgstr ""
|
|||||||
msgid "Discard changes"
|
msgid "Discard changes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "No item with ID %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, javascript-format
|
||||||
|
msgid "The Joplin mobile app does not currently support this type of link: %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Take photo"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach photo"
|
msgid "Attach photo"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Attach any file"
|
msgid "Attach any file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Share"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "Convert to note"
|
msgid "Convert to note"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1296,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
File diff suppressed because it is too large
Load Diff
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
1945
CliClient/locales/sl_SI.po
Normal file
1945
CliClient/locales/sl_SI.po
Normal file
File diff suppressed because it is too large
Load Diff
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
1874
CliClient/locales/zh_TW.po
Normal file
1874
CliClient/locales/zh_TW.po
Normal file
File diff suppressed because it is too large
Load Diff
3054
CliClient/package-lock.json
generated
3054
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.106",
|
"version": "1.0.125",
|
||||||
"bin": {
|
"bin": {
|
||||||
"joplin": "./main.js"
|
"joplin": "./main.js"
|
||||||
},
|
},
|
||||||
@@ -31,13 +32,22 @@
|
|||||||
"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",
|
||||||
|
"diff-match-patch": "^1.0.4",
|
||||||
|
"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",
|
||||||
|
"image-data-uri": "^2.0.0",
|
||||||
|
"image-type": "^3.0.0",
|
||||||
|
"joplin-turndown": "^4.0.11",
|
||||||
|
"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",
|
||||||
@@ -47,20 +57,23 @@
|
|||||||
"promise": "^7.1.1",
|
"promise": "^7.1.1",
|
||||||
"proper-lockfile": "^2.0.1",
|
"proper-lockfile": "^2.0.1",
|
||||||
"query-string": "4.3.4",
|
"query-string": "4.3.4",
|
||||||
|
"read-chunk": "^2.1.0",
|
||||||
"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.25",
|
"tkwidgets": "^0.5.26",
|
||||||
"url-parse": "^1.2.0",
|
"url-parse": "^1.2.0",
|
||||||
"uuid": "^3.0.1",
|
"uuid": "^3.0.1",
|
||||||
|
"valid-url": "^1.0.9",
|
||||||
"word-wrap": "^1.2.3",
|
"word-wrap": "^1.2.3",
|
||||||
"xml2js": "^0.4.19",
|
"xml2js": "^0.4.19",
|
||||||
"yargs-parser": "^7.0.0"
|
"yargs-parser": "^7.0.0"
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
START_DIR="$(pwd)"
|
||||||
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
BUILD_DIR="$ROOT_DIR/tests-build"
|
BUILD_DIR="$ROOT_DIR/tests-build"
|
||||||
TEST_FILE="$1"
|
TEST_FILE="$1"
|
||||||
@@ -8,8 +9,37 @@ rsync -a "$ROOT_DIR/../ReactNativeClient/lib/" "$BUILD_DIR/lib/"
|
|||||||
rsync -a "$ROOT_DIR/build/locales/" "$BUILD_DIR/locales/"
|
rsync -a "$ROOT_DIR/build/locales/" "$BUILD_DIR/locales/"
|
||||||
mkdir -p "$BUILD_DIR/data"
|
mkdir -p "$BUILD_DIR/data"
|
||||||
|
|
||||||
if [[ $TEST_FILE == "" ]]; then
|
if [[ $TEST_FILE != "" ]]; then
|
||||||
(cd "$ROOT_DIR" && npm test tests-build/synchronizer.js tests-build/encryption.js tests-build/ArrayUtils.js tests-build/models_Setting.js tests-build/services_InteropService.js)
|
|
||||||
else
|
|
||||||
(cd "$ROOT_DIR" && npm test tests-build/$TEST_FILE.js)
|
(cd "$ROOT_DIR" && npm test tests-build/$TEST_FILE.js)
|
||||||
fi
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
function finish {
|
||||||
|
cd "$START_DIR"
|
||||||
|
}
|
||||||
|
|
||||||
|
trap finish EXIT
|
||||||
|
|
||||||
|
cd "$ROOT_DIR"
|
||||||
|
npm test tests-build/ArrayUtils.js
|
||||||
|
npm test tests-build/encryption.js
|
||||||
|
npm test tests-build/EnexToMd.js
|
||||||
|
npm test tests-build/HtmlToMd.js
|
||||||
|
npm test tests-build/markdownUtils.js
|
||||||
|
npm test tests-build/models_BaseItem.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_Resource.js
|
||||||
|
npm test tests-build/models_Revision.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_ResourceService.js
|
||||||
|
npm test tests-build/services_rest_Api.js
|
||||||
|
npm test tests-build/services_SearchEngine.js
|
||||||
|
npm test tests-build/services_Revision.js
|
||||||
|
npm test tests-build/StringUtils.js
|
||||||
|
npm test tests-build/synchronizer.js
|
||||||
|
npm test tests-build/urlUtils.js
|
@@ -44,4 +44,13 @@ describe('ArrayUtils', function() {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should compare arrays', async (done) => {
|
||||||
|
expect(ArrayUtils.contentEquals([], [])).toBe(true);
|
||||||
|
expect(ArrayUtils.contentEquals(['a'], ['a'])).toBe(true);
|
||||||
|
expect(ArrayUtils.contentEquals(['b', 'a'], ['a', 'b'])).toBe(true);
|
||||||
|
expect(ArrayUtils.contentEquals(['b'], ['a', 'b'])).toBe(false);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
68
CliClient/tests/EnexToMd.js
Normal file
68
CliClient/tests/EnexToMd.js
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
const os = require('os');
|
||||||
|
const { time } = require('lib/time-utils.js');
|
||||||
|
const { filename } = require('lib/path-utils.js');
|
||||||
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
|
const Folder = require('lib/models/Folder.js');
|
||||||
|
const Note = require('lib/models/Note.js');
|
||||||
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
|
const { shim } = require('lib/shim');
|
||||||
|
const { enexXmlToMd } = require('lib/import-enex-md-gen.js');
|
||||||
|
|
||||||
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60 * 60 * 1000; // Can run for a while since everything is in the same test unit
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('EnexToMd', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
await switchClient(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should convert from Enex to Markdown', asyncTest(async () => {
|
||||||
|
const basePath = __dirname + '/enex_to_md';
|
||||||
|
const files = await shim.fsDriver().readDirStats(basePath);
|
||||||
|
|
||||||
|
for (let i = 0; i < files.length; i++) {
|
||||||
|
const htmlFilename = files[i].path;
|
||||||
|
if (htmlFilename.indexOf('.html') < 0) continue;
|
||||||
|
|
||||||
|
const htmlPath = basePath + '/' + htmlFilename;
|
||||||
|
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
|
||||||
|
|
||||||
|
// if (htmlFilename !== 'list5.html') continue;
|
||||||
|
|
||||||
|
const html = await shim.fsDriver().readFile(htmlPath);
|
||||||
|
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
||||||
|
|
||||||
|
let actualMd = await enexXmlToMd('<div>' + html + '</div>', []);
|
||||||
|
|
||||||
|
if (os.EOL === '\r\n') {
|
||||||
|
expectedMd = expectedMd.replace(/\r\n/g, '\n')
|
||||||
|
actualMd = actualMd.replace(/\r\n/g, '\n')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (actualMd !== expectedMd) {
|
||||||
|
console.info('');
|
||||||
|
console.info('Error converting file: ' + htmlFilename);
|
||||||
|
console.info('--------------------------------- Got:');
|
||||||
|
console.info(actualMd.split('\n'));
|
||||||
|
console.info('--------------------------------- Expected:');
|
||||||
|
console.info(expectedMd.split('\n'));
|
||||||
|
console.info('--------------------------------------------');
|
||||||
|
console.info('');
|
||||||
|
|
||||||
|
expect(false).toBe(true);
|
||||||
|
// return;
|
||||||
|
} else {
|
||||||
|
expect(true).toBe(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
72
CliClient/tests/HtmlToMd.js
Normal file
72
CliClient/tests/HtmlToMd.js
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
|
const os = require('os');
|
||||||
|
const { time } = require('lib/time-utils.js');
|
||||||
|
const { filename } = require('lib/path-utils.js');
|
||||||
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
|
const Folder = require('lib/models/Folder.js');
|
||||||
|
const Note = require('lib/models/Note.js');
|
||||||
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
|
const { shim } = require('lib/shim');
|
||||||
|
const HtmlToMd = require('lib/HtmlToMd');
|
||||||
|
const { enexXmlToMd } = require('lib/import-enex-md-gen.js');
|
||||||
|
|
||||||
|
jasmine.DEFAULT_TIMEOUT_INTERVAL = 60 * 60 * 1000; // Can run for a while since everything is in the same test unit
|
||||||
|
|
||||||
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('HtmlToMd', function() {
|
||||||
|
|
||||||
|
beforeEach(async (done) => {
|
||||||
|
await setupDatabaseAndSynchronizer(1);
|
||||||
|
await switchClient(1);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should convert from Html to Markdown', asyncTest(async () => {
|
||||||
|
const basePath = __dirname + '/html_to_md';
|
||||||
|
const files = await shim.fsDriver().readDirStats(basePath);
|
||||||
|
const htmlToMd = new HtmlToMd();
|
||||||
|
|
||||||
|
for (let i = 0; i < files.length; i++) {
|
||||||
|
const htmlFilename = files[i].path;
|
||||||
|
if (htmlFilename.indexOf('.html') < 0) continue;
|
||||||
|
|
||||||
|
const htmlPath = basePath + '/' + htmlFilename;
|
||||||
|
const mdPath = basePath + '/' + filename(htmlFilename) + '.md';
|
||||||
|
|
||||||
|
// if (htmlFilename !== 'picture.html') continue;
|
||||||
|
|
||||||
|
const html = await shim.fsDriver().readFile(htmlPath);
|
||||||
|
let expectedMd = await shim.fsDriver().readFile(mdPath);
|
||||||
|
|
||||||
|
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) {
|
||||||
|
console.info('');
|
||||||
|
console.info('Error converting file: ' + htmlFilename);
|
||||||
|
console.info('--------------------------------- Got:');
|
||||||
|
console.info(actualMd);
|
||||||
|
console.info('--------------------------------- Raw:');
|
||||||
|
console.info(actualMd.split('\n'));
|
||||||
|
console.info('--------------------------------- Expected:');
|
||||||
|
console.info(expectedMd.split('\n'));
|
||||||
|
console.info('--------------------------------------------');
|
||||||
|
console.info('');
|
||||||
|
|
||||||
|
expect(false).toBe(true);
|
||||||
|
// return;
|
||||||
|
} else {
|
||||||
|
expect(true).toBe(true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
});
|
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();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
@@ -25,8 +25,7 @@ describe('Encryption', function() {
|
|||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done) => {
|
||||||
await setupDatabaseAndSynchronizer(1);
|
await setupDatabaseAndSynchronizer(1);
|
||||||
//await setupDatabaseAndSynchronizer(2);
|
await switchClient(1);
|
||||||
//await switchClient(1);
|
|
||||||
service = new EncryptionService();
|
service = new EncryptionService();
|
||||||
BaseItem.encryptionService_ = service;
|
BaseItem.encryptionService_ = service;
|
||||||
Setting.setValue('encryption.enabled', true);
|
Setting.setValue('encryption.enabled', true);
|
||||||
|
16
CliClient/tests/enex_to_md/code1.html
Normal file
16
CliClient/tests/enex_to_md/code1.html
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
<div>
|
||||||
|
<p>For example, consider a web page like this:</p>
|
||||||
|
|
||||||
|
<pre class="brush: html line-numbers language-html"><code class=" language-html"><span class="token doctype"><!DOCTYPE html></span>
|
||||||
|
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span><span class="token punctuation">></span></span>
|
||||||
|
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>head</span><span class="token punctuation">></span></span>
|
||||||
|
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>meta</span> <span class="token attr-name">http-equiv</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>content-type<span class="token punctuation">"</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>text/html; charset<span class="token punctuation">=</span>utf-8<span class="token punctuation">"</span></span> <span class="token punctuation">/></span></span>
|
||||||
|
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>head</span><span class="token punctuation">></span></span>
|
||||||
|
|
||||||
|
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span>
|
||||||
|
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">src</span><span class="token attr-value"><span class="token punctuation">=</span><span class="token punctuation">"</span>page-scripts/page-script.js<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script language-javascript"></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span>
|
||||||
|
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span>
|
||||||
|
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span><span class="line-numbers-rows"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></span></code></pre>
|
||||||
|
|
||||||
|
<p>The script "page-script.js" does this:</p>
|
||||||
|
</div>
|
14
CliClient/tests/enex_to_md/code1.md
Normal file
14
CliClient/tests/enex_to_md/code1.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
For example, consider a web page like this:
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script src="page-scripts/page-script.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
|
||||||
|
The script "page-script.js" does this:
|
7
CliClient/tests/enex_to_md/code2.html
Normal file
7
CliClient/tests/enex_to_md/code2.html
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<p>Subshell:</p>
|
||||||
|
<pre><code>(
|
||||||
|
set -e
|
||||||
|
false
|
||||||
|
echo Unreachable
|
||||||
|
) && echo Great success
|
||||||
|
</code></pre>
|
7
CliClient/tests/enex_to_md/code2.md
Normal file
7
CliClient/tests/enex_to_md/code2.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
Subshell:
|
||||||
|
|
||||||
|
(
|
||||||
|
set -e
|
||||||
|
false
|
||||||
|
echo Unreachable
|
||||||
|
) && echo Great success
|
9
CliClient/tests/enex_to_md/heading.html
Normal file
9
CliClient/tests/enex_to_md/heading.html
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<div>
|
||||||
|
<div class="note">
|
||||||
|
<p>Values added to the global scope of a content script with</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h2 id="Loading_content_scripts">Loading content scripts</h2>
|
||||||
|
|
||||||
|
<p>You can load a content script into a web page in one of three ways:</p>
|
||||||
|
</div>
|
5
CliClient/tests/enex_to_md/heading.md
Normal file
5
CliClient/tests/enex_to_md/heading.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Values added to the global scope of a content script with
|
||||||
|
|
||||||
|
## Loading content scripts
|
||||||
|
|
||||||
|
You can load a content script into a web page in one of three ways:
|
3
CliClient/tests/enex_to_md/inlineCode.html
Normal file
3
CliClient/tests/enex_to_md/inlineCode.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<div>
|
||||||
|
<p>Similarly, I need another regex to match double newlines (<code>\n\n</code>) that are not part of a longer run of newline characters like <code>\n\n\n</code> or <code>\n\n\n\n\n\n</code> etc.</p>
|
||||||
|
</div>
|
1
CliClient/tests/enex_to_md/inlineCode.md
Normal file
1
CliClient/tests/enex_to_md/inlineCode.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Similarly, I need another regex to match double newlines (`\n\n`) that are not part of a longer run of newline characters like `\n\n\n` or `\n\n\n\n\n\n` etc.
|
3
CliClient/tests/enex_to_md/inlineCodeWithLink.html
Normal file
3
CliClient/tests/enex_to_md/inlineCodeWithLink.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<div>
|
||||||
|
<p>the <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnect">runtime.onConnect</a></code> listener gets passed its own <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port">runtime.Port</a></code> object.</p>
|
||||||
|
</div>
|
1
CliClient/tests/enex_to_md/inlineCodeWithLink.md
Normal file
1
CliClient/tests/enex_to_md/inlineCodeWithLink.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
the `[runtime.onConnect](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnect)` listener gets passed its own `[runtime.Port](/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port)` object.
|
4
CliClient/tests/enex_to_md/link1.html
Normal file
4
CliClient/tests/enex_to_md/link1.html
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<a href="https://arstechnica.com/civis/ucp.php?mode=login&return_to=%2Ftech-policy%2F2018%2F05%2Fjails-are-replacing-in-person-visits-with-video-calling-services-theyre-awful%2F" class="dropdown-toggle">
|
||||||
|
Sign in
|
||||||
|
<span class="icon dropdown-indicator icon-drop-indicator"></span>
|
||||||
|
</a>
|
1
CliClient/tests/enex_to_md/link1.md
Normal file
1
CliClient/tests/enex_to_md/link1.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[Sign in](https://arstechnica.com/civis/ucp.php?mode=login&return_to=%2Ftech-policy%2F2018%2F05%2Fjails-are-replacing-in-person-visits-with-video-calling-services-theyre-awful%2F)
|
17
CliClient/tests/enex_to_md/list.html
Normal file
17
CliClient/tests/enex_to_md/list.html
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<div>
|
||||||
|
<p>Liste de courses</p>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div><en-todo checked="true"/>Pizzas</div>
|
||||||
|
<div><en-todo checked="true"/>Pain</div>
|
||||||
|
<div><en-todo checked="true"/>Jambon</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div><br/></div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div><en-todo checked="true"/>On its own</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>End</p>
|
||||||
|
</div>
|
9
CliClient/tests/enex_to_md/list.md
Normal file
9
CliClient/tests/enex_to_md/list.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Liste de courses
|
||||||
|
|
||||||
|
- [X] Pizzas
|
||||||
|
- [X] Pain
|
||||||
|
- [X] Jambon
|
||||||
|
|
||||||
|
- [X] On its own
|
||||||
|
|
||||||
|
End
|
1
CliClient/tests/enex_to_md/list2.html
Normal file
1
CliClient/tests/enex_to_md/list2.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<ul class="find-me-on"><li><a href="https://github.com/zetter">Github</a></li><li><a href="https://twitter.com/czetter">Twitter</a></li><li><a href="http://lanyrd.com/profile/czetter/">Lanyrd</a></li></ul>
|
3
CliClient/tests/enex_to_md/list2.md
Normal file
3
CliClient/tests/enex_to_md/list2.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
- [Github](https://github.com/zetter)
|
||||||
|
- [Twitter](https://twitter.com/czetter)
|
||||||
|
- [Lanyrd](http://lanyrd.com/profile/czetter/)
|
1
CliClient/tests/enex_to_md/list3.html
Normal file
1
CliClient/tests/enex_to_md/list3.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<ul class="find-me-on"><li>Github</li><li>Twitter</li></ul>
|
2
CliClient/tests/enex_to_md/list3.md
Normal file
2
CliClient/tests/enex_to_md/list3.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
- Github
|
||||||
|
- Twitter
|
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
|
11
CliClient/tests/enex_to_md/paragraph.html
Normal file
11
CliClient/tests/enex_to_md/paragraph.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<div>
|
||||||
|
<p>Short paragraphs are merged together:</p>
|
||||||
|
<p>Something something</p>
|
||||||
|
<p>Blablbla blabla lbla</p>
|
||||||
|
<p>Last line</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<p>Longer ones are separated by new lines. In 1894 Joplin arrived in Sedalia, Missouri. At first, Joplin stayed with the family of Arthur Marshall, at the time a 13-year-old boy but later one of Joplin's students and a rag-time composer in his own right.[26] There is no record of Joplin having a permanent residence in the town until 1904, as Joplin was making a living as a touring musician.</p>
|
||||||
|
<p>There is little precise evidence known about Joplin's activities at this time, although he performed as a solo musician at dances and at the major black clubs in Sedalia, the Black 400 club and the Maple Leaf Club. He performed in the Queen City Cornet Band, and his own six-piece dance orchestra.</p>
|
||||||
|
</div>
|
8
CliClient/tests/enex_to_md/paragraph.md
Normal file
8
CliClient/tests/enex_to_md/paragraph.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
Short paragraphs are merged together:
|
||||||
|
Something something
|
||||||
|
Blablbla blabla lbla
|
||||||
|
Last line
|
||||||
|
|
||||||
|
Longer ones are separated by new lines. In 1894 Joplin arrived in Sedalia, Missouri. At first, Joplin stayed with the family of Arthur Marshall, at the time a 13-year-old boy but later one of Joplin's students and a rag-time composer in his own right.[26] There is no record of Joplin having a permanent residence in the town until 1904, as Joplin was making a living as a touring musician.
|
||||||
|
|
||||||
|
There is little precise evidence known about Joplin's activities at this time, although he performed as a solo musician at dances and at the major black clubs in Sedalia, the Black 400 club and the Maple Leaf Club. He performed in the Queen City Cornet Band, and his own six-piece dance orchestra.
|
12
CliClient/tests/enex_to_md/table1.html
Normal file
12
CliClient/tests/enex_to_md/table1.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div>$ sudo ethtool --set-priv-flags p2p1 mlx4_rss_xor_hash_function on</div>
|
||||||
|
<div># Three empty lines follow</div>
|
||||||
|
<div><br/></div>
|
||||||
|
<div><br/></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
Some text
|
5
CliClient/tests/enex_to_md/table1.md
Normal file
5
CliClient/tests/enex_to_md/table1.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
| |
|
||||||
|
| --- |
|
||||||
|
| $ sudo ethtool --set-priv-flags p2p1 mlx4_rss_xor_hash_function on<br># Three empty lines follow |
|
||||||
|
|
||||||
|
Some text
|
3
CliClient/tests/enex_to_md/tableWithNewLines.html
Normal file
3
CliClient/tests/enex_to_md/tableWithNewLines.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<div>
|
||||||
|
<table style="-evernote-table:true;border-collapse:collapse;width:100%;table-layout:fixed;margin-left:0px;"><tr><td style="border-style:solid;border-width:1px;border-color:rgb(211,211,211);padding:10px;margin:0px;width:50%;"><div>line 1</div><div>line 2</div></td><td style="border-style:solid;border-width:1px;border-color:rgb(211,211,211);padding:10px;margin:0px;width:50%;"><div><br/></div></td></tr><tr><td style="border-style:solid;border-width:1px;border-color:rgb(211,211,211);padding:10px;margin:0px;width:50%;"><div>aaaaaa</div></td><td style="border-style:solid;border-width:1px;border-color:rgb(211,211,211);padding:10px;margin:0px;width:50%;"><div>line 3</div><div>line 4</div></td></tr></table>
|
||||||
|
</div>
|
4
CliClient/tests/enex_to_md/tableWithNewLines.md
Normal file
4
CliClient/tests/enex_to_md/tableWithNewLines.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
| | |
|
||||||
|
| --- | --- |
|
||||||
|
| line 1<br>line 2 | |
|
||||||
|
| aaaaaa | line 3<br>line 4 |
|
1
CliClient/tests/html_to_md/anchor_with_inner_tags.html
Normal file
1
CliClient/tests/html_to_md/anchor_with_inner_tags.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<a href="https://joplinapp.org"><h1 id="joplin"><img class="title-icon" src="https://joplinapp.org/images/Icon512.png">oplin</h1></a>
|
1
CliClient/tests/html_to_md/anchor_with_inner_tags.md
Normal file
1
CliClient/tests/html_to_md/anchor_with_inner_tags.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[# oplin](https://joplinapp.org)
|
1
CliClient/tests/html_to_md/anchor_with_js.html
Normal file
1
CliClient/tests/html_to_md/anchor_with_js.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<a href="javascript:alert('js')">Some text</a>
|
1
CliClient/tests/html_to_md/anchor_with_js.md
Normal file
1
CliClient/tests/html_to_md/anchor_with_js.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[Some text]()
|
1
CliClient/tests/html_to_md/anchor_with_newlines.html
Normal file
1
CliClient/tests/html_to_md/anchor_with_newlines.html
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<a href="http://example.com"><p>That</p><p>Shouldn't be allowed</p></a>
|
1
CliClient/tests/html_to_md/anchor_with_newlines.md
Normal file
1
CliClient/tests/html_to_md/anchor_with_newlines.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[That<br>Shouldn't be allowed](http://example.com)
|
@@ -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)
|
8
CliClient/tests/html_to_md/code_1.html
Normal file
8
CliClient/tests/html_to_md/code_1.html
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<div>
|
||||||
|
<table><tbody><tr><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> ma_fonction<span style="color: black;">(</span><span style="color: black;">)</span>:
|
||||||
|
<span style="color: #483d8b;">"""
|
||||||
|
C'est une super fonction
|
||||||
|
"""</span>
|
||||||
|
<span style="color: #ff7700;font-weight:bold;">pass</span></pre></td></tr></tbody></table>
|
||||||
|
|
||||||
|
</div>
|
5
CliClient/tests/html_to_md/code_1.md
Normal file
5
CliClient/tests/html_to_md/code_1.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
def ma_fonction():
|
||||||
|
"""
|
||||||
|
C'est une super fonction
|
||||||
|
"""
|
||||||
|
pass
|
13
CliClient/tests/html_to_md/list_with_many_items.html
Normal file
13
CliClient/tests/html_to_md/list_with_many_items.html
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<!-- Make sure in particular that indentation is correct after the 9th item -->
|
||||||
|
<ol>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
<li><p>One</p><p>Two</p></li>
|
||||||
|
</ol>
|
39
CliClient/tests/html_to_md/list_with_many_items.md
Normal file
39
CliClient/tests/html_to_md/list_with_many_items.md
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
1. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
2. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
3. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
4. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
5. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
6. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
7. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
8. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
9. One
|
||||||
|
|
||||||
|
Two
|
||||||
|
|
||||||
|
10. One
|
||||||
|
|
||||||
|
Two
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user