forked from Archives/Athou_commafeed
Compare commits
636 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f361be0c72 | ||
|
|
1611dc5703 | ||
|
|
04faad84a4 | ||
|
|
19c42e5838 | ||
|
|
4918b69d0a | ||
|
|
c7cec464aa | ||
|
|
91857c4d73 | ||
|
|
fc6f9f4258 | ||
|
|
34f9f9374a | ||
|
|
0ae4c1621f | ||
|
|
c393f5c045 | ||
|
|
1624290dc1 | ||
|
|
c6491990ac | ||
|
|
15dea17923 | ||
|
|
689d5ac7b2 | ||
|
|
2142e20e7d | ||
|
|
dc23126570 | ||
|
|
55856f9060 | ||
|
|
c756ce5fc8 | ||
|
|
0546f25d55 | ||
|
|
7b33717333 | ||
|
|
6ea6d16e58 | ||
|
|
a9b65c83aa | ||
|
|
a497802b50 | ||
|
|
42b0428b9a | ||
|
|
931c553e1d | ||
|
|
f3c0b92a3c | ||
|
|
970cabf241 | ||
|
|
e321ecde5d | ||
|
|
32ac326a77 | ||
|
|
134dcd4466 | ||
|
|
26a44353d4 | ||
|
|
55acb3ef28 | ||
|
|
0e96307726 | ||
|
|
0199a36238 | ||
|
|
3f2f6e83fa | ||
|
|
4fa780cac2 | ||
|
|
edb0f655b0 | ||
|
|
651ada7073 | ||
|
|
efb5d49d04 | ||
|
|
f78cc18b06 | ||
|
|
8acffa11e5 | ||
|
|
f4246807ff | ||
|
|
abf6e7131b | ||
|
|
b2688520cc | ||
|
|
fad0aea108 | ||
|
|
0b63773c83 | ||
|
|
3ef28009ac | ||
|
|
8979e2b191 | ||
|
|
d6910aa1e8 | ||
|
|
afc56c6053 | ||
|
|
1bd504cbfb | ||
|
|
2c089ddb5e | ||
|
|
0b5245643a | ||
|
|
ae35d43f7f | ||
|
|
fe55682c9f | ||
|
|
0d3e6f17e2 | ||
|
|
d5659c4278 | ||
|
|
69b87b9026 | ||
|
|
168bcd3a37 | ||
|
|
e3b6be0cd0 | ||
|
|
eeceda0ca8 | ||
|
|
aa903039c8 | ||
|
|
73d81d0cdb | ||
|
|
01fe539af6 | ||
|
|
c08063ca57 | ||
|
|
60d4af2890 | ||
|
|
6378f074a8 | ||
|
|
5082ec86fd | ||
|
|
6cff5bb099 | ||
|
|
d54562d56f | ||
|
|
2b45a8fae5 | ||
|
|
8654df8994 | ||
|
|
4d5145c17e | ||
|
|
850921bca9 | ||
|
|
1dc6470419 | ||
|
|
b5c197f499 | ||
|
|
d417655a86 | ||
|
|
ebca9f8290 | ||
|
|
53b1f89b30 | ||
|
|
6885191877 | ||
|
|
e69d9fe8b8 | ||
|
|
d6a1f1ae15 | ||
|
|
a7813f4442 | ||
|
|
1e4664987a | ||
|
|
7a819f5d58 | ||
|
|
45ef56e9da | ||
|
|
f43c7aa5d0 | ||
|
|
8d88711e59 | ||
|
|
280c0b60e9 | ||
|
|
605f8f6615 | ||
|
|
0e88b4de1b | ||
|
|
b02aa923d7 | ||
|
|
680c927e1d | ||
|
|
4b2e65abdc | ||
|
|
e501bf6b05 | ||
|
|
80bf2582bd | ||
|
|
586da4424d | ||
|
|
8e0e8c2407 | ||
|
|
40461ac883 | ||
|
|
9288a7e66e | ||
|
|
275db4ec72 | ||
|
|
67b2f8968d | ||
|
|
45ce35dfdb | ||
|
|
52aa9ab2fe | ||
|
|
d24725bd55 | ||
|
|
f368a67dec | ||
|
|
564d1744e1 | ||
|
|
d091ecfa5f | ||
|
|
7d23165e14 | ||
|
|
a9ca3278c6 | ||
|
|
e8734710ca | ||
|
|
f8a0e20df9 | ||
|
|
de90e4de54 | ||
|
|
03cb27f69a | ||
|
|
f86f1dd770 | ||
|
|
ec21ffc571 | ||
|
|
c73c9c74ba | ||
|
|
fd3c264d0c | ||
|
|
3983ba6cd0 | ||
|
|
dc0b5bdd11 | ||
|
|
5b3728186e | ||
|
|
8b0936b678 | ||
|
|
b99e81a389 | ||
|
|
0b8fb0f9a7 | ||
|
|
7d5bbe0130 | ||
|
|
c6637c6814 | ||
|
|
e302a011bb | ||
|
|
25f8bdaa28 | ||
|
|
e7d1018cbc | ||
|
|
e81fa69a03 | ||
|
|
176e76ad2d | ||
|
|
0925a91089 | ||
|
|
c04d0b147c | ||
|
|
a349eff1a3 | ||
|
|
2ddeda9a27 | ||
|
|
00b0fe921f | ||
|
|
bcc6cdf4b1 | ||
|
|
ba46cc3cd6 | ||
|
|
ed1bf609b8 | ||
|
|
13262b678d | ||
|
|
cf9321de23 | ||
|
|
ac7a78bdc0 | ||
|
|
640d3f1f6e | ||
|
|
d716a8081c | ||
|
|
1cec4e68b1 | ||
|
|
9d16299c5b | ||
|
|
cb92b1969c | ||
|
|
55a62d393d | ||
|
|
027b2252db | ||
|
|
ccfb88ddcc | ||
|
|
dde0736fcf | ||
|
|
6498bb5ee6 | ||
|
|
d7ca2db330 | ||
|
|
99b32795a5 | ||
|
|
840f670d5d | ||
|
|
e3c0a4c665 | ||
|
|
915506527a | ||
|
|
7541251344 | ||
|
|
40c9b42b24 | ||
|
|
dfab678070 | ||
|
|
3d371d5942 | ||
|
|
9bfbaa8ded | ||
|
|
be0fc95c45 | ||
|
|
dcb6113eb7 | ||
|
|
55491651f6 | ||
|
|
c1d471ebdc | ||
|
|
069e675f19 | ||
|
|
d34f719a4f | ||
|
|
4eb932a3f0 | ||
|
|
1ab27f2626 | ||
|
|
7d3ce7e602 | ||
|
|
cf530b2c60 | ||
|
|
d9bcd7f592 | ||
|
|
8b854b5cda | ||
|
|
f7b6677bb1 | ||
|
|
0cc5e8f5b8 | ||
|
|
8d153e3b2b | ||
|
|
d15428971c | ||
|
|
f34c2aa437 | ||
|
|
9b3ff5f81f | ||
|
|
e1f6937802 | ||
|
|
0c0834b30f | ||
|
|
5ad4b97205 | ||
|
|
c4ec249bc4 | ||
|
|
cf8d3965d5 | ||
|
|
3903fd9374 | ||
|
|
77d59dabe8 | ||
|
|
56ca737297 | ||
|
|
9edb539be3 | ||
|
|
31a773d200 | ||
|
|
61355eabf7 | ||
|
|
569874e51f | ||
|
|
00d47901fc | ||
|
|
d8b4ef55ce | ||
|
|
da41a4cab9 | ||
|
|
8a90ef0471 | ||
|
|
b4ab32a578 | ||
|
|
03aa53abc8 | ||
|
|
2ae5c0cd8e | ||
|
|
cacc632443 | ||
|
|
28f865ccfa | ||
|
|
a4c949e8b3 | ||
|
|
6098994397 | ||
|
|
5763ca30d6 | ||
|
|
7d039d1001 | ||
|
|
7fe74af906 | ||
|
|
80b72aa30b | ||
|
|
3ba0d241f9 | ||
|
|
67428aa0c7 | ||
|
|
b9a0256031 | ||
|
|
f3c2296636 | ||
|
|
b6e8f21975 | ||
|
|
284f80045f | ||
|
|
f589477aa8 | ||
|
|
29cb296d09 | ||
|
|
86caa1450a | ||
|
|
9dd4b9e67f | ||
|
|
e2e654f05b | ||
|
|
72dbc62b41 | ||
|
|
0a21014668 | ||
|
|
b6d9d2a26c | ||
|
|
25c3a7748c | ||
|
|
b2bcfdd6eb | ||
|
|
2a978db406 | ||
|
|
9e40d0d066 | ||
|
|
c912650d59 | ||
|
|
464ebcb471 | ||
|
|
463e0e59d7 | ||
|
|
b4e5d8ef20 | ||
|
|
126905aeb3 | ||
|
|
1af10d3364 | ||
|
|
6ad854c019 | ||
|
|
b30117aa4d | ||
|
|
5a66482d1e | ||
|
|
2628ec49bb | ||
|
|
f3d15cf173 | ||
|
|
bbcf55ce57 | ||
|
|
72fc3716e7 | ||
|
|
81a6cfaa88 | ||
|
|
aed5165ef3 | ||
|
|
eaf2933726 | ||
|
|
39da4d9d36 | ||
|
|
e5ebd7ff39 | ||
|
|
b6ae3e4e1e | ||
|
|
32d1488352 | ||
|
|
b08d0a388f | ||
|
|
7fe004a696 | ||
|
|
f620d033b0 | ||
|
|
ba071ba71f | ||
|
|
6f3197302d | ||
|
|
131a8ebf68 | ||
|
|
8b24c125c2 | ||
|
|
52293376ec | ||
|
|
f8ac59af6a | ||
|
|
5c791e2305 | ||
|
|
6641bc0631 | ||
|
|
da690aa750 | ||
|
|
fb7f041454 | ||
|
|
ec4554c76e | ||
|
|
068e85fe6e | ||
|
|
ba926c674e | ||
|
|
836f8f14c0 | ||
|
|
eeecac96e1 | ||
|
|
ecc62f222a | ||
|
|
9022f93811 | ||
|
|
e7225d35b2 | ||
|
|
454fc03038 | ||
|
|
9c0674fd83 | ||
|
|
7a20482ddf | ||
|
|
32ad47ba16 | ||
|
|
fc562cce0f | ||
|
|
b029b251db | ||
|
|
e3e28e727f | ||
|
|
50cb728db7 | ||
|
|
c654ba4d1b | ||
|
|
846e29b15e | ||
|
|
f2b4062d73 | ||
|
|
9051e6a6db | ||
|
|
b733129043 | ||
|
|
d46b571444 | ||
|
|
7d744b4ce0 | ||
|
|
801dda912c | ||
|
|
a20005409a | ||
|
|
6f1411d075 | ||
|
|
1aa263a6c0 | ||
|
|
9d511ac7dd | ||
|
|
122e98cc76 | ||
|
|
e445e5ea39 | ||
|
|
5b9212015b | ||
|
|
293292f341 | ||
|
|
57d8a4dbb1 | ||
|
|
e104f531f9 | ||
|
|
bf1361926f | ||
|
|
cc4f4d9eb4 | ||
|
|
706bad26f1 | ||
|
|
4ecefe6491 | ||
|
|
937e7353ce | ||
|
|
1dcf76fc0a | ||
|
|
9d794dcad7 | ||
|
|
d11b666755 | ||
|
|
7a444e4861 | ||
|
|
5992795579 | ||
|
|
4441d76a7f | ||
|
|
c1305b56e3 | ||
|
|
cc0440c029 | ||
|
|
f65591c170 | ||
|
|
9a32dce9d1 | ||
|
|
789bd3edae | ||
|
|
256cd426d9 | ||
|
|
58af2da105 | ||
|
|
e0de397273 | ||
|
|
75cc3cf29c | ||
|
|
af60758e2a | ||
|
|
01180e95a2 | ||
|
|
fa683ef7e1 | ||
|
|
462d17a429 | ||
|
|
17f71a40d4 | ||
|
|
de91a3a05a | ||
|
|
ead587ee88 | ||
|
|
62b3e6fb3a | ||
|
|
037ff15045 | ||
|
|
ed35b06934 | ||
|
|
3cfb1a13a7 | ||
|
|
d04745d859 | ||
|
|
58b18f36c5 | ||
|
|
7282d18d8f | ||
|
|
8e58fa22b4 | ||
|
|
58d6eb2c5a | ||
|
|
2f7c7498e2 | ||
|
|
bcf8dcd551 | ||
|
|
511f0a60bb | ||
|
|
72db0d815f | ||
|
|
280d0b7fdd | ||
|
|
42e4575cb7 | ||
|
|
28a4bb403a | ||
|
|
cca3c907db | ||
|
|
1a5b932742 | ||
|
|
a1d3f3008a | ||
|
|
902f2efbd2 | ||
|
|
2e534af146 | ||
|
|
23ca30c3c2 | ||
|
|
517eedad00 | ||
|
|
216ea1fb42 | ||
|
|
640d1a0ce3 | ||
|
|
bba7425b5f | ||
|
|
7a1a49bfb4 | ||
|
|
e451e6698c | ||
|
|
9af3f21404 | ||
|
|
7b14a9c0c2 | ||
|
|
0b65cc9510 | ||
|
|
7879ab9b61 | ||
|
|
e6bebcafb3 | ||
|
|
3b465cebb7 | ||
|
|
aeb211be06 | ||
|
|
ad992aea7b | ||
|
|
d848f72a0b | ||
|
|
0db087908d | ||
|
|
42138d04d6 | ||
|
|
4522a9d0d5 | ||
|
|
7440fcad0e | ||
|
|
fc51c1882f | ||
|
|
e24498b31f | ||
|
|
60fdc79563 | ||
|
|
6729ebc6ea | ||
|
|
c8ff216ce5 | ||
|
|
98c4150cfe | ||
|
|
128332d710 | ||
|
|
eabcb519a4 | ||
|
|
5e14cead3d | ||
|
|
b601f938ff | ||
|
|
4acfda32d0 | ||
|
|
54da4e6839 | ||
|
|
3a6b4c588c | ||
|
|
48071b9fd1 | ||
|
|
f519aa039f | ||
|
|
dc3e5476a1 | ||
|
|
903035ecfc | ||
|
|
13ad57da10 | ||
|
|
44bc24c22a | ||
|
|
97f90405fc | ||
|
|
0fc2a0b022 | ||
|
|
89eb641704 | ||
|
|
c53da9f631 | ||
|
|
998868e63a | ||
|
|
93f22d2351 | ||
|
|
c3782bd7d2 | ||
|
|
f330349397 | ||
|
|
99c973c8c2 | ||
|
|
469420b5bf | ||
|
|
bde556d41f | ||
|
|
bf6c2d7beb | ||
|
|
fa62ca21e0 | ||
|
|
7dcf76da84 | ||
|
|
3dc80fa762 | ||
|
|
dbce12492b | ||
|
|
85f5eaffec | ||
|
|
106276351e | ||
|
|
961fb6a464 | ||
|
|
ac3d9ef57f | ||
|
|
3478ee4815 | ||
|
|
3dc02d7ba1 | ||
|
|
c886f8b83c | ||
|
|
4a2154d0b3 | ||
|
|
ba530d5019 | ||
|
|
85b6209c52 | ||
|
|
7ff86a5e31 | ||
|
|
8edd6a1e2d | ||
|
|
6e65ed49e9 | ||
|
|
711b01abfa | ||
|
|
c7014ca2a1 | ||
|
|
a3984cd959 | ||
|
|
8d85b1bcba | ||
|
|
c451eee406 | ||
|
|
8f42135996 | ||
|
|
2c26aeed17 | ||
|
|
e2c4aa998b | ||
|
|
c9e3b7f349 | ||
|
|
ebb4e52ba7 | ||
|
|
1ddfdfb12e | ||
|
|
81f16aea62 | ||
|
|
429ec193c8 | ||
|
|
732b714448 | ||
|
|
82e0405ad9 | ||
|
|
9ef002fcd1 | ||
|
|
ec938e416c | ||
|
|
37cf711cbc | ||
|
|
de441e4ff7 | ||
|
|
46251526b6 | ||
|
|
67eeea0b06 | ||
|
|
b49ccc4cd9 | ||
|
|
8586a8b57b | ||
|
|
d9f63786a8 | ||
|
|
8f0c8b68b9 | ||
|
|
15e574c5c4 | ||
|
|
fe532242b4 | ||
|
|
fb48ff0858 | ||
|
|
8d850639d7 | ||
|
|
ee73195915 | ||
|
|
72d9dad61b | ||
|
|
fde8dab8cd | ||
|
|
dae5efa787 | ||
|
|
3c067140fd | ||
|
|
4ccbe81e87 | ||
|
|
3d5d93bb72 | ||
|
|
4138b6eb9b | ||
|
|
9c39c95a9b | ||
|
|
32b2bf99a4 | ||
|
|
cf459876af | ||
|
|
6698bd74b5 | ||
|
|
c81d06e5f3 | ||
|
|
b12a78dc84 | ||
|
|
b076587e44 | ||
|
|
bb12f16bea | ||
|
|
e80caadd12 | ||
|
|
846d93f2b2 | ||
|
|
0ed6f6ef9c | ||
|
|
15992dcb80 | ||
|
|
1a5c399b54 | ||
|
|
5e92f9ffb8 | ||
|
|
71164d1b69 | ||
|
|
6947670fe6 | ||
|
|
30810e37b9 | ||
|
|
b17b2767b0 | ||
|
|
d37cf5bbcf | ||
|
|
045baba705 | ||
|
|
3623dc8e1d | ||
|
|
2610c37067 | ||
|
|
286b69a646 | ||
|
|
9673f27090 | ||
|
|
0722599f6d | ||
|
|
1df40d8370 | ||
|
|
457e4ec69e | ||
|
|
647310a45f | ||
|
|
e85c92f216 | ||
|
|
d93b0dbfd4 | ||
|
|
b4e61ef547 | ||
|
|
71dffbba46 | ||
|
|
2c0b0c4e3b | ||
|
|
d868e58e1e | ||
|
|
90eb2095bf | ||
|
|
62d3ed16e6 | ||
|
|
74f7c48818 | ||
|
|
23fe9c29ed | ||
|
|
8f7be8278a | ||
|
|
49118b6ea0 | ||
|
|
d97bd04ae2 | ||
|
|
8d11309b64 | ||
|
|
68c24e4cb8 | ||
|
|
4e43e0235f | ||
|
|
62b79a9625 | ||
|
|
cb0706808c | ||
|
|
ffd5704b1e | ||
|
|
3987077e5a | ||
|
|
2e01a76784 | ||
|
|
8254093f5f | ||
|
|
0b06526756 | ||
|
|
06731ae76d | ||
|
|
9a59453792 | ||
|
|
c195a52c89 | ||
|
|
3d7924f953 | ||
|
|
f29efd7fae | ||
|
|
157bff3c83 | ||
|
|
5c17bbc36d | ||
|
|
c85e72e70c | ||
|
|
01150f67e1 | ||
|
|
75aca7aa6f | ||
|
|
affde7e43c | ||
|
|
b9b1b53235 | ||
|
|
708ebb8abc | ||
|
|
83e763df0a | ||
|
|
0ff812c1ea | ||
|
|
3e9dd6d8e2 | ||
|
|
23af73e847 | ||
|
|
e79e4719fd | ||
|
|
23fef98432 | ||
|
|
22478252e7 | ||
|
|
76b1f3cd35 | ||
|
|
420d73ec6a | ||
|
|
e0211cfa0c | ||
|
|
25a92c651c | ||
|
|
0781205c69 | ||
|
|
5102dd5e30 | ||
|
|
6ccfc3fd67 | ||
|
|
2791ed91ab | ||
|
|
f40c198233 | ||
|
|
003dc63121 | ||
|
|
f8ef1e2a99 | ||
|
|
14c7078940 | ||
|
|
074836d3e8 | ||
|
|
0cdbc144b3 | ||
|
|
dc63ec24c0 | ||
|
|
6d4c6c36a5 | ||
|
|
464af5f4d9 | ||
|
|
aa94a46a3d | ||
|
|
8542197dc3 | ||
|
|
64d77eaef4 | ||
|
|
675ef8794c | ||
|
|
4bcdbeb516 | ||
|
|
a9f37739fb | ||
|
|
5ab0fc19da | ||
|
|
7b232425f3 | ||
|
|
c0e7668140 | ||
|
|
ae3f059257 | ||
|
|
d44c7c1e95 | ||
|
|
6cd9d134cf | ||
|
|
6f21ba8afc | ||
|
|
b2fe13c117 | ||
|
|
03ece7a262 | ||
|
|
697fde2d0e | ||
|
|
7f0f85b356 | ||
|
|
a7d41debfe | ||
|
|
57bf758108 | ||
|
|
b37d933047 | ||
|
|
80ffef4555 | ||
|
|
af5a0002aa | ||
|
|
cd24e412e3 | ||
|
|
a073d843ab | ||
|
|
8ccb59ed18 | ||
|
|
e6dc7d2d0d | ||
|
|
f7b21ca3f6 | ||
|
|
df3a1bcdb6 | ||
|
|
5bec494a7c | ||
|
|
d8eef4dd9f | ||
|
|
d80138caf3 | ||
|
|
d26c103aa5 | ||
|
|
249231f57e | ||
|
|
7a838cddad | ||
|
|
477f2cd6db | ||
|
|
9915f05f73 | ||
|
|
0a16bb2fba | ||
|
|
3d4faf2406 | ||
|
|
63de6fe833 | ||
|
|
9c6219a58a | ||
|
|
3e664d4287 | ||
|
|
4c4ffd84f3 | ||
|
|
f555f0e392 | ||
|
|
124166738b | ||
|
|
8b32dcc576 | ||
|
|
105651215a | ||
|
|
d9c6cbd072 | ||
|
|
b4c52e06fe | ||
|
|
2565dfe528 | ||
|
|
b5036c9148 | ||
|
|
e2c8ddb8f7 | ||
|
|
85fbd284fa | ||
|
|
559fb69a64 | ||
|
|
054c76716a | ||
|
|
ba17c9350f | ||
|
|
781015eea4 | ||
|
|
13e5c0e8d2 | ||
|
|
4d88a30848 | ||
|
|
19c03de9e4 | ||
|
|
e3169c9f2d | ||
|
|
e90fb0b56f | ||
|
|
69607a5122 | ||
|
|
21eb8e6d9f | ||
|
|
a28a6b9dc4 | ||
|
|
a9cadbafeb | ||
|
|
d491af5a8d | ||
|
|
39c7934fb8 | ||
|
|
76eba8cc63 | ||
|
|
7549ff2491 | ||
|
|
66cd18bc4b | ||
|
|
44d7a2c340 | ||
|
|
d6ee63a01f | ||
|
|
a495c9cacd | ||
|
|
530185d15c | ||
|
|
8dd28c25a7 | ||
|
|
50884b236c | ||
|
|
da9fe09e58 | ||
|
|
3c24c9aa7a | ||
|
|
9d10a4b46f | ||
|
|
d56ed3bd06 | ||
|
|
41c1c429d0 | ||
|
|
1a3d890b40 | ||
|
|
e3ec9b2ccd | ||
|
|
f69878a242 | ||
|
|
ea766706fb | ||
|
|
306507af80 | ||
|
|
67084783b2 | ||
|
|
7cbb75f717 | ||
|
|
1c335492d5 | ||
|
|
de92e74c8e | ||
|
|
9cbbd30618 | ||
|
|
f14f1493c4 | ||
|
|
e68c8fdbe1 | ||
|
|
e094972aa2 | ||
|
|
ff831c6d2b | ||
|
|
9957cda11a | ||
|
|
6809822000 | ||
|
|
8048b1a9aa | ||
|
|
8557bd018a | ||
|
|
183d5fd162 | ||
|
|
411f86fbeb | ||
|
|
5493046f25 |
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
* text eol=lf
|
||||
*.cmd text eol=crlf
|
||||
*.png binary
|
||||
36
.github/stale.yml
vendored
36
.github/stale.yml
vendored
@@ -1,19 +1,19 @@
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 60
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 7
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- pinned
|
||||
- security
|
||||
- enhancement
|
||||
- bug
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: wontfix
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
# Number of days of inactivity before an issue becomes stale
|
||||
daysUntilStale: 60
|
||||
# Number of days of inactivity before a stale issue is closed
|
||||
daysUntilClose: 7
|
||||
# Issues with these labels will never be considered stale
|
||||
exemptLabels:
|
||||
- pinned
|
||||
- security
|
||||
- enhancement
|
||||
- bug
|
||||
# Label to use when marking an issue as stale
|
||||
staleLabel: wontfix
|
||||
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||
markComment: >
|
||||
This issue has been automatically marked as stale because it has not had
|
||||
recent activity. It will be closed if no further activity occurs. Thank you
|
||||
for your contributions.
|
||||
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||
closeComment: false
|
||||
461
.github/workflows/ci.yml
vendored
461
.github/workflows/ci.yml
vendored
@@ -1,183 +1,278 @@
|
||||
name: ci
|
||||
|
||||
on: [ push ]
|
||||
|
||||
env:
|
||||
JAVA_VERSION: 21
|
||||
DOCKER_BUILD_SUMMARY: false
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
database: [ "h2", "postgresql", "mysql", "mariadb" ]
|
||||
|
||||
steps:
|
||||
# Checkout
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# Setup
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Set up GraalVM
|
||||
uses: graalvm/setup-graalvm@v1
|
||||
with:
|
||||
java-version: ${{ env.JAVA_VERSION }}
|
||||
distribution: "graalvm"
|
||||
cache: "maven"
|
||||
|
||||
# Build & Test
|
||||
- name: Build with Maven
|
||||
run: mvn --batch-mode --no-transfer-progress install -Pnative -P${{ matrix.database }}
|
||||
|
||||
# Upload artifacts
|
||||
- name: Upload cross-platform app
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: commafeed-${{ matrix.database }}-jvm
|
||||
path: commafeed-server/target/commafeed-*.zip
|
||||
|
||||
- name: Upload native executable
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }}
|
||||
path: commafeed-server/target/commafeed-*-runner
|
||||
|
||||
# Docker
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@v3
|
||||
if: ${{ github.ref_type == 'tag' || github.ref_name == 'master' }}
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
## tags
|
||||
- name: Docker build and push tag - native
|
||||
uses: docker/build-push-action@v6
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.native
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: |
|
||||
athou/commafeed:latest-${{ matrix.database }}
|
||||
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}
|
||||
|
||||
- name: Docker build and push tag - jvm
|
||||
uses: docker/build-push-action@v6
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.jvm
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
tags: |
|
||||
athou/commafeed:latest-${{ matrix.database }}-jvm
|
||||
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}-jvm
|
||||
|
||||
## master
|
||||
- name: Docker build and push master - native
|
||||
uses: docker/build-push-action@v6
|
||||
if: ${{ github.ref_name == 'master' }}
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.native
|
||||
push: true
|
||||
platforms: linux/amd64
|
||||
tags: athou/commafeed:master-${{ matrix.database }}
|
||||
|
||||
- name: Docker build and push master - jvm
|
||||
uses: docker/build-push-action@v6
|
||||
if: ${{ github.ref_name == 'master' }}
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.jvm
|
||||
push: true
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
tags: athou/commafeed:master-${{ matrix.database }}-jvm
|
||||
|
||||
build-windows:
|
||||
runs-on: windows-latest
|
||||
strategy:
|
||||
matrix:
|
||||
database: [ "h2", "postgresql", "mysql", "mariadb" ]
|
||||
|
||||
steps:
|
||||
# Checkout
|
||||
- name: Configure git to checkout as-is
|
||||
run: git config --global core.autocrlf false
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# Setup
|
||||
- name: Set up GraalVM
|
||||
uses: graalvm/setup-graalvm@v1
|
||||
with:
|
||||
java-version: ${{ env.JAVA_VERSION }}
|
||||
distribution: "graalvm"
|
||||
cache: "maven"
|
||||
|
||||
# Build & Test
|
||||
- name: Build with Maven
|
||||
run: mvn --batch-mode --no-transfer-progress install -Pnative -P${{ matrix.database }} -DskipTests=${{ matrix.database != 'h2' }}
|
||||
|
||||
# Upload artifacts
|
||||
- name: Upload native executable
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }}
|
||||
path: commafeed-server/target/commafeed-*-runner.exe
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build-linux
|
||||
- build-windows
|
||||
if: github.ref_type == 'tag'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
pattern: commafeed-*
|
||||
path: ./artifacts
|
||||
merge-multiple: true
|
||||
|
||||
- name: Extract Changelog Entry
|
||||
uses: mindsers/changelog-reader-action@v2
|
||||
id: changelog_reader
|
||||
with:
|
||||
version: ${{ github.ref_name }}
|
||||
|
||||
- name: Create GitHub release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
name: CommaFeed ${{ github.ref_name }}
|
||||
body: ${{ steps.changelog_reader.outputs.changes }}
|
||||
artifacts: ./artifacts/*
|
||||
|
||||
- name: Update Docker Hub Description
|
||||
uses: peter-evans/dockerhub-description@v4
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
repository: athou/commafeed
|
||||
short-description: ${{ github.event.repository.description }}
|
||||
readme-filepath: commafeed-server/src/main/docker/README.md
|
||||
name: ci
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
JAVA_VERSION: 21
|
||||
DOCKER_BUILD_SUMMARY: false
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: github.event_name != 'pull_request' || github.actor != 'renovate[bot]' # renovate already triggers the build on pushes
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ "ubuntu-latest", "ubuntu-22.04-arm", "windows-latest" ]
|
||||
database: [ "h2", "postgresql", "mysql", "mariadb" ]
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
# Checkout
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# Setup
|
||||
- name: Set up GraalVM
|
||||
uses: graalvm/setup-graalvm@01ed653ac833fe80569f1ef9f25585ba2811baab # v1
|
||||
with:
|
||||
java-version: ${{ env.JAVA_VERSION }}
|
||||
distribution: "graalvm"
|
||||
cache: "maven"
|
||||
|
||||
- name: Install Playwright dependencies
|
||||
run: sudo apt-get install -y libgbm1
|
||||
if: matrix.os != 'windows-latest'
|
||||
|
||||
# Build & Test
|
||||
- name: Build with Maven
|
||||
run: mvn --batch-mode --no-transfer-progress install -Pnative -P${{ matrix.database }} -DskipTests=${{ matrix.os == 'windows-latest' && matrix.database != 'h2' }}
|
||||
|
||||
# Build pages
|
||||
- name: Create pages directory structure
|
||||
run: mkdir -p target/pages/documentation/custom-css
|
||||
|
||||
- name: Convert readme file to html
|
||||
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
|
||||
with:
|
||||
source: README.md
|
||||
output: target/pages/index.html
|
||||
|
||||
- name: Convert config documentation to html
|
||||
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
|
||||
with:
|
||||
source: commafeed-server/target/quarkus-generated-doc/config/commafeed-server.md
|
||||
output: target/pages/documentation/index.html
|
||||
|
||||
- name: Convert custom css documentation to html
|
||||
uses: jaywcjlove/markdown-to-html-cli@d2c8ffd676de1801e2586904bc540a938e4bc480 # v5.0.3
|
||||
with:
|
||||
source: documentation/CUSTOMCSS.md
|
||||
output: target/pages/documentation/custom-css/index.html
|
||||
|
||||
# Upload artifacts
|
||||
- name: Upload cross-platform app
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
||||
if: matrix.os == 'ubuntu-latest' # we only need to upload the cross-platform artifact once per database
|
||||
with:
|
||||
name: commafeed-${{ matrix.database }}-jvm
|
||||
path: commafeed-server/target/commafeed-*.zip
|
||||
|
||||
- name: Upload native executable
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
|
||||
with:
|
||||
name: commafeed-${{ matrix.database }}-${{ runner.os }}-${{ runner.arch }}
|
||||
path: commafeed-server/target/commafeed-*-runner*
|
||||
|
||||
- name: Upload pages
|
||||
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
|
||||
if: matrix.os == 'ubuntu-latest' && matrix.database == 'h2' # we only need to upload the pages once
|
||||
with:
|
||||
path: target/pages
|
||||
|
||||
docker:
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
env:
|
||||
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
database: [ "h2", "postgresql", "mysql", "mariadb" ]
|
||||
|
||||
steps:
|
||||
# Checkout
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
# Setup
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3
|
||||
|
||||
- name: Install required packages
|
||||
run: sudo apt-get install -y rename unzip
|
||||
|
||||
# Prepare artifacts
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
|
||||
with:
|
||||
pattern: commafeed-${{ matrix.database }}-*
|
||||
path: ./artifacts
|
||||
merge-multiple: true
|
||||
|
||||
- name: Set the exec flag on the native executables
|
||||
run: chmod +x artifacts/*-runner
|
||||
|
||||
- name: Rename native executables to match buildx TARGETARCH
|
||||
run: |
|
||||
rename 's/x86_64/amd64/g' artifacts/*
|
||||
rename 's/aarch_64/arm64/g' artifacts/*
|
||||
|
||||
- name: Unzip jvm package
|
||||
run: |
|
||||
unzip artifacts/*-jvm.zip -d artifacts/extracted-jvm-package
|
||||
rename 's/commafeed-.*/quarkus-app/g' artifacts/extracted-jvm-package/*
|
||||
|
||||
# Docker
|
||||
- name: Login to Container Registry
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3
|
||||
if: ${{ env.DOCKERHUB_USERNAME != '' }}
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
## build but don't push for PRs and renovate
|
||||
- name: Docker build - native
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.native
|
||||
push: false
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
|
||||
- name: Docker build - jvm
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.jvm
|
||||
push: false
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
|
||||
## build and push tag
|
||||
- name: Docker build and push tag - native
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.native
|
||||
push: ${{ env.DOCKERHUB_USERNAME != '' }}
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
tags: |
|
||||
athou/commafeed:latest-${{ matrix.database }}
|
||||
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}
|
||||
|
||||
- name: Docker build and push tag - jvm
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
||||
if: ${{ github.ref_type == 'tag' }}
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.jvm
|
||||
push: ${{ env.DOCKERHUB_USERNAME != '' }}
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
tags: |
|
||||
athou/commafeed:latest-${{ matrix.database }}-jvm
|
||||
athou/commafeed:${{ github.ref_name }}-${{ matrix.database }}-jvm
|
||||
|
||||
## build and push master
|
||||
- name: Docker build and push master - native
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
||||
if: ${{ github.ref_name == 'master' }}
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.native
|
||||
push: ${{ env.DOCKERHUB_USERNAME != '' }}
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
tags: athou/commafeed:master-${{ matrix.database }}
|
||||
|
||||
- name: Docker build and push master - jvm
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6
|
||||
if: ${{ github.ref_name == 'master' }}
|
||||
with:
|
||||
context: .
|
||||
file: commafeed-server/src/main/docker/Dockerfile.jvm
|
||||
push: ${{ env.DOCKERHUB_USERNAME != '' }}
|
||||
platforms: linux/amd64,linux/arm64/v8
|
||||
tags: athou/commafeed:master-${{ matrix.database }}-jvm
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build
|
||||
- docker
|
||||
permissions:
|
||||
contents: write
|
||||
if: github.ref_type == 'tag'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4
|
||||
with:
|
||||
pattern: commafeed-*
|
||||
path: ./artifacts
|
||||
merge-multiple: true
|
||||
|
||||
- name: Set the exec flag on the native executables
|
||||
run: chmod +x artifacts/*-runner
|
||||
|
||||
- name: Extract Changelog Entry
|
||||
uses: mindsers/changelog-reader-action@32aa5b4c155d76c94e4ec883a223c947b2f02656 # v2
|
||||
id: changelog_reader
|
||||
with:
|
||||
version: ${{ github.ref_name }}
|
||||
|
||||
- name: Create GitHub release
|
||||
uses: ncipollo/release-action@440c8c1cb0ed28b9f43e4d1d670870f059653174 # v1
|
||||
with:
|
||||
name: CommaFeed ${{ github.ref_name }}
|
||||
body: ${{ steps.changelog_reader.outputs.changes }}
|
||||
artifacts: ./artifacts/*
|
||||
|
||||
|
||||
update-dockerhub-description:
|
||||
runs-on: ubuntu-latest
|
||||
needs: release
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Update Docker Hub Description
|
||||
uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
repository: athou/commafeed
|
||||
short-description: ${{ github.event.repository.description }}
|
||||
readme-filepath: commafeed-server/src/main/docker/README.md
|
||||
|
||||
|
||||
deploy-pages:
|
||||
runs-on: ubuntu-latest
|
||||
needs: release
|
||||
permissions:
|
||||
pages: write
|
||||
id-token: write
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
|
||||
steps:
|
||||
- uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
|
||||
id: deployment
|
||||
|
||||
36
.mvn/wrapper/maven-wrapper.properties
vendored
36
.mvn/wrapper/maven-wrapper.properties
vendored
@@ -1,18 +1,18 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
distributionType=only-script
|
||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
distributionType=only-script
|
||||
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
|
||||
|
||||
929
CHANGELOG.md
929
CHANGELOG.md
@@ -1,432 +1,497 @@
|
||||
# Changelog
|
||||
|
||||
## [5.3.4]
|
||||
|
||||
- Added support for Internationalized Domain Names (#1588)
|
||||
|
||||
## [5.3.3]
|
||||
|
||||
- Removed image bottom margins (#1587)
|
||||
|
||||
## [5.3.2]
|
||||
|
||||
- Fixed an issue that could cause some images from not being rendered correctly (#1587)
|
||||
|
||||
## [5.3.1]
|
||||
|
||||
- Fixed an issue that could cause some HTTP feeds to return a 400 error (#1572)
|
||||
|
||||
## [5.3.0]
|
||||
|
||||
- Added a setting to set a cooldown on the "fetch all my feeds" action, disabled by default (#1556)
|
||||
- Fixed an issue that could cause entries to not correctly load when using the "next" header button (#1557)
|
||||
|
||||
## [5.2.0]
|
||||
|
||||
- Added an option to keep a number of entries above the selected entry when scrolling
|
||||
- Added a cache to the HTTP client to reduce the number of requests made to feeds when subscribing (#1431)
|
||||
- Feeds are no longer refreshed between the moment its last user unsubscribes and the moment the feed is cleaned up (every hour)
|
||||
- Fixed an issue that could cause entries to not correctly load when using keyboard navigation (#1557)
|
||||
|
||||
## [5.1.1]
|
||||
|
||||
- Fixed database migration issue when upgrading from 5.0.0 to 5.1.0 on MariaDB (#1544)
|
||||
- When feeds without unread entries are hidden from the tree, the feed is displayed in the tree until another one is selected (#1543)
|
||||
|
||||
## [5.1.0]
|
||||
|
||||
- Added a setting for showing/hiding unread count in the browser's tab title/favicon (#1518)
|
||||
- Fixed an issue that could prevent the app from starting on some systems (#1532)
|
||||
- Added a cache busting filter for the webapp index.html and openapi documentation to make sure they are always up to date
|
||||
- Reduced database cleanup log verbosity
|
||||
|
||||
## [5.0.2]
|
||||
|
||||
- Fix favicon fetching for Youtube channels in native mode when Google auth key is set
|
||||
- Fix an error that appears in the logs when fetching some favicons
|
||||
|
||||
## [5.0.1]
|
||||
|
||||
- Configure native compilation to support older CPU architectures (#1524)
|
||||
|
||||
## [5.0.0]
|
||||
|
||||
CommaFeed is now powered by Quarkus instead of Dropwizard. Read the rationale behind this change in
|
||||
the [announcement](https://github.com/Athou/commafeed/discussions/1517).
|
||||
The gist of it is that CommaFeed can now be compiled to a native binary, resulting in blazing fast startup times (around
|
||||
0.3s) and very low memory footprint (< 50M).
|
||||
|
||||
- CommaFeed now has a different package for each supported database.
|
||||
- If you are deploying CommaFeed with a precompiled package, please
|
||||
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#download-a-precompiled-package).
|
||||
- If you are building CommaFeed from sources, please
|
||||
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#build-from-sources).
|
||||
- If you are using the Docker image, please read the instructions on
|
||||
the [Docker Hub page](https://hub.docker.com/r/athou/commafeed).
|
||||
- Due to the switch to Quarkus, the way CommaFeed is configured is very different (the `config.yml` file is gone).
|
||||
Please
|
||||
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#configuration).
|
||||
Note that a lot of configuration elements have been removed or renamed and are now nested/grouped by feature.
|
||||
- Added a setting to prevent parsing large feeds to avoid out of memory errors. The default is 5MB.
|
||||
- Use a different icon for filtering unread entries and marking an entry as read (#1506)
|
||||
- Added various HTML attributes to ease custom JS/CSS customization (#1507)
|
||||
- The Redis cache has been removed. There have been multiple enhancements to the feed refresh engine and it is no longer
|
||||
needed, even for instances with a large number of feeds.
|
||||
- The H2 migration tool that automatically upgrades H2 databases from format 2 to 3 has been removed. If you're using
|
||||
the H2 embedded database, please upgrade to at least version 4.3.0 before upgrading to CommaFeed 5.0.0.
|
||||
|
||||
## [4.6.0]
|
||||
|
||||
- switched from Temurin to OpenJ9 as the JVM used in the Docker image, resulting in memory usage reduction by up to 50%
|
||||
- fix an issue that could cause old entries to reappear if they were updated by their author (#1486)
|
||||
- show all entries regardless of their read status when searching with keywords, even if the ui is configured to show
|
||||
unread entries only
|
||||
|
||||
## [4.5.0]
|
||||
|
||||
- significantly reduce the time needed to retrieve entries or mark them as read, especially when there are a lot of
|
||||
entries (#1452)
|
||||
- fix a race condition where a feed could be refreshed before it was created in the database
|
||||
- fix an issue that could cause the websocket notification to contain the wrong number of unread entries when using
|
||||
mysql/mariadb
|
||||
- fix an error when trying to mark all starred entries as read
|
||||
- remove the `onlyIds` parameter from REST endpoints since retrieving all the entries is now just as fast
|
||||
- remove support for microsoft sqlserver because it's not covered with integration tests (please open an issue if you'd
|
||||
like it back)
|
||||
|
||||
## [4.4.1]
|
||||
|
||||
- fix vertical scrolling issues with Safari (#1168)
|
||||
- the default value for new users for the "star entry" button and the "open in new tab" button in the entry headers is
|
||||
now "on desktop" instead of "always"
|
||||
- the "keyboard shortcuts" help page now shows "Cmd" instead of "Ctrl" on macOS (#1389)
|
||||
- remove a superfluous feed fetch when subscribing to a feed (#1431)
|
||||
- the Docker image now uses Java 21
|
||||
|
||||
## [4.4.0]
|
||||
|
||||
- add support for sharing using the browser native capabilities if available (#1255)
|
||||
- add a button in the entry headers to star an entry (#1025)
|
||||
- add a button in the entry headers to open links in a new tab (#1333)
|
||||
- add two options in the settings to toggle those buttons
|
||||
- accept .opml file extension when importing and export with the .opml extension
|
||||
- the "mark as read" option is no longer shown in the context menu for entries that are too old to be marked as read (
|
||||
older than `keepStatusDays`) (#1303)
|
||||
|
||||
## [4.3.3]
|
||||
|
||||
- fix OPML import (#1279)
|
||||
|
||||
## [4.3.2]
|
||||
|
||||
- added support for unix sockets (#1278)
|
||||
|
||||
## [4.3.1]
|
||||
|
||||
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database and the database
|
||||
timezone is not UTC (#1239)
|
||||
- videos in enclosures can no longer have a width larger than the page (#1240)
|
||||
|
||||
## [4.3.0]
|
||||
|
||||
- h2 (the embedded database) has been upgraded to 2.2.224
|
||||
- this version uses a different file format than 2.1.x, the first time you start CommaFeed with this version, the
|
||||
database will be automatically converted to the new format
|
||||
- add a setting to completely disable scrolling to selected entry (#1157)
|
||||
- add a css class reflecting the current view mode to ease custom css rules (#1232)
|
||||
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database (#1239)
|
||||
|
||||
## [4.2.1]
|
||||
|
||||
- fix an issue that caused the tree to show an incorrect unread count after a websocket notification because entries
|
||||
that were already marked as read by a filtering expression were not ignored (#1191)
|
||||
|
||||
## [4.2.0]
|
||||
|
||||
- add a setting to display the action buttons in the footer instead of in the header on mobile (#1121)
|
||||
- the websocket notification now contains everything needed to update the UI, the client no longer needs to make an API
|
||||
call to get the latest data when receiving the notification
|
||||
- add a workaround to the Fever API for the Unread iOS app (#1188)
|
||||
- fix an issue that caused dates to be saved incorrectly if the database server and the application server were in
|
||||
different timezones (#1187)
|
||||
|
||||
## [4.1.0]
|
||||
|
||||
- it is now possible to open the sidebar on mobile by swiping to the right (#1098)
|
||||
- swiping to mark entries as read/unread changed from swiping right to left because swiping right now opens the sidebar
|
||||
- the full hierarchy of categories are now displayed in the category dropdown (#1045)
|
||||
- added a setting `maxEntriesAgeDays` to delete old entries based on their age during database cleanup.
|
||||
The setting is disabled by default for existing installations, except for the docker image where it is enabled and set
|
||||
to 365 days
|
||||
- if user registrations are disabled on your instance which is the default behavior, users are redirected on the login
|
||||
page instead of the welcome page when not logged in (#1185)
|
||||
- the sidebar resizer is no longer shown in the middle of the screen on mobile
|
||||
- when using the system color scheme and the system is using a dark theme, feed entries no longer flicker on load
|
||||
- the demo account (if enabled) cannot register custom javascript code anymore
|
||||
- removed the usage of `toSorted` in the client because older browsers do not support it (#1183)
|
||||
- the openapi documentation is no longer cached by the browser so you always have access to the latest version
|
||||
- added a memory management section to the readme, reading it is recommended if you are running CommaFeed on a server
|
||||
with limited memory
|
||||
- fixed an issue that caused users without an email address set to be unable to edit their profile (#1184)
|
||||
|
||||
## [4.0.0]
|
||||
|
||||
- migrated from dropwizard 2 to dropwizard 4, Java 17+ is now required
|
||||
- entries that were fetched and inserted in the database but not yet shown in the UI are no longer marked as read when
|
||||
marking all entries as read
|
||||
- your custom sidebar width is now persisted in the local storage of your browser
|
||||
- there is now a third color scheme option in addition to light and dark: system (follows the system color scheme)
|
||||
- added support for youtube playlist favicons
|
||||
- custom JS code is now executed when the app is done loading instead of when the page is loaded
|
||||
- the favicon is now correctly returned for feeds that return an invalid content type
|
||||
- the feed refresh engine now uses httpclient5 with connection pooling and no longer creates a new client for each
|
||||
request, reducing CPU usage
|
||||
- updated UI library Mantine to 7.0, improving performance
|
||||
- the h2 embedded database is now compacted on shutdown to reclaim unused space
|
||||
- the admin connector on port 8084 is now disabled in config.yml.example. Disabling it in your config.yml is
|
||||
recommended (see https://github.com/Athou/commafeed/commit/929df60f09cce56020b0962ab111cd8349b271b0)
|
||||
- migrated documentation from swagger 2 to openapi 3
|
||||
- added a GET method to the fever api to indicate that the endpoint is working correctly when accessed from a browser
|
||||
- the websocket connection can now be disabled, the websocket ping interval and the tree reload interval can now be
|
||||
configured (see config.yml.example)
|
||||
- the websocket connection now works correctly when the context root of the application is not "/"
|
||||
- unstable pubsubhubbub support was removed
|
||||
|
||||
## [3.10.1]
|
||||
|
||||
- swap next and previous buttons (#1159)
|
||||
- unread count for subscriptions will now be shortened starting at 10k instead of 1k
|
||||
- increased websocket ping interval to just under a minute to reduce data and battery usage on mobile
|
||||
- only refresh subscription tree on a timer if websocket connection is unavailable
|
||||
- the Docker image now uses less memory by returning unused memory to the OS
|
||||
- add support for Java 21
|
||||
|
||||
## [3.10.0]
|
||||
|
||||
- added a Fever-compatible API that is usable with mobile clients that support the Fever API (see instructions in
|
||||
Settings -> Profile)
|
||||
- long entry titles are no longer shortened in the detailed view
|
||||
- added the "s" keyboard shortcut to star/unstar entries
|
||||
- http sessions are now stored in the database (they were stored on disk before)
|
||||
- fixed an issue that made it impossible to override the database url in a config.yml mounted in the Docker image
|
||||
|
||||
## [3.9.0]
|
||||
|
||||
- improve performance by disabling the loader when nothing is loading (most noticeable on mobile)
|
||||
- added a setting to disable the 'mark all as read' confirmation
|
||||
- added a setting to disable the custom context menu
|
||||
- if the custom context is enabled, it can still be disabled by pressing the shift key
|
||||
- the announcement feature is now working again and supports html ('announcement' configuration element in config.yml)
|
||||
- add support for MariaDB 11+
|
||||
- fix entry header shortly rendered as mobile on desktop, causing a small visual glitch
|
||||
- fix an issue that could cause a feed to not refresh correctly if the url was very long
|
||||
- database cleanup batch size is now configurable
|
||||
- css parsing errors are no longer logged to the standard output
|
||||
- fix small errors in the api documentation
|
||||
|
||||
## [3.8.1]
|
||||
|
||||
- in expanded mode, don't scroll when clicking on the body of the current entry
|
||||
- improve content cleanup task performance for instances with a very large number of feeds
|
||||
|
||||
## [3.8.0]
|
||||
|
||||
- add previous and next buttons in the toolbar
|
||||
- add a setting to always scroll selected entry to the top of the page, even if it fits entirely on screen
|
||||
- clicking on the body of an entry in expanded mode selects it and marks it as read
|
||||
- add rich text editor with autocomplete for custom css and js code in settings (desktop only)
|
||||
- dramatically improve performance while scrolling
|
||||
- fix broken welcome page mobile layout
|
||||
- format dates in user locale instead of GMT in relative date popups
|
||||
|
||||
## [3.7.0]
|
||||
|
||||
- the sidebar is now resizable
|
||||
- added the "f" keyboard shortcut to hide the sidebar
|
||||
- added tooltips to relative dates with the exact date
|
||||
- add a setting to hide commafeed from search engines (exposes a robots.txt file, enabled by default)
|
||||
- the browser extension unread count now updates when articles are marked as read/unread in the app
|
||||
- The "b" keyboard shortcut now works as expected on Chrome but requires the browser extension to be installed
|
||||
- dark mode has been disabled on the api documentation page as it was unreadable
|
||||
- improvement to the feed refresh queuing logic when "heavy load" mode is enabled
|
||||
- fix a bug that could prevent feeds and categories from being edited
|
||||
|
||||
## [3.6.0]
|
||||
|
||||
- add a button to open CommaFeed in a new tab and a button to open options when using the browser extension
|
||||
- clicking on the entry title in expanded mode now opens the link instead of doing nothing
|
||||
- add tooltips to buttons when the mobile layout is used on desktop
|
||||
- redirect the user to the welcome page if the user was deleted from the database
|
||||
- add link to api documentation on welcome page
|
||||
- the unread count is now correctly updated when using the "/next" bookmarklet while redis cache is enabled
|
||||
|
||||
## [3.5.0]
|
||||
|
||||
- add compatibility with the new version of the CommaFeed browser extension
|
||||
- disable pull-to-refresh on mobile as it messes with vertical scrolling
|
||||
- add css classes to feed entries to help with custom css rules
|
||||
- api documentation page no longer requires users to be authenticated
|
||||
- add a setting to limit the number of feeds a user can subscribe to
|
||||
- add a setting to disable strict password policy
|
||||
- add feed refresh engine metrics
|
||||
- fix redis timeouts
|
||||
|
||||
## [3.4.0]
|
||||
|
||||
- add support for arm64 docker images
|
||||
- add divider to visually separate read-only information from form on the profile settings page
|
||||
- reduce javascript bundle size by 30% by loading only the necessary translations
|
||||
- add a standalone donate page with all ways to support CommaFeed
|
||||
- fix an issue introduced in 3.1.0 that could make CommaFeed not refresh feeds as fast as before on instances with lots
|
||||
of feeds
|
||||
- fix alignment of icon with text for category tree nodes
|
||||
- fix alignment of burger button with the rest of the header on mobile
|
||||
|
||||
## [3.3.2]
|
||||
|
||||
- restore entry selection indicator (left orange border) that was lost with the mantine 6.x upgrade (3.3.0)
|
||||
- add dividers to visually separate read-only information from forms on feed and category details pages
|
||||
- reduced javascript bundle size by 10%
|
||||
|
||||
## [3.3.1]
|
||||
|
||||
- fix long feed names not being shortened to respect tree max width
|
||||
|
||||
## [3.3.0]
|
||||
|
||||
- there are now database changes, rolling back to 2.x will no longer be possible
|
||||
- restore support for user custom CSS rules
|
||||
- add support for user custom JS code that will be executed on page load
|
||||
|
||||
## [3.2.0]
|
||||
|
||||
- restore the welcome page
|
||||
- only apply hover effect for unread entries (same as commafeed v2)
|
||||
- move notifications at the bottom of the screen
|
||||
- always use https for sharing urls
|
||||
- add support for redis ACLs
|
||||
- transition to google analytics v4
|
||||
|
||||
## [3.1.0]
|
||||
|
||||
- add an even more compact layout
|
||||
- restore hover effect from commafeed 2.x
|
||||
- view mode (compact, expanded, ...) is now stored on the device so you can have a different view mode on desktop and
|
||||
mobile
|
||||
- fix for the "Illegal attempt to associate a collection with two open sessions." error
|
||||
- feed fetching workflow is now orchestrated with rxjava, removing a lot of code
|
||||
|
||||
## [3.0.1]
|
||||
|
||||
- allow env variable substitution in config.yml
|
||||
- e.g. having a custom config.yml file with `app.session.path=${SOME_ENV_VAR}` will substitute `SOME_ENV_VAR` with its
|
||||
value
|
||||
- allow env variable prefixed with `CF_` to override config.yml properties
|
||||
- e.g. setting `CF_APP_ALLOWREGISTRATIONS=true` will set `app.allowRegistrations` to `true`
|
||||
|
||||
## [3.0.0]
|
||||
|
||||
- complete overhaul of the UI
|
||||
- backend and frontend are now in separate maven modules
|
||||
- no changes to the api or the database
|
||||
- Docker images are now automatically built and available at https://hub.docker.com/r/athou/commafeed
|
||||
|
||||
## [2.6.0]
|
||||
|
||||
- add support for media content as a backup for missing content (useful for youtube feeds)
|
||||
- correctly follow http error code 308 redirects
|
||||
- fixed a bug that prevented users from deleting their account
|
||||
- fixed a bug that made commafeed store entry contents multiple times
|
||||
- fixed a bug that prevented the app to be used as an installed app on mobile devices if the context path of commafeed
|
||||
was not "/"
|
||||
- fixed a bug that prevented entries from being "marked as read older than xxx" for a feed that was just added
|
||||
- removed support for google+ and readability as those services no longer exist
|
||||
- removed support for deploying on openshift
|
||||
- removed alphabetical sorting of entries because of really poor performance (title cannot be indexed)
|
||||
- improve performance for instances with the heavy load setting enabled by preventing CommaFeed from fetching feeds from
|
||||
users that did not log in for a long time
|
||||
- various dependencies upgrades (notably dropwizard from 1.3 to 2.1)
|
||||
- add support for mariadb
|
||||
- add support for java17+ runtime
|
||||
- various security improvements
|
||||
|
||||
## [2.5.0]
|
||||
|
||||
- unread count is now displayed in a favicon badge when supported
|
||||
- the user agent string for the bot fetching feeds is now configurable
|
||||
- feed parsing performance improvements
|
||||
- support for java9+ runtime
|
||||
- can now properly start from an empty postgresql database
|
||||
|
||||
## [2.4.0]
|
||||
|
||||
- users were not able to change password or delete account
|
||||
- fix api key generation
|
||||
- feed entries can now be sorted alphabetically
|
||||
- fix facebook sharing
|
||||
- fix layout on iOS
|
||||
- postgresql driver update (fix for postgres 9.6)
|
||||
- various internationalization fixes
|
||||
- security fixes
|
||||
|
||||
## [2.3.0]
|
||||
|
||||
- dropwizard upgrade 0.9.1
|
||||
- feed enclosures are hidden if they already displayed in the content
|
||||
- fix youtube favicons
|
||||
- various internationalization fixes
|
||||
|
||||
## [2.2.0]
|
||||
|
||||
- fix youtube and instagram favicon fetching
|
||||
- mark as read filter was lost when a feed was rearranged with drag&drop
|
||||
- feed entry categories are now displayed if available
|
||||
- various performance and dependencies upgrades
|
||||
- java8 is now required
|
||||
|
||||
## [2.1.0]
|
||||
|
||||
- dropwizard upgrade to 0.8.0
|
||||
- you have to remove the "app.contextPath" setting from your yml file, you can optionally use
|
||||
server.applicationContextPath instead
|
||||
- new setting app.maxFeedCapacity for deleting old entries
|
||||
- ability to set filtering expressions for subscriptions to automatically mark new entries as read based on title,
|
||||
content, author or url.
|
||||
- ability to use !keyword or -keyword to exclude a keyword from a search query
|
||||
- facebook feeds now show user favicon instead of facebook favicon
|
||||
- new dark theme 'nightsky'
|
||||
|
||||
## [2.0.3]
|
||||
|
||||
- internet explorer ajax cache workaround
|
||||
- categories are now deletable again
|
||||
- openshift support is back
|
||||
- youtube feeds now show user favicon instead of youtube favicon
|
||||
|
||||
## [2.0.2]
|
||||
|
||||
- api using the api key is now working again
|
||||
- context path is now configurable in config.yml (see app.contextPath in config.yml.example)
|
||||
- fix login on firefox when fields are autofilled by the browser
|
||||
- fix scrolling of subscriptions list on mobile
|
||||
- user is now logged in after registration
|
||||
- fix link to documentation on home page and about page
|
||||
- fields autocomplete is disabled on the profile page
|
||||
- users are able to delete their account again
|
||||
- chinese and malaysian translation files are now correctly loaded
|
||||
- software version in user-agent when fetching feeds is no longer hardcoded
|
||||
- admin settings page is now read only, settings are configured in config.yml
|
||||
- added link to metrics on the admin settings page
|
||||
- Rome (rss library) upgrade to 1.5.0
|
||||
|
||||
## [2.0.1]
|
||||
|
||||
- the redis pool no longer throws an exception when it is unable to aquire a new connection
|
||||
|
||||
## [2.0.0]
|
||||
|
||||
- The backend has been completely rewritten using Dropwizard instead of TomEE, resulting in a lot less memory
|
||||
consumption and better overall performances.
|
||||
See the README on how to build CommaFeed from now on.
|
||||
- CommaFeed should no longer fetch the same feed multiple times in a row
|
||||
- Users can use their username or email to log in
|
||||
# Changelog
|
||||
|
||||
## [5.10.0]
|
||||
|
||||
- Add an indicator next to each feed's unread count in the tree to show when new entries are discovered while the app is open (#1762)
|
||||
- Feeds with uppercase HTTP:// or HTTPS:// URLs are now correctly handled again
|
||||
- The aarch64 native executable now also works on the Raspberry Pi 5 (#1795)
|
||||
- Improve general performance of the UI by reducing the number of re-renders, especially when a lot of entries are displayed (#1087)
|
||||
|
||||
## [5.9.0]
|
||||
|
||||
- A lot of CSS classes have been added to the elements of the application to ease custom CSS rules (#1757)
|
||||
- Added a link in the README to the [documentation](https://athou.github.io/commafeed/documentation/custom-css/) of the new CSS classes
|
||||
- Static resources are now cached for much longer (#1782)
|
||||
|
||||
## [5.8.0]
|
||||
|
||||
- A color picker is now available on the settings page to change the orange accent of the application (#1598)
|
||||
- A font size slider is now available to change the size of the text of feed entries (#1462)
|
||||
- The "mark all as read" confirmation setting now also applies to the "shift+a" keyboard shortcut (#1744)
|
||||
- CommaFeed wil try to match the language of the browser before defaulting to english (#1767)
|
||||
- The default value for the number of entries to keep above the selected entry when scrolling is now 1 instead of 0 to match what other feed readers do
|
||||
|
||||
## [5.7.0]
|
||||
|
||||
- Add Shift+J/Shift+K keyboard shortcuts to navigate to the next/previous feed or category with unread entries (#1558)
|
||||
- Add the referrer "no-referrer" meta to index.html (#1724)
|
||||
- Load custom JS code when the app is done loading (#1724)
|
||||
- Correctly handle feeds that return an unmodified Last-Modified header but a different ETag header (#1746)
|
||||
- Restore gzip compression of responses that was accidentaly disabled since 5.0.0
|
||||
- Fix tooltips not showing up in mobile view
|
||||
- Fix the bookmarklet generator on the About page
|
||||
|
||||
## [5.6.1]
|
||||
|
||||
- Restore support for iframes in feed entries (#1688)
|
||||
- There is now a package available for Arch Linux thanks to @dcelasun (#1691)
|
||||
|
||||
## [5.6.0]
|
||||
|
||||
- To better respect the bandwidth of feed owners, the default value of `commafeed.feed-refresh.interval-empirical` is now true. This means feeds no longer refresh exactly every 5 minutes (the default value of `commafeed.feed-refresh.interval`) but between 5 minutes and 4 hours (the default value of the new `commafeed.feed-refresh.max-interval` setting). The interval is calculated based on feed activity, so highly active feeds refresh more often (#1677)
|
||||
- Many previously hardcoded values used in feed refresh interval calculation are now exposed as settings (#1677)
|
||||
- Access to local addresses is now blocked to mitigate server-side request forgery (SSRF) attacks, which could potentially expose internal resources. You might want to disable the new `commafeed.http-client.block-local-addresses` setting if you subscribe to feeds only available on your local network and you trust all your users
|
||||
- If a feed responds with a "429 - Too many requests" response, a backoff mechanism is triggered when the response does not contain a "Retry-After" header
|
||||
|
||||
## [5.5.0]
|
||||
|
||||
- CommaFeed now honors the Retry-After response header and will not try to refresh a feed sooner than the value of this header
|
||||
- Audio enclosures (e.g. podcasts) now fill available entry width
|
||||
- Fix an issue with some labels not correctly internationalized
|
||||
|
||||
## [5.4.0]
|
||||
|
||||
- An arm64 native executable is now available for download on the releases page
|
||||
- The native executable Docker image now supports arm64
|
||||
- Fixed an issue with feeds that declared an invalid DOCTYPE (#1260)
|
||||
|
||||
## [5.3.6]
|
||||
|
||||
- Ignore invalid Cache-Control header values (#1619)
|
||||
|
||||
## [5.3.5]
|
||||
|
||||
- Fixed an issue with the aspect ratio of images of some feeds (#1595)
|
||||
- CommaFeed now honors the Cache-Control response header and will not try to refresh a feed sooner than its max-age property (#1615)
|
||||
- Added support for compilation with JDK 23+. If you're building CommaFeed from sources with a JDK 17 or 21, you may need to update it to the most recent patch version to support `-proc:full` (#1618)
|
||||
|
||||
## [5.3.4]
|
||||
|
||||
- Added support for Internationalized Domain Names (#1588)
|
||||
|
||||
## [5.3.3]
|
||||
|
||||
- Removed image bottom margins (#1587)
|
||||
|
||||
## [5.3.2]
|
||||
|
||||
- Fixed an issue that could cause some images from not being rendered correctly (#1587)
|
||||
|
||||
## [5.3.1]
|
||||
|
||||
- Fixed an issue that could cause some HTTP feeds to return a 400 error (#1572)
|
||||
|
||||
## [5.3.0]
|
||||
|
||||
- Added a setting to set a cooldown on the "fetch all my feeds" action, disabled by default (#1556)
|
||||
- Fixed an issue that could cause entries to not correctly load when using the "next" header button (#1557)
|
||||
|
||||
## [5.2.0]
|
||||
|
||||
- Added an option to keep a number of entries above the selected entry when scrolling
|
||||
- Added a cache to the HTTP client to reduce the number of requests made to feeds when subscribing (#1431)
|
||||
- Feeds are no longer refreshed between the moment its last user unsubscribes and the moment the feed is cleaned up (every hour)
|
||||
- Fixed an issue that could cause entries to not correctly load when using keyboard navigation (#1557)
|
||||
|
||||
## [5.1.1]
|
||||
|
||||
- Fixed database migration issue when upgrading from 5.0.0 to 5.1.0 on MariaDB (#1544)
|
||||
- When feeds without unread entries are hidden from the tree, the feed is displayed in the tree until another one is selected (#1543)
|
||||
|
||||
## [5.1.0]
|
||||
|
||||
- Added a setting for showing/hiding unread count in the browser's tab title/favicon (#1518)
|
||||
- Fixed an issue that could prevent the app from starting on some systems (#1532)
|
||||
- Added a cache busting filter for the webapp index.html and openapi documentation to make sure they are always up to date
|
||||
- Reduced database cleanup log verbosity
|
||||
|
||||
## [5.0.2]
|
||||
|
||||
- Fix favicon fetching for Youtube channels in native mode when Google auth key is set
|
||||
- Fix an error that appears in the logs when fetching some favicons
|
||||
|
||||
## [5.0.1]
|
||||
|
||||
- Configure native compilation to support older CPU architectures (#1524)
|
||||
|
||||
## [5.0.0]
|
||||
|
||||
CommaFeed is now powered by Quarkus instead of Dropwizard. Read the rationale behind this change in
|
||||
the [announcement](https://github.com/Athou/commafeed/discussions/1517).
|
||||
The gist of it is that CommaFeed can now be compiled to a native binary, resulting in blazing fast startup times (around
|
||||
0.3s) and very low memory footprint (< 50M).
|
||||
|
||||
- CommaFeed now has a different package for each supported database.
|
||||
- If you are deploying CommaFeed with a precompiled package, please
|
||||
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#download-a-precompiled-package).
|
||||
- If you are building CommaFeed from sources, please
|
||||
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#build-from-sources).
|
||||
- If you are using the Docker image, please read the instructions on
|
||||
the [Docker Hub page](https://hub.docker.com/r/athou/commafeed).
|
||||
- Due to the switch to Quarkus, the way CommaFeed is configured is very different (the `config.yml` file is gone).
|
||||
Please
|
||||
read [this section of the README](https://github.com/Athou/commafeed/tree/master?tab=readme-ov-file#configuration).
|
||||
Note that a lot of configuration elements have been removed or renamed and are now nested/grouped by feature.
|
||||
- Added a setting to prevent parsing large feeds to avoid out of memory errors. The default is 5MB.
|
||||
- Use a different icon for filtering unread entries and marking an entry as read (#1506)
|
||||
- Added various HTML attributes to ease custom JS/CSS customization (#1507)
|
||||
- The Redis cache has been removed. There have been multiple enhancements to the feed refresh engine and it is no longer
|
||||
needed, even for instances with a large number of feeds.
|
||||
- The H2 migration tool that automatically upgrades H2 databases from format 2 to 3 has been removed. If you're using
|
||||
the H2 embedded database, please upgrade to at least version 4.3.0 before upgrading to CommaFeed 5.0.0.
|
||||
|
||||
## [4.6.0]
|
||||
|
||||
- switched from Temurin to OpenJ9 as the JVM used in the Docker image, resulting in memory usage reduction by up to 50%
|
||||
- fix an issue that could cause old entries to reappear if they were updated by their author (#1486)
|
||||
- show all entries regardless of their read status when searching with keywords, even if the ui is configured to show
|
||||
unread entries only
|
||||
|
||||
## [4.5.0]
|
||||
|
||||
- significantly reduce the time needed to retrieve entries or mark them as read, especially when there are a lot of
|
||||
entries (#1452)
|
||||
- fix a race condition where a feed could be refreshed before it was created in the database
|
||||
- fix an issue that could cause the websocket notification to contain the wrong number of unread entries when using
|
||||
mysql/mariadb
|
||||
- fix an error when trying to mark all starred entries as read
|
||||
- remove the `onlyIds` parameter from REST endpoints since retrieving all the entries is now just as fast
|
||||
- remove support for microsoft sqlserver because it's not covered with integration tests (please open an issue if you'd
|
||||
like it back)
|
||||
|
||||
## [4.4.1]
|
||||
|
||||
- fix vertical scrolling issues with Safari (#1168)
|
||||
- the default value for new users for the "star entry" button and the "open in new tab" button in the entry headers is
|
||||
now "on desktop" instead of "always"
|
||||
- the "keyboard shortcuts" help page now shows "Cmd" instead of "Ctrl" on macOS (#1389)
|
||||
- remove a superfluous feed fetch when subscribing to a feed (#1431)
|
||||
- the Docker image now uses Java 21
|
||||
|
||||
## [4.4.0]
|
||||
|
||||
- add support for sharing using the browser native capabilities if available (#1255)
|
||||
- add a button in the entry headers to star an entry (#1025)
|
||||
- add a button in the entry headers to open links in a new tab (#1333)
|
||||
- add two options in the settings to toggle those buttons
|
||||
- accept .opml file extension when importing and export with the .opml extension
|
||||
- the "mark as read" option is no longer shown in the context menu for entries that are too old to be marked as read (
|
||||
older than `keepStatusDays`) (#1303)
|
||||
|
||||
## [4.3.3]
|
||||
|
||||
- fix OPML import (#1279)
|
||||
|
||||
## [4.3.2]
|
||||
|
||||
- added support for unix sockets (#1278)
|
||||
|
||||
## [4.3.1]
|
||||
|
||||
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database and the database
|
||||
timezone is not UTC (#1239)
|
||||
- videos in enclosures can no longer have a width larger than the page (#1240)
|
||||
|
||||
## [4.3.0]
|
||||
|
||||
- h2 (the embedded database) has been upgraded to 2.2.224
|
||||
- this version uses a different file format than 2.1.x, the first time you start CommaFeed with this version, the
|
||||
database will be automatically converted to the new format
|
||||
- add a setting to completely disable scrolling to selected entry (#1157)
|
||||
- add a css class reflecting the current view mode to ease custom css rules (#1232)
|
||||
- fix an issue that prevents new feeds from being added when mysql/mariadb is used as the database (#1239)
|
||||
|
||||
## [4.2.1]
|
||||
|
||||
- fix an issue that caused the tree to show an incorrect unread count after a websocket notification because entries
|
||||
that were already marked as read by a filtering expression were not ignored (#1191)
|
||||
|
||||
## [4.2.0]
|
||||
|
||||
- add a setting to display the action buttons in the footer instead of in the header on mobile (#1121)
|
||||
- the websocket notification now contains everything needed to update the UI, the client no longer needs to make an API
|
||||
call to get the latest data when receiving the notification
|
||||
- add a workaround to the Fever API for the Unread iOS app (#1188)
|
||||
- fix an issue that caused dates to be saved incorrectly if the database server and the application server were in
|
||||
different timezones (#1187)
|
||||
|
||||
## [4.1.0]
|
||||
|
||||
- it is now possible to open the sidebar on mobile by swiping to the right (#1098)
|
||||
- swiping to mark entries as read/unread changed from swiping right to left because swiping right now opens the sidebar
|
||||
- the full hierarchy of categories are now displayed in the category dropdown (#1045)
|
||||
- added a setting `maxEntriesAgeDays` to delete old entries based on their age during database cleanup.
|
||||
The setting is disabled by default for existing installations, except for the docker image where it is enabled and set
|
||||
to 365 days
|
||||
- if user registrations are disabled on your instance which is the default behavior, users are redirected on the login
|
||||
page instead of the welcome page when not logged in (#1185)
|
||||
- the sidebar resizer is no longer shown in the middle of the screen on mobile
|
||||
- when using the system color scheme and the system is using a dark theme, feed entries no longer flicker on load
|
||||
- the demo account (if enabled) cannot register custom javascript code anymore
|
||||
- removed the usage of `toSorted` in the client because older browsers do not support it (#1183)
|
||||
- the openapi documentation is no longer cached by the browser so you always have access to the latest version
|
||||
- added a memory management section to the readme, reading it is recommended if you are running CommaFeed on a server
|
||||
with limited memory
|
||||
- fixed an issue that caused users without an email address set to be unable to edit their profile (#1184)
|
||||
|
||||
## [4.0.0]
|
||||
|
||||
- migrated from dropwizard 2 to dropwizard 4, Java 17+ is now required
|
||||
- entries that were fetched and inserted in the database but not yet shown in the UI are no longer marked as read when
|
||||
marking all entries as read
|
||||
- your custom sidebar width is now persisted in the local storage of your browser
|
||||
- there is now a third color scheme option in addition to light and dark: system (follows the system color scheme)
|
||||
- added support for youtube playlist favicons
|
||||
- custom JS code is now executed when the app is done loading instead of when the page is loaded
|
||||
- the favicon is now correctly returned for feeds that return an invalid content type
|
||||
- the feed refresh engine now uses httpclient5 with connection pooling and no longer creates a new client for each
|
||||
request, reducing CPU usage
|
||||
- updated UI library Mantine to 7.0, improving performance
|
||||
- the h2 embedded database is now compacted on shutdown to reclaim unused space
|
||||
- the admin connector on port 8084 is now disabled in config.yml.example. Disabling it in your config.yml is
|
||||
recommended (see https://github.com/Athou/commafeed/commit/929df60f09cce56020b0962ab111cd8349b271b0)
|
||||
- migrated documentation from swagger 2 to openapi 3
|
||||
- added a GET method to the fever api to indicate that the endpoint is working correctly when accessed from a browser
|
||||
- the websocket connection can now be disabled, the websocket ping interval and the tree reload interval can now be
|
||||
configured (see config.yml.example)
|
||||
- the websocket connection now works correctly when the context root of the application is not "/"
|
||||
- unstable pubsubhubbub support was removed
|
||||
|
||||
## [3.10.1]
|
||||
|
||||
- swap next and previous buttons (#1159)
|
||||
- unread count for subscriptions will now be shortened starting at 10k instead of 1k
|
||||
- increased websocket ping interval to just under a minute to reduce data and battery usage on mobile
|
||||
- only refresh subscription tree on a timer if websocket connection is unavailable
|
||||
- the Docker image now uses less memory by returning unused memory to the OS
|
||||
- add support for Java 21
|
||||
|
||||
## [3.10.0]
|
||||
|
||||
- added a Fever-compatible API that is usable with mobile clients that support the Fever API (see instructions in
|
||||
Settings -> Profile)
|
||||
- long entry titles are no longer shortened in the detailed view
|
||||
- added the "s" keyboard shortcut to star/unstar entries
|
||||
- http sessions are now stored in the database (they were stored on disk before)
|
||||
- fixed an issue that made it impossible to override the database url in a config.yml mounted in the Docker image
|
||||
|
||||
## [3.9.0]
|
||||
|
||||
- improve performance by disabling the loader when nothing is loading (most noticeable on mobile)
|
||||
- added a setting to disable the 'mark all as read' confirmation
|
||||
- added a setting to disable the custom context menu
|
||||
- if the custom context is enabled, it can still be disabled by pressing the shift key
|
||||
- the announcement feature is now working again and supports html ('announcement' configuration element in config.yml)
|
||||
- add support for MariaDB 11+
|
||||
- fix entry header shortly rendered as mobile on desktop, causing a small visual glitch
|
||||
- fix an issue that could cause a feed to not refresh correctly if the url was very long
|
||||
- database cleanup batch size is now configurable
|
||||
- css parsing errors are no longer logged to the standard output
|
||||
- fix small errors in the api documentation
|
||||
|
||||
## [3.8.1]
|
||||
|
||||
- in expanded mode, don't scroll when clicking on the body of the current entry
|
||||
- improve content cleanup task performance for instances with a very large number of feeds
|
||||
|
||||
## [3.8.0]
|
||||
|
||||
- add previous and next buttons in the toolbar
|
||||
- add a setting to always scroll selected entry to the top of the page, even if it fits entirely on screen
|
||||
- clicking on the body of an entry in expanded mode selects it and marks it as read
|
||||
- add rich text editor with autocomplete for custom css and js code in settings (desktop only)
|
||||
- dramatically improve performance while scrolling
|
||||
- fix broken welcome page mobile layout
|
||||
- format dates in user locale instead of GMT in relative date popups
|
||||
|
||||
## [3.7.0]
|
||||
|
||||
- the sidebar is now resizable
|
||||
- added the "f" keyboard shortcut to hide the sidebar
|
||||
- added tooltips to relative dates with the exact date
|
||||
- add a setting to hide commafeed from search engines (exposes a robots.txt file, enabled by default)
|
||||
- the browser extension unread count now updates when articles are marked as read/unread in the app
|
||||
- The "b" keyboard shortcut now works as expected on Chrome but requires the browser extension to be installed
|
||||
- dark mode has been disabled on the api documentation page as it was unreadable
|
||||
- improvement to the feed refresh queuing logic when "heavy load" mode is enabled
|
||||
- fix a bug that could prevent feeds and categories from being edited
|
||||
|
||||
## [3.6.0]
|
||||
|
||||
- add a button to open CommaFeed in a new tab and a button to open options when using the browser extension
|
||||
- clicking on the entry title in expanded mode now opens the link instead of doing nothing
|
||||
- add tooltips to buttons when the mobile layout is used on desktop
|
||||
- redirect the user to the welcome page if the user was deleted from the database
|
||||
- add link to api documentation on welcome page
|
||||
- the unread count is now correctly updated when using the "/next" bookmarklet while redis cache is enabled
|
||||
|
||||
## [3.5.0]
|
||||
|
||||
- add compatibility with the new version of the CommaFeed browser extension
|
||||
- disable pull-to-refresh on mobile as it messes with vertical scrolling
|
||||
- add css classes to feed entries to help with custom css rules
|
||||
- api documentation page no longer requires users to be authenticated
|
||||
- add a setting to limit the number of feeds a user can subscribe to
|
||||
- add a setting to disable strict password policy
|
||||
- add feed refresh engine metrics
|
||||
- fix redis timeouts
|
||||
|
||||
## [3.4.0]
|
||||
|
||||
- add support for arm64 docker images
|
||||
- add divider to visually separate read-only information from form on the profile settings page
|
||||
- reduce javascript bundle size by 30% by loading only the necessary translations
|
||||
- add a standalone donate page with all ways to support CommaFeed
|
||||
- fix an issue introduced in 3.1.0 that could make CommaFeed not refresh feeds as fast as before on instances with lots
|
||||
of feeds
|
||||
- fix alignment of icon with text for category tree nodes
|
||||
- fix alignment of burger button with the rest of the header on mobile
|
||||
|
||||
## [3.3.2]
|
||||
|
||||
- restore entry selection indicator (left orange border) that was lost with the mantine 6.x upgrade (3.3.0)
|
||||
- add dividers to visually separate read-only information from forms on feed and category details pages
|
||||
- reduced javascript bundle size by 10%
|
||||
|
||||
## [3.3.1]
|
||||
|
||||
- fix long feed names not being shortened to respect tree max width
|
||||
|
||||
## [3.3.0]
|
||||
|
||||
- there are now database changes, rolling back to 2.x will no longer be possible
|
||||
- restore support for user custom CSS rules
|
||||
- add support for user custom JS code that will be executed on page load
|
||||
|
||||
## [3.2.0]
|
||||
|
||||
- restore the welcome page
|
||||
- only apply hover effect for unread entries (same as commafeed v2)
|
||||
- move notifications at the bottom of the screen
|
||||
- always use https for sharing urls
|
||||
- add support for redis ACLs
|
||||
- transition to google analytics v4
|
||||
|
||||
## [3.1.0]
|
||||
|
||||
- add an even more compact layout
|
||||
- restore hover effect from commafeed 2.x
|
||||
- view mode (compact, expanded, ...) is now stored on the device so you can have a different view mode on desktop and
|
||||
mobile
|
||||
- fix for the "Illegal attempt to associate a collection with two open sessions." error
|
||||
- feed fetching workflow is now orchestrated with rxjava, removing a lot of code
|
||||
|
||||
## [3.0.1]
|
||||
|
||||
- allow env variable substitution in config.yml
|
||||
- e.g. having a custom config.yml file with `app.session.path=${SOME_ENV_VAR}` will substitute `SOME_ENV_VAR` with its
|
||||
value
|
||||
- allow env variable prefixed with `CF_` to override config.yml properties
|
||||
- e.g. setting `CF_APP_ALLOWREGISTRATIONS=true` will set `app.allowRegistrations` to `true`
|
||||
|
||||
## [3.0.0]
|
||||
|
||||
- complete overhaul of the UI
|
||||
- backend and frontend are now in separate maven modules
|
||||
- no changes to the api or the database
|
||||
- Docker images are now automatically built and available at https://hub.docker.com/r/athou/commafeed
|
||||
|
||||
## [2.6.0]
|
||||
|
||||
- add support for media content as a backup for missing content (useful for youtube feeds)
|
||||
- correctly follow http error code 308 redirects
|
||||
- fixed a bug that prevented users from deleting their account
|
||||
- fixed a bug that made commafeed store entry contents multiple times
|
||||
- fixed a bug that prevented the app to be used as an installed app on mobile devices if the context path of commafeed
|
||||
was not "/"
|
||||
- fixed a bug that prevented entries from being "marked as read older than xxx" for a feed that was just added
|
||||
- removed support for google+ and readability as those services no longer exist
|
||||
- removed support for deploying on openshift
|
||||
- removed alphabetical sorting of entries because of really poor performance (title cannot be indexed)
|
||||
- improve performance for instances with the heavy load setting enabled by preventing CommaFeed from fetching feeds from
|
||||
users that did not log in for a long time
|
||||
- various dependencies upgrades (notably dropwizard from 1.3 to 2.1)
|
||||
- add support for mariadb
|
||||
- add support for java17+ runtime
|
||||
- various security improvements
|
||||
|
||||
## [2.5.0]
|
||||
|
||||
- unread count is now displayed in a favicon badge when supported
|
||||
- the user agent string for the bot fetching feeds is now configurable
|
||||
- feed parsing performance improvements
|
||||
- support for java9+ runtime
|
||||
- can now properly start from an empty postgresql database
|
||||
|
||||
## [2.4.0]
|
||||
|
||||
- users were not able to change password or delete account
|
||||
- fix api key generation
|
||||
- feed entries can now be sorted alphabetically
|
||||
- fix facebook sharing
|
||||
- fix layout on iOS
|
||||
- postgresql driver update (fix for postgres 9.6)
|
||||
- various internationalization fixes
|
||||
- security fixes
|
||||
|
||||
## [2.3.0]
|
||||
|
||||
- dropwizard upgrade 0.9.1
|
||||
- feed enclosures are hidden if they already displayed in the content
|
||||
- fix youtube favicons
|
||||
- various internationalization fixes
|
||||
|
||||
## [2.2.0]
|
||||
|
||||
- fix youtube and instagram favicon fetching
|
||||
- mark as read filter was lost when a feed was rearranged with drag&drop
|
||||
- feed entry categories are now displayed if available
|
||||
- various performance and dependencies upgrades
|
||||
- java8 is now required
|
||||
|
||||
## [2.1.0]
|
||||
|
||||
- dropwizard upgrade to 0.8.0
|
||||
- you have to remove the "app.contextPath" setting from your yml file, you can optionally use
|
||||
server.applicationContextPath instead
|
||||
- new setting app.maxFeedCapacity for deleting old entries
|
||||
- ability to set filtering expressions for subscriptions to automatically mark new entries as read based on title,
|
||||
content, author or url.
|
||||
- ability to use !keyword or -keyword to exclude a keyword from a search query
|
||||
- facebook feeds now show user favicon instead of facebook favicon
|
||||
- new dark theme 'nightsky'
|
||||
|
||||
## [2.0.3]
|
||||
|
||||
- internet explorer ajax cache workaround
|
||||
- categories are now deletable again
|
||||
- openshift support is back
|
||||
- youtube feeds now show user favicon instead of youtube favicon
|
||||
|
||||
## [2.0.2]
|
||||
|
||||
- api using the api key is now working again
|
||||
- context path is now configurable in config.yml (see app.contextPath in config.yml.example)
|
||||
- fix login on firefox when fields are autofilled by the browser
|
||||
- fix scrolling of subscriptions list on mobile
|
||||
- user is now logged in after registration
|
||||
- fix link to documentation on home page and about page
|
||||
- fields autocomplete is disabled on the profile page
|
||||
- users are able to delete their account again
|
||||
- chinese and malaysian translation files are now correctly loaded
|
||||
- software version in user-agent when fetching feeds is no longer hardcoded
|
||||
- admin settings page is now read only, settings are configured in config.yml
|
||||
- added link to metrics on the admin settings page
|
||||
- Rome (rss library) upgrade to 1.5.0
|
||||
|
||||
## [2.0.1]
|
||||
|
||||
- the redis pool no longer throws an exception when it is unable to aquire a new connection
|
||||
|
||||
## [2.0.0]
|
||||
|
||||
- The backend has been completely rewritten using Dropwizard instead of TomEE, resulting in a lot less memory
|
||||
consumption and better overall performances.
|
||||
See the README on how to build CommaFeed from now on.
|
||||
- CommaFeed should no longer fetch the same feed multiple times in a row
|
||||
- Users can use their username or email to log in
|
||||
|
||||
60
LICENSE
60
LICENSE
@@ -1,31 +1,31 @@
|
||||
Apache License, Version 2.0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
1. Definitions.
|
||||
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
|
||||
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
|
||||
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
|
||||
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
|
||||
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
|
||||
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
|
||||
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
|
||||
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
|
||||
2. Grant of Copyright License.
|
||||
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
|
||||
3. Grant of Patent License.
|
||||
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
|
||||
4. Redistribution.
|
||||
You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
|
||||
You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
|
||||
5. Submission of Contributions.
|
||||
Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
|
||||
6. Trademarks.
|
||||
This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
|
||||
7. Disclaimer of Warranty.
|
||||
Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
|
||||
8. Limitation of Liability.
|
||||
In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
|
||||
9. Accepting Warranty or Additional Liability.
|
||||
While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
|
||||
Apache License, Version 2.0 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
1. Definitions.
|
||||
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
|
||||
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
|
||||
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
|
||||
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
|
||||
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
|
||||
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
|
||||
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
|
||||
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
|
||||
2. Grant of Copyright License.
|
||||
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
|
||||
3. Grant of Patent License.
|
||||
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
|
||||
4. Redistribution.
|
||||
You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
|
||||
You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
|
||||
5. Submission of Contributions.
|
||||
Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
|
||||
6. Trademarks.
|
||||
This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
|
||||
7. Disclaimer of Warranty.
|
||||
Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
|
||||
8. Limitation of Liability.
|
||||
In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
|
||||
9. Accepting Warranty or Additional Liability.
|
||||
While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
|
||||
END OF TERMS AND CONDITIONS
|
||||
15
README.md
15
README.md
@@ -17,6 +17,7 @@ Google Reader inspired self-hosted RSS reader, based on Quarkus and React/TypeSc
|
||||
- REST API
|
||||
- Fever-compatible API for native mobile apps
|
||||
- Can automatically mark articles as read based on user-defined rules
|
||||
- Highly customizable with [custom CSS](https://athou.github.io/commafeed/documentation/custom-css) and JavaScript
|
||||
- [Browser extension](https://github.com/Athou/commafeed-browser-extension)
|
||||
- Compiles to native code for blazing fast startup and low memory usage
|
||||
- Supports 4 databases
|
||||
@@ -48,17 +49,17 @@ system and database of choice.
|
||||
|
||||
There are two types of packages:
|
||||
|
||||
- The `linux-x86_64` and `windows-x86_64` packages are compiled natively and contain an executable that can be run
|
||||
- The `linux-x86_64`, `linux-aarch_64` and `windows-x86_64` packages are compiled natively and contain an executable that can be run
|
||||
directly.
|
||||
- The `jvm` package is a zip file containing all `.jar` files required to run the application. This package works on all
|
||||
platforms and is started with `java -jar quarkus-run.jar`.
|
||||
platforms but requires a JRE and is started with `java -jar quarkus-run.jar`.
|
||||
|
||||
If available for your operating system, the native package is recommended because it has a faster startup time and lower
|
||||
memory usage.
|
||||
|
||||
### Build from sources
|
||||
|
||||
./mvnw clean package [-P<database>] [-Pnative] [-DskipTests]
|
||||
./mvnw clean package [-P<database> [-Pnative]] [-DskipTests]
|
||||
|
||||
- `<database>` can be one of `h2`, `postgresql`, `mysql` or `mariadb`. The default is `h2`.
|
||||
- `-Pnative` compiles the application to native code. This requires GraalVM to be installed (`GRAALVM_HOME` environment
|
||||
@@ -73,6 +74,10 @@ When the build is complete:
|
||||
- if you used the native profile, the executable is located at
|
||||
`commafeed-server/target/commafeed-<version>-<database>-<platform>-<arch>-runner[.exe]`
|
||||
|
||||
### Distribution packages
|
||||
|
||||
- Arch Linux users can use [the CommaFeed package on AUR](https://aur.archlinux.org/pkgbase/commafeed), which builds native binaries with GraalVM for all supported databases.
|
||||
|
||||
## Configuration
|
||||
|
||||
CommaFeed doesn't require any configuration to run with its embedded database (H2). The database file will be stored in
|
||||
@@ -94,13 +99,13 @@ There are multiple ways to configure CommaFeed:
|
||||
|
||||
- a `config/application.properties` [properties](https://en.wikipedia.org/wiki/.properties) file relative to the working
|
||||
directory (keys in kebab-case)
|
||||
- Command line arguments prefixed with `-D` (keys in kebab-case)
|
||||
- Command line arguments each prefixed with `-D` (keys in kebab-case)
|
||||
- Environment variables (keys in UPPER_CASE)
|
||||
- a `.env` file in the working directory (keys in UPPER_CASE)
|
||||
|
||||
The properties file is recommended because CommaFeed will be able to warn about invalid properties and typos.
|
||||
|
||||
All [CommaFeed settings](commafeed-server/doc/commafeed.adoc) are optional and have sensible default values.
|
||||
All [CommaFeed settings](https://athou.github.io/commafeed/documentation) are optional and have sensible default values.
|
||||
|
||||
When logging in, credentials are stored in an encrypted cookie. The encryption key is randomly generated at startup,
|
||||
meaning that you will have to log back in after each restart of the application. To prevent this, you can set the
|
||||
|
||||
@@ -13,6 +13,14 @@
|
||||
"arrowParentheses": "asNeeded"
|
||||
}
|
||||
},
|
||||
"linter": {
|
||||
"rules": {
|
||||
"correctness": {
|
||||
"noUnusedImports": "error",
|
||||
"noUnusedVariables": "error"
|
||||
}
|
||||
}
|
||||
},
|
||||
"files": {
|
||||
"ignore": ["dist", "node_modules", "target", "target-ide"]
|
||||
}
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
||||
<link rel="manifest" href="manifest.json" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<title>CommaFeed</title>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico" />
|
||||
<link rel="manifest" href="manifest.json" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
|
||||
<title>CommaFeed</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
6439
commafeed-client/package-lock.json
generated
6439
commafeed-client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -4,77 +4,82 @@
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "vite --host",
|
||||
"dev:typescript": "tsc --watch",
|
||||
"dev": "vite",
|
||||
"dev:host": "vite --host",
|
||||
"build": "tsc && vite build",
|
||||
"preview": "vite preview",
|
||||
"test": "vitest",
|
||||
"test:ci": "vitest run",
|
||||
"lint": "biome check ./src",
|
||||
"lint:fix": "biome check --write ./src",
|
||||
"lint": "biome check",
|
||||
"lint:fix": "biome check --write",
|
||||
"i18n:extract": "lingui extract --clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.13.3",
|
||||
"@fontsource/open-sans": "^5.1.0",
|
||||
"@lingui/core": "^4.13.0",
|
||||
"@lingui/macro": "^4.13.0",
|
||||
"@lingui/react": "^4.13.0",
|
||||
"@mantine/core": "^7.13.3",
|
||||
"@mantine/form": "^7.13.3",
|
||||
"@mantine/hooks": "^7.13.3",
|
||||
"@mantine/modals": "^7.13.3",
|
||||
"@mantine/notifications": "^7.13.3",
|
||||
"@mantine/spotlight": "^7.13.3",
|
||||
"@monaco-editor/react": "^4.6.0",
|
||||
"@reduxjs/toolkit": "^2.3.0",
|
||||
"axios": "^1.7.7",
|
||||
"@emotion/react": "^11.14.0",
|
||||
"@fontsource/open-sans": "^5.2.5",
|
||||
"@lingui/core": "^5.3.1",
|
||||
"@lingui/react": "^5.3.1",
|
||||
"@mantine/core": "^8.0.2",
|
||||
"@mantine/form": "^8.0.2",
|
||||
"@mantine/hooks": "^8.0.2",
|
||||
"@mantine/modals": "^8.0.2",
|
||||
"@mantine/notifications": "^8.0.2",
|
||||
"@mantine/spotlight": "^8.0.2",
|
||||
"@monaco-editor/react": "^4.7.0",
|
||||
"@reduxjs/toolkit": "^2.8.2",
|
||||
"axios": "^1.9.0",
|
||||
"dayjs": "^1.11.13",
|
||||
"escape-string-regexp": "^5.0.0",
|
||||
"interweave": "^13.1.0",
|
||||
"monaco-editor": "^0.52.0",
|
||||
"interweave": "^13.1.1",
|
||||
"monaco-editor": "^0.52.2",
|
||||
"mousetrap": "^1.6.5",
|
||||
"react": "^18.3.1",
|
||||
"react": "^19.1.0",
|
||||
"react-async-hook": "^4.0.0",
|
||||
"react-contexify": "^6.0.0",
|
||||
"react-device-detect": "^2.2.3",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-dom": "^19.1.0",
|
||||
"react-draggable": "^4.4.6",
|
||||
"react-ga4": "^2.1.0",
|
||||
"react-helmet": "^6.1.0",
|
||||
"react-icons": "^5.3.0",
|
||||
"react-icons": "^5.5.0",
|
||||
"react-infinite-scroller": "^1.2.6",
|
||||
"react-redux": "^9.1.2",
|
||||
"react-router-dom": "^6.27.0",
|
||||
"react-swipeable": "^7.0.1",
|
||||
"redoc": "^2.2.0",
|
||||
"react-redux": "^9.2.0",
|
||||
"react-router-dom": "^7.6.1",
|
||||
"react-swipeable": "^7.0.2",
|
||||
"redoc": "^2.5.0",
|
||||
"style-to-object": "^1.0.8",
|
||||
"throttle-debounce": "^5.0.2",
|
||||
"tinycon": "^0.6.8",
|
||||
"tss-react": "^4.9.13",
|
||||
"tss-react": "^4.9.18",
|
||||
"websocket-heartbeat-js": "^1.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "^1.9.4",
|
||||
"@lingui/cli": "^4.13.0",
|
||||
"@lingui/vite-plugin": "^4.13.0",
|
||||
"@lingui/babel-plugin-lingui-macro": "^5.3.1",
|
||||
"@lingui/cli": "^5.3.1",
|
||||
"@lingui/vite-plugin": "^5.3.1",
|
||||
"@testing-library/jest-dom": "^6.6.3",
|
||||
"@testing-library/react": "^16.3.0",
|
||||
"@testing-library/user-event": "^14.6.1",
|
||||
"@types/mousetrap": "^1.6.15",
|
||||
"@types/react": "^18.3.12",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"@types/react-helmet": "^6.1.11",
|
||||
"@types/react": "^19.1.6",
|
||||
"@types/react-dom": "^19.1.5",
|
||||
"@types/react-infinite-scroller": "^1.2.5",
|
||||
"@types/swagger-ui-react": "^4.18.3",
|
||||
"@types/throttle-debounce": "^5.0.2",
|
||||
"@types/tinycon": "^0.6.5",
|
||||
"@vitejs/plugin-react": "^4.3.3",
|
||||
"@types/tinycon": "^0.6.7",
|
||||
"@vitejs/plugin-react": "^4.5.0",
|
||||
"babel-plugin-macros": "^3.1.0",
|
||||
"jsdom": "^25.0.1",
|
||||
"rollup-plugin-visualizer": "^5.12.0",
|
||||
"typescript": "^5.6.3",
|
||||
"vite": "^5.4.10",
|
||||
"vite-plugin-checker": "^0.8.0",
|
||||
"vite-tsconfig-paths": "^5.0.1",
|
||||
"vitest": "^2.1.3",
|
||||
"vitest-mock-extended": "^2.0.2"
|
||||
"babel-plugin-react-compiler": "^19.1.0-rc.2",
|
||||
"jsdom": "^26.1.0",
|
||||
"rollup-plugin-visualizer": "^6.0.0",
|
||||
"typescript": "^5.8.3",
|
||||
"vite": "^6.3.5",
|
||||
"vite-plugin-checker": "^0.9.3",
|
||||
"vite-tsconfig-paths": "^5.1.4",
|
||||
"vitest": "^3.1.4"
|
||||
},
|
||||
"overrides": {
|
||||
"react-infinite-scroller": {
|
||||
"react": "^19.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,96 +1,97 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.commafeed</groupId>
|
||||
<artifactId>commafeed</artifactId>
|
||||
<version>5.3.4</version>
|
||||
</parent>
|
||||
<artifactId>commafeed-client</artifactId>
|
||||
<name>CommaFeed Client</name>
|
||||
|
||||
<properties>
|
||||
<!-- renovate: datasource=node-version depName=node -->
|
||||
<node.version>v20.18.0</node.version>
|
||||
<!-- renovate: datasource=npm depName=npm -->
|
||||
<npm.version>10.9.0</npm.version>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.eirslett</groupId>
|
||||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<version>1.15.1</version>
|
||||
<?m2e ignore?>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>install node and npm</id>
|
||||
<goals>
|
||||
<goal>install-node-and-npm</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<nodeVersion>${node.version}</nodeVersion>
|
||||
<npmVersion>${npm.version}</npmVersion>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm install</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<arguments>ci</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm run test</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<arguments>run test:ci</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm run build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.3.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy web interface to resources</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/classes/META-INF/resources</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>dist</directory>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>com.commafeed</groupId>
|
||||
<artifactId>commafeed</artifactId>
|
||||
<version>5.10.0</version>
|
||||
</parent>
|
||||
<artifactId>commafeed-client</artifactId>
|
||||
<name>CommaFeed Client</name>
|
||||
|
||||
<properties>
|
||||
<!-- renovate: datasource=node-version depName=node -->
|
||||
<node.version>v22.16.0</node.version>
|
||||
<!-- renovate: datasource=npm depName=npm -->
|
||||
<npm.version>11.4.1</npm.version>
|
||||
</properties>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.eirslett</groupId>
|
||||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<version>1.15.1</version>
|
||||
<?m2e ignore?>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>install node and npm</id>
|
||||
<goals>
|
||||
<goal>install-node-and-npm</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<nodeVersion>${node.version}</nodeVersion>
|
||||
<npmVersion>${npm.version}</npmVersion>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm install</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<arguments>ci</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm run test</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<arguments>run test:ci</arguments>
|
||||
<skip>${skipTests}</skip>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>npm run build</id>
|
||||
<goals>
|
||||
<goal>npm</goal>
|
||||
</goals>
|
||||
<phase>compile</phase>
|
||||
<configuration>
|
||||
<arguments>run build</arguments>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.3.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>copy web interface to resources</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/classes/META-INF/resources</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>dist</directory>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -12,6 +12,7 @@ import { DisablePullToRefresh } from "components/DisablePullToRefresh"
|
||||
import { ErrorBoundary } from "components/ErrorBoundary"
|
||||
import { Header } from "components/header/Header"
|
||||
import { Tree } from "components/sidebar/Tree"
|
||||
import { useAppLoading } from "hooks/useAppLoading"
|
||||
import { useBrowserExtension } from "hooks/useBrowserExtension"
|
||||
import { useI18n } from "i18n"
|
||||
import { WelcomePage } from "pages/WelcomePage"
|
||||
@@ -29,20 +30,20 @@ import { TagDetailsPage } from "pages/app/TagDetailsPage"
|
||||
import { LoginPage } from "pages/auth/LoginPage"
|
||||
import { PasswordRecoveryPage } from "pages/auth/PasswordRecoveryPage"
|
||||
import { RegistrationPage } from "pages/auth/RegistrationPage"
|
||||
import React, { useEffect } from "react"
|
||||
import React, { useEffect, useState } from "react"
|
||||
import { isSafari } from "react-device-detect"
|
||||
import ReactGA from "react-ga4"
|
||||
import { Helmet } from "react-helmet"
|
||||
import { HashRouter, Navigate, Route, Routes, useLocation, useNavigate } from "react-router-dom"
|
||||
import Tinycon from "tinycon"
|
||||
|
||||
function Providers(props: { children: React.ReactNode }) {
|
||||
const primaryColor = useAppSelector(state => state.user.settings?.primaryColor) || Constants.theme.defaultPrimaryColor
|
||||
return (
|
||||
<I18nProvider i18n={i18n}>
|
||||
<MantineProvider
|
||||
defaultColorScheme="auto"
|
||||
theme={{
|
||||
primaryColor: "orange",
|
||||
primaryColor: primaryColor,
|
||||
fontFamily: "Open Sans",
|
||||
colors: {
|
||||
// keep using dark colors from mantine v6
|
||||
@@ -142,11 +143,15 @@ function GoogleAnalyticsHandler() {
|
||||
return null
|
||||
}
|
||||
|
||||
function UnreadCountTitleHandler({ unreadCount, enabled }: { unreadCount: number; enabled?: boolean }) {
|
||||
return <Helmet title={enabled && unreadCount > 0 ? `(${unreadCount}) CommaFeed` : "CommaFeed"} />
|
||||
function UnreadCountTitleHandler({ enabled }: { enabled?: boolean }) {
|
||||
const root = useAppSelector(state => state.tree.rootCategory)
|
||||
const unreadCount = categoryUnreadCount(root)
|
||||
return <title>{enabled && unreadCount > 0 ? `(${unreadCount}) CommaFeed` : "CommaFeed"}</title>
|
||||
}
|
||||
|
||||
function UnreadCountFaviconHandler({ unreadCount, enabled }: { unreadCount: number; enabled?: boolean }) {
|
||||
function UnreadCountFaviconHandler({ enabled }: { enabled?: boolean }) {
|
||||
const root = useAppSelector(state => state.tree.rootCategory)
|
||||
const unreadCount = categoryUnreadCount(root)
|
||||
useEffect(() => {
|
||||
if (enabled && unreadCount > 0) {
|
||||
Tinycon.setBubble(unreadCount)
|
||||
@@ -170,24 +175,44 @@ function BrowserExtensionBadgeUnreadCountHandler() {
|
||||
return null
|
||||
}
|
||||
|
||||
function CustomCode() {
|
||||
return (
|
||||
<Helmet>
|
||||
<link rel="stylesheet" type="text/css" href="custom_css.css" />
|
||||
<script type="text/javascript" src="custom_js.js" />
|
||||
</Helmet>
|
||||
)
|
||||
function CustomJsHandler() {
|
||||
const [scriptLoaded, setScriptLoaded] = useState(false)
|
||||
const { loading } = useAppLoading()
|
||||
|
||||
useEffect(() => {
|
||||
if (scriptLoaded || loading) {
|
||||
return
|
||||
}
|
||||
|
||||
const script = document.createElement("script")
|
||||
script.src = "custom_js.js"
|
||||
script.async = true
|
||||
document.body.appendChild(script)
|
||||
|
||||
setScriptLoaded(true)
|
||||
}, [scriptLoaded, loading])
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
function CustomCssHandler() {
|
||||
useEffect(() => {
|
||||
const link = document.createElement("link")
|
||||
link.rel = "stylesheet"
|
||||
link.type = "text/css"
|
||||
link.href = "custom_css.css"
|
||||
document.head.appendChild(link)
|
||||
}, [])
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
export function App() {
|
||||
useI18n()
|
||||
const root = useAppSelector(state => state.tree.rootCategory)
|
||||
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
|
||||
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
|
||||
const dispatch = useAppDispatch()
|
||||
|
||||
const unreadCount = categoryUnreadCount(root)
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(reloadServerInfos())
|
||||
}, [dispatch])
|
||||
@@ -195,19 +220,22 @@ export function App() {
|
||||
return (
|
||||
<Providers>
|
||||
<>
|
||||
<UnreadCountTitleHandler unreadCount={unreadCount} enabled={unreadCountTitle} />
|
||||
<UnreadCountFaviconHandler unreadCount={unreadCount} enabled={unreadCountFavicon} />
|
||||
<UnreadCountTitleHandler enabled={unreadCountTitle} />
|
||||
<UnreadCountFaviconHandler enabled={unreadCountFavicon} />
|
||||
<BrowserExtensionBadgeUnreadCountHandler />
|
||||
<CustomJsHandler />
|
||||
<CustomCssHandler />
|
||||
|
||||
{/* disable pull-to-refresh as it messes with vertical scrolling
|
||||
safari behaves weirdly when overscroll-behavior is set to none so we disable it only for other browsers
|
||||
https://github.com/Athou/commafeed/issues/1168
|
||||
*/}
|
||||
{!isSafari && <DisablePullToRefresh />}
|
||||
|
||||
<HashRouter>
|
||||
<GoogleAnalyticsHandler />
|
||||
<RedirectHandler />
|
||||
<AppRoutes />
|
||||
<CustomCode />
|
||||
{/* disable pull-to-refresh as it messes with vertical scrolling
|
||||
safari behaves weirdly when overscroll-behavior is set to none so we disable it only for other browsers
|
||||
https://github.com/Athou/commafeed/issues/1168
|
||||
*/}
|
||||
{!isSafari && <DisablePullToRefresh />}
|
||||
</HashRouter>
|
||||
</>
|
||||
</Providers>
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
import { t } from "@lingui/macro"
|
||||
import type { IconType } from "react-icons"
|
||||
import { FaAt } from "react-icons/fa"
|
||||
import { SiBuffer, SiFacebook, SiGmail, SiInstapaper, SiPocket, SiTumblr, SiX } from "react-icons/si"
|
||||
import type { Category, Entry, SharingSettings } from "./types"
|
||||
|
||||
const categories: Record<string, Category> = {
|
||||
const categories: Record<string, Omit<Category, "name">> = {
|
||||
all: {
|
||||
id: "all",
|
||||
name: t`All`,
|
||||
expanded: false,
|
||||
children: [],
|
||||
feeds: [],
|
||||
@@ -15,7 +13,6 @@ const categories: Record<string, Category> = {
|
||||
},
|
||||
starred: {
|
||||
id: "starred",
|
||||
name: t`Starred`,
|
||||
expanded: false,
|
||||
children: [],
|
||||
feeds: [],
|
||||
@@ -104,9 +101,13 @@ export const Constants = {
|
||||
entryId: (entry: Entry) => `entry-id-${entry.id}`,
|
||||
entryContextMenuId: (entry: Entry) => entry.id,
|
||||
},
|
||||
theme: {
|
||||
defaultPrimaryColor: "orange",
|
||||
},
|
||||
tooltip: {
|
||||
delay: 500,
|
||||
},
|
||||
browserExtensionUrl: "https://github.com/Athou/commafeed-browser-extension",
|
||||
customCssDocumentationUrl: "https://athou.github.io/commafeed/documentation/custom-css",
|
||||
bitcoinWalletAddress: "1dymfUxqCWpyD7a6rQSqNy4rLVDBsAr5e",
|
||||
}
|
||||
|
||||
@@ -1,25 +1,20 @@
|
||||
import { configureStore } from "@reduxjs/toolkit"
|
||||
import type { client } from "app/client"
|
||||
import { client } from "app/client"
|
||||
import { loadEntries, loadMoreEntries, markAllEntries, markEntry } from "app/entries/thunks"
|
||||
import { type RootState, reducers } from "app/store"
|
||||
import type { Entries, Entry } from "app/types"
|
||||
import type { AxiosResponse } from "axios"
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest"
|
||||
import { any, mockReset } from "vitest-mock-extended"
|
||||
|
||||
const mockClient = await vi.hoisted(async () => {
|
||||
const mockModule = await import("vitest-mock-extended")
|
||||
return mockModule.mockDeep<typeof client>()
|
||||
})
|
||||
vi.mock("app/client", () => ({ client: mockClient }))
|
||||
vi.mock(import("app/client"))
|
||||
|
||||
describe("entries", () => {
|
||||
beforeEach(() => {
|
||||
mockReset(mockClient)
|
||||
vi.resetAllMocks()
|
||||
})
|
||||
|
||||
it("loads entries", async () => {
|
||||
mockClient.feed.getEntries.calledWith(any()).mockResolvedValue({
|
||||
vi.mocked(client.feed.getEntries).mockResolvedValue({
|
||||
data: {
|
||||
entries: [{ id: "3" } as Entry],
|
||||
hasMore: false,
|
||||
@@ -53,7 +48,7 @@ describe("entries", () => {
|
||||
})
|
||||
|
||||
it("loads more entries", async () => {
|
||||
mockClient.category.getEntries.calledWith(any()).mockResolvedValue({
|
||||
vi.mocked(client.category.getEntries).mockResolvedValue({
|
||||
data: {
|
||||
entries: [{ id: "4" } as Entry],
|
||||
hasMore: false,
|
||||
@@ -113,7 +108,7 @@ describe("entries", () => {
|
||||
{ id: "3", read: true },
|
||||
{ id: "4", read: false },
|
||||
])
|
||||
expect(mockClient.entry.mark).toHaveBeenCalledWith({ id: "3", read: true })
|
||||
expect(client.entry.mark).toHaveBeenCalledWith({ id: "3", read: true })
|
||||
})
|
||||
|
||||
it("marks all entries as read", () => {
|
||||
@@ -140,6 +135,6 @@ describe("entries", () => {
|
||||
{ id: "3", read: true },
|
||||
{ id: "4", read: true },
|
||||
])
|
||||
expect(mockClient.category.markEntries).toHaveBeenCalledWith({ id: "all", read: true })
|
||||
expect(client.category.markEntries).toHaveBeenCalledWith({ id: "all", read: true })
|
||||
})
|
||||
})
|
||||
|
||||
@@ -28,6 +28,7 @@ interface EntriesState {
|
||||
loading: boolean
|
||||
search?: string
|
||||
scrollingToEntry: boolean
|
||||
markAllAsReadConfirmationDialogOpen: boolean
|
||||
}
|
||||
|
||||
const initialState: EntriesState = {
|
||||
@@ -41,6 +42,7 @@ const initialState: EntriesState = {
|
||||
hasMore: true,
|
||||
loading: false,
|
||||
scrollingToEntry: false,
|
||||
markAllAsReadConfirmationDialogOpen: false,
|
||||
}
|
||||
|
||||
export const entriesSlice = createSlice({
|
||||
@@ -61,6 +63,9 @@ export const entriesSlice = createSlice({
|
||||
setSearch: (state, action: PayloadAction<string>) => {
|
||||
state.search = action.payload
|
||||
},
|
||||
setMarkAllAsReadConfirmationDialogOpen: (state, action: PayloadAction<boolean>) => {
|
||||
state.markAllAsReadConfirmationDialogOpen = action.payload
|
||||
},
|
||||
},
|
||||
extraReducers: builder => {
|
||||
builder.addCase(markEntry.pending, (state, action) => {
|
||||
@@ -119,4 +124,4 @@ export const entriesSlice = createSlice({
|
||||
},
|
||||
})
|
||||
|
||||
export const { setSearch } = entriesSlice.actions
|
||||
export const { setSearch, setMarkAllAsReadConfirmationDialogOpen } = entriesSlice.actions
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { createAppAsyncThunk } from "app/async-thunk"
|
||||
import { client } from "app/client"
|
||||
import { Constants } from "app/constants"
|
||||
import { type EntrySource, type EntrySourceType, entriesSlice, setSearch } from "app/entries/slice"
|
||||
import { type EntrySource, type EntrySourceType, entriesSlice, setMarkAllAsReadConfirmationDialogOpen, setSearch } from "app/entries/slice"
|
||||
import type { RootState } from "app/store"
|
||||
import { reloadTree } from "app/tree/thunks"
|
||||
import type { Entry, MarkRequest, TagRequest } from "app/types"
|
||||
@@ -11,6 +11,7 @@ import { flushSync } from "react-dom"
|
||||
|
||||
const getEndpoint = (sourceType: EntrySourceType) =>
|
||||
sourceType === "category" || sourceType === "tag" ? client.category.getEntries : client.feed.getEntries
|
||||
|
||||
export const loadEntries = createAppAsyncThunk(
|
||||
"entries/load",
|
||||
async (
|
||||
@@ -28,6 +29,7 @@ export const loadEntries = createAppAsyncThunk(
|
||||
return result.data
|
||||
}
|
||||
)
|
||||
|
||||
export const loadMoreEntries = createAppAsyncThunk("entries/loadMore", async (_, thunkApi) => {
|
||||
const state = thunkApi.getState()
|
||||
const { source } = state.entries
|
||||
@@ -37,6 +39,7 @@ export const loadMoreEntries = createAppAsyncThunk("entries/loadMore", async (_,
|
||||
const result = await endpoint(buildGetEntriesPaginatedRequest(state, source, offset))
|
||||
return result.data
|
||||
})
|
||||
|
||||
const buildGetEntriesPaginatedRequest = (state: RootState, source: EntrySource, offset: number) => ({
|
||||
id: source.type === "tag" ? Constants.categories.all.id : source.id,
|
||||
order: state.user.settings?.readingOrder,
|
||||
@@ -46,15 +49,18 @@ const buildGetEntriesPaginatedRequest = (state: RootState, source: EntrySource,
|
||||
tag: source.type === "tag" ? source.id : undefined,
|
||||
keywords: state.entries.search,
|
||||
})
|
||||
export const reloadEntries = createAppAsyncThunk("entries/reload", (arg, thunkApi) => {
|
||||
|
||||
export const reloadEntries = createAppAsyncThunk("entries/reload", (_, thunkApi) => {
|
||||
const state = thunkApi.getState()
|
||||
thunkApi.dispatch(loadEntries({ source: state.entries.source, clearSearch: false }))
|
||||
})
|
||||
|
||||
export const search = createAppAsyncThunk("entries/search", (arg: string, thunkApi) => {
|
||||
const state = thunkApi.getState()
|
||||
thunkApi.dispatch(setSearch(arg))
|
||||
thunkApi.dispatch(loadEntries({ source: state.entries.source, clearSearch: false }))
|
||||
})
|
||||
|
||||
export const markEntry = createAppAsyncThunk(
|
||||
"entries/entry/mark",
|
||||
(arg: { entry: Entry; read: boolean }) => {
|
||||
@@ -67,6 +73,7 @@ export const markEntry = createAppAsyncThunk(
|
||||
condition: arg => arg.entry.markable && arg.entry.read !== arg.read,
|
||||
}
|
||||
)
|
||||
|
||||
export const markMultipleEntries = createAppAsyncThunk(
|
||||
"entries/entry/markMultiple",
|
||||
async (
|
||||
@@ -84,6 +91,7 @@ export const markMultipleEntries = createAppAsyncThunk(
|
||||
thunkApi.dispatch(reloadTree())
|
||||
}
|
||||
)
|
||||
|
||||
export const markEntriesUpToEntry = createAppAsyncThunk("entries/entry/upToEntry", (arg: Entry, thunkApi) => {
|
||||
const state = thunkApi.getState()
|
||||
const { entries } = state.entries
|
||||
@@ -98,6 +106,7 @@ export const markEntriesUpToEntry = createAppAsyncThunk("entries/entry/upToEntry
|
||||
})
|
||||
)
|
||||
})
|
||||
|
||||
export const markAllEntries = createAppAsyncThunk(
|
||||
"entries/entry/markAll",
|
||||
async (
|
||||
@@ -113,6 +122,33 @@ export const markAllEntries = createAppAsyncThunk(
|
||||
thunkApi.dispatch(reloadTree())
|
||||
}
|
||||
)
|
||||
|
||||
export const markAllAsReadWithConfirmationIfRequired = createAppAsyncThunk(
|
||||
"entries/entry/markAllAsReadWithConfirmationIfRequired",
|
||||
async (_, thunkApi) => {
|
||||
const state = thunkApi.getState()
|
||||
const source = state.entries.source
|
||||
const entriesTimestamp = state.entries.timestamp ?? Date.now()
|
||||
const markAllAsReadConfirmation = state.user.settings?.markAllAsReadConfirmation
|
||||
|
||||
if (markAllAsReadConfirmation) {
|
||||
thunkApi.dispatch(setMarkAllAsReadConfirmationDialogOpen(true))
|
||||
} else {
|
||||
thunkApi.dispatch(
|
||||
markAllEntries({
|
||||
sourceType: source.type,
|
||||
req: {
|
||||
id: source.id,
|
||||
read: true,
|
||||
olderThan: Date.now(),
|
||||
insertedBefore: entriesTimestamp,
|
||||
},
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
export const starEntry = createAppAsyncThunk(
|
||||
"entries/entry/star",
|
||||
(arg: { entry: Entry; starred: boolean }) => {
|
||||
@@ -126,6 +162,7 @@ export const starEntry = createAppAsyncThunk(
|
||||
condition: arg => arg.entry.markable && arg.entry.starred !== arg.starred,
|
||||
}
|
||||
)
|
||||
|
||||
export const selectEntry = createAppAsyncThunk(
|
||||
"entries/entry/select",
|
||||
(
|
||||
@@ -191,6 +228,7 @@ export const selectEntry = createAppAsyncThunk(
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
const scrollToEntry = (entryElement: HTMLElement, margin: number, scrollSpeed: number | undefined, onScrollEnded: () => void) => {
|
||||
const header = document.getElementById(Constants.dom.headerId)?.getBoundingClientRect()
|
||||
const offset = (header?.bottom ?? 0) + margin
|
||||
@@ -228,6 +266,7 @@ export const selectPreviousEntry = createAppAsyncThunk(
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
export const selectNextEntry = createAppAsyncThunk(
|
||||
"entries/entry/selectNext",
|
||||
async (
|
||||
@@ -261,6 +300,7 @@ export const selectNextEntry = createAppAsyncThunk(
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
export const tagEntry = createAppAsyncThunk("entries/entry/tag", async (arg: TagRequest, thunkApi) => {
|
||||
await client.entry.tag(arg)
|
||||
thunkApi.dispatch(reloadTags())
|
||||
|
||||
@@ -3,43 +3,55 @@ import { Constants } from "app/constants"
|
||||
import { redirectTo } from "app/redirect/slice"
|
||||
|
||||
export const redirectToLogin = createAppAsyncThunk("redirect/login", (_, thunkApi) => thunkApi.dispatch(redirectTo("/login")))
|
||||
|
||||
export const redirectToRegistration = createAppAsyncThunk("redirect/register", (_, thunkApi) => thunkApi.dispatch(redirectTo("/register")))
|
||||
export const redirectToPasswordRecovery = createAppAsyncThunk("redirect/passwordRecovery", (_, thunkApi) =>
|
||||
thunkApi.dispatch(redirectTo("/passwordRecovery"))
|
||||
)
|
||||
|
||||
export const redirectToApiDocumentation = createAppAsyncThunk("redirect/api", (_, thunkApi) => thunkApi.dispatch(redirectTo("/api")))
|
||||
|
||||
export const redirectToSelectedSource = createAppAsyncThunk("redirect/selectedSource", (_, thunkApi) => {
|
||||
const { source } = thunkApi.getState().entries
|
||||
thunkApi.dispatch(redirectTo(`/app/${source.type}/${source.id}`))
|
||||
})
|
||||
|
||||
export const redirectToCategory = createAppAsyncThunk("redirect/category", (id: string, thunkApi) =>
|
||||
thunkApi.dispatch(redirectTo(`/app/category/${id}`))
|
||||
)
|
||||
|
||||
export const redirectToRootCategory = createAppAsyncThunk(
|
||||
"redirect/category/root",
|
||||
async (_, thunkApi) => await thunkApi.dispatch(redirectToCategory(Constants.categories.all.id))
|
||||
)
|
||||
|
||||
export const redirectToCategoryDetails = createAppAsyncThunk("redirect/category/details", (id: string, thunkApi) =>
|
||||
thunkApi.dispatch(redirectTo(`/app/category/${id}/details`))
|
||||
)
|
||||
|
||||
export const redirectToFeed = createAppAsyncThunk("redirect/feed", (id: string | number, thunkApi) =>
|
||||
thunkApi.dispatch(redirectTo(`/app/feed/${id}`))
|
||||
)
|
||||
|
||||
export const redirectToFeedDetails = createAppAsyncThunk("redirect/feed/details", (id: string, thunkApi) =>
|
||||
thunkApi.dispatch(redirectTo(`/app/feed/${id}/details`))
|
||||
)
|
||||
|
||||
export const redirectToTag = createAppAsyncThunk("redirect/tag", (id: string, thunkApi) => thunkApi.dispatch(redirectTo(`/app/tag/${id}`)))
|
||||
|
||||
export const redirectToTagDetails = createAppAsyncThunk("redirect/tag/details", (id: string, thunkApi) =>
|
||||
thunkApi.dispatch(redirectTo(`/app/tag/${id}/details`))
|
||||
)
|
||||
|
||||
export const redirectToAdd = createAppAsyncThunk("redirect/add", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/add")))
|
||||
|
||||
export const redirectToSettings = createAppAsyncThunk("redirect/settings", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/settings")))
|
||||
|
||||
export const redirectToAdminUsers = createAppAsyncThunk("redirect/admin/users", (_, thunkApi) =>
|
||||
thunkApi.dispatch(redirectTo("/app/admin/users"))
|
||||
)
|
||||
|
||||
export const redirectToMetrics = createAppAsyncThunk("redirect/admin/metrics", (_, thunkApi) =>
|
||||
thunkApi.dispatch(redirectTo("/app/admin/metrics"))
|
||||
)
|
||||
|
||||
export const redirectToDonate = createAppAsyncThunk("redirect/donate", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/donate")))
|
||||
|
||||
export const redirectToAbout = createAppAsyncThunk("redirect/about", (_, thunkApi) => thunkApi.dispatch(redirectTo("/app/about")))
|
||||
|
||||
@@ -17,19 +17,9 @@ export const reducers = {
|
||||
|
||||
const loadLocalSettings = (): LocalSettings => {
|
||||
const json = localStorage.getItem("commafeed-local-settings")
|
||||
if (json) {
|
||||
return JSON.parse(json)
|
||||
}
|
||||
|
||||
// load old settings
|
||||
const viewMode = localStorage.getItem("view-mode")
|
||||
const sidebarWidth = localStorage.getItem("sidebar-width")
|
||||
const announcementHash = localStorage.getItem("announcement-hash")
|
||||
return {
|
||||
...initialLocalSettings,
|
||||
viewMode: viewMode ? JSON.parse(viewMode) : initialLocalSettings.viewMode,
|
||||
sidebarWidth: sidebarWidth ? JSON.parse(sidebarWidth) : initialLocalSettings.sidebarWidth,
|
||||
announcementHash: announcementHash ? JSON.parse(announcementHash) : initialLocalSettings.announcementHash,
|
||||
...(json ? JSON.parse(json) : {}),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,22 @@
|
||||
import { type PayloadAction, createSlice } from "@reduxjs/toolkit"
|
||||
import { markEntry } from "app/entries/thunks"
|
||||
import { loadEntries, markEntry } from "app/entries/thunks"
|
||||
import { redirectTo } from "app/redirect/slice"
|
||||
import { collapseTreeCategory, reloadTree } from "app/tree/thunks"
|
||||
import type { Category } from "app/types"
|
||||
import { visitCategoryTree } from "app/utils"
|
||||
import type { Category, Subscription } from "app/types"
|
||||
import { flattenCategoryTree, visitCategoryTree } from "app/utils"
|
||||
|
||||
export interface TreeSubscription extends Subscription {
|
||||
// client-side only flag
|
||||
hasNewEntries?: boolean
|
||||
}
|
||||
|
||||
export interface TreeCategory extends Category {
|
||||
feeds: TreeSubscription[]
|
||||
children: TreeCategory[]
|
||||
}
|
||||
|
||||
interface TreeState {
|
||||
rootCategory?: Category
|
||||
rootCategory?: TreeCategory
|
||||
mobileMenuOpen: boolean
|
||||
sidebarVisible: boolean
|
||||
}
|
||||
@@ -37,12 +47,27 @@ export const treeSlice = createSlice({
|
||||
visitCategoryTree(state.rootCategory, c => {
|
||||
for (const f of c.feeds.filter(f => f.id === action.payload.feedId)) {
|
||||
f.unread += action.payload.amount
|
||||
f.hasNewEntries = true
|
||||
}
|
||||
})
|
||||
},
|
||||
},
|
||||
extraReducers: builder => {
|
||||
builder.addCase(reloadTree.fulfilled, (state, action) => {
|
||||
// set hasNewEntries to true if new unread > previous unread
|
||||
if (state.rootCategory) {
|
||||
const oldFeeds = flattenCategoryTree(state.rootCategory).flatMap(c => c.feeds)
|
||||
const oldFeedsById = new Map(oldFeeds.map(f => [f.id, f]))
|
||||
|
||||
const newFeeds = flattenCategoryTree(action.payload).flatMap(c => c.feeds)
|
||||
for (const newFeed of newFeeds) {
|
||||
const oldFeed = oldFeedsById.get(newFeed.id)
|
||||
if (oldFeed && newFeed.unread > oldFeed.unread) {
|
||||
newFeed.hasNewEntries = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
state.rootCategory = action.payload
|
||||
})
|
||||
builder.addCase(collapseTreeCategory.pending, (state, action) => {
|
||||
@@ -59,6 +84,25 @@ export const treeSlice = createSlice({
|
||||
}
|
||||
})
|
||||
})
|
||||
builder.addCase(loadEntries.fulfilled, (state, action) => {
|
||||
if (!state.rootCategory) return
|
||||
|
||||
const { source } = action.meta.arg
|
||||
if (source.type === "category") {
|
||||
visitCategoryTree(state.rootCategory, c => {
|
||||
if (c.id === source.id) {
|
||||
for (const f of flattenCategoryTree(c).flatMap(c => c.feeds)) {
|
||||
f.hasNewEntries = false
|
||||
}
|
||||
}
|
||||
})
|
||||
} else if (source.type === "feed") {
|
||||
const feeds = flattenCategoryTree(state.rootCategory).flatMap(c => c.feeds)
|
||||
for (const f of feeds.filter(f => f.id === +source.id)) {
|
||||
f.hasNewEntries = false
|
||||
}
|
||||
}
|
||||
})
|
||||
builder.addCase(redirectTo, state => {
|
||||
state.mobileMenuOpen = false
|
||||
})
|
||||
|
||||
@@ -1,9 +1,80 @@
|
||||
import { createAppAsyncThunk } from "app/async-thunk"
|
||||
import { client } from "app/client"
|
||||
import type { CollapseRequest } from "app/types"
|
||||
import { redirectToCategory, redirectToFeed } from "app/redirect/thunks"
|
||||
import { incrementUnreadCount } from "app/tree/slice"
|
||||
import type { CollapseRequest, Subscription } from "app/types"
|
||||
import { flattenCategoryTree, visitCategoryTree } from "app/utils"
|
||||
|
||||
export const reloadTree = createAppAsyncThunk("tree/reload", async () => await client.category.getRoot().then(r => r.data))
|
||||
|
||||
export const collapseTreeCategory = createAppAsyncThunk(
|
||||
"tree/category/collapse",
|
||||
async (req: CollapseRequest) => await client.category.collapse(req)
|
||||
async (req: CollapseRequest) => await client.category.collapse(req).then(r => r.data)
|
||||
)
|
||||
|
||||
export const selectNextUnreadTreeItem = createAppAsyncThunk(
|
||||
"tree/selectNextUnreadItem",
|
||||
(
|
||||
arg: {
|
||||
direction: "forward" | "backward"
|
||||
},
|
||||
thunkApi
|
||||
) => {
|
||||
const state = thunkApi.getState()
|
||||
const root = state.tree.rootCategory
|
||||
if (!root) return
|
||||
|
||||
const { source } = state.entries
|
||||
if (source.type === "category") {
|
||||
const categories = flattenCategoryTree(root)
|
||||
if (arg.direction === "backward") categories.reverse()
|
||||
|
||||
const index = categories.findIndex(c => c.id === source.id)
|
||||
if (index === -1) return
|
||||
|
||||
for (let i = index + 1; i < categories.length; i++) {
|
||||
const c = categories[i]
|
||||
if (c.feeds.some(f => f.unread > 0)) {
|
||||
return thunkApi.dispatch(redirectToCategory(String(c.id)))
|
||||
}
|
||||
}
|
||||
} else if (source.type === "feed") {
|
||||
const feeds: Subscription[] = []
|
||||
visitCategoryTree(root, c => feeds.push(...c.feeds), { childrenFirst: true })
|
||||
if (arg.direction === "backward") feeds.reverse()
|
||||
|
||||
const index = feeds.findIndex(f => f.id === +source.id)
|
||||
if (index === -1) return
|
||||
|
||||
for (let i = index + 1; i < feeds.length; i++) {
|
||||
const f = feeds[i]
|
||||
if (f.unread > 0) {
|
||||
return thunkApi.dispatch(redirectToFeed(String(f.id)))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
export const newFeedEntriesDiscovered = createAppAsyncThunk(
|
||||
"tree/new-feed-entries-discovered",
|
||||
async ({ feedId, amount }: { feedId: number; amount: number }, thunkApi) => {
|
||||
const root = thunkApi.getState().tree.rootCategory
|
||||
if (!root) return
|
||||
|
||||
const feed = flattenCategoryTree(root)
|
||||
.flatMap(c => c.feeds)
|
||||
.some(f => f.id === feedId)
|
||||
if (!feed) {
|
||||
// feed not found in the tree, reload the tree completely
|
||||
thunkApi.dispatch(reloadTree())
|
||||
} else {
|
||||
thunkApi.dispatch(
|
||||
incrementUnreadCount({
|
||||
feedId,
|
||||
amount,
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
172
commafeed-client/src/app/tree/tree.test.ts
Normal file
172
commafeed-client/src/app/tree/tree.test.ts
Normal file
@@ -0,0 +1,172 @@
|
||||
import { configureStore } from "@reduxjs/toolkit"
|
||||
import { client } from "app/client"
|
||||
import { loadEntries } from "app/entries/thunks"
|
||||
import { type RootState, reducers } from "app/store"
|
||||
import { newFeedEntriesDiscovered, selectNextUnreadTreeItem } from "app/tree/thunks"
|
||||
import type { Category, Entries, Entry, Subscription } from "app/types"
|
||||
import type { AxiosResponse } from "axios"
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest"
|
||||
|
||||
vi.mock(import("app/client"))
|
||||
|
||||
const createCategory = (id: string): Category => ({
|
||||
id,
|
||||
name: id,
|
||||
children: [],
|
||||
feeds: [],
|
||||
expanded: true,
|
||||
position: 0,
|
||||
})
|
||||
|
||||
const createFeed = (id: number, unread: number): Subscription => ({
|
||||
id,
|
||||
name: String(id),
|
||||
unread,
|
||||
errorCount: 0,
|
||||
position: 0,
|
||||
feedUrl: "",
|
||||
feedLink: "",
|
||||
iconUrl: "",
|
||||
})
|
||||
|
||||
const root = createCategory("root")
|
||||
|
||||
const catA = createCategory("catA")
|
||||
catA.feeds.push(createFeed(1, 0), createFeed(2, 0), createFeed(3, 1))
|
||||
|
||||
const catB = createCategory("catB")
|
||||
|
||||
const catC = createCategory("catC")
|
||||
catC.feeds.push(createFeed(4, 1))
|
||||
|
||||
root.children.push(catA, catB, catC)
|
||||
|
||||
describe("selectNextUnreadTreeItem", () => {
|
||||
it("selects the next unread category", async () => {
|
||||
const store = configureStore({
|
||||
reducer: reducers,
|
||||
preloadedState: {
|
||||
tree: {
|
||||
rootCategory: root,
|
||||
},
|
||||
entries: {
|
||||
source: {
|
||||
type: "category",
|
||||
id: "catA",
|
||||
},
|
||||
},
|
||||
} as RootState,
|
||||
})
|
||||
|
||||
await store.dispatch(selectNextUnreadTreeItem({ direction: "forward" }))
|
||||
expect(store.getState().redirect.to).toBe("/app/category/catC")
|
||||
})
|
||||
|
||||
it("selects the previous unread category", async () => {
|
||||
const store = configureStore({
|
||||
reducer: reducers,
|
||||
preloadedState: {
|
||||
tree: {
|
||||
rootCategory: root,
|
||||
},
|
||||
entries: {
|
||||
source: {
|
||||
type: "category",
|
||||
id: "catC",
|
||||
},
|
||||
},
|
||||
} as RootState,
|
||||
})
|
||||
|
||||
await store.dispatch(selectNextUnreadTreeItem({ direction: "backward" }))
|
||||
expect(store.getState().redirect.to).toBe("/app/category/catA")
|
||||
})
|
||||
|
||||
it("selects the next unread feed", async () => {
|
||||
const store = configureStore({
|
||||
reducer: reducers,
|
||||
preloadedState: {
|
||||
tree: {
|
||||
rootCategory: root,
|
||||
},
|
||||
entries: {
|
||||
source: {
|
||||
type: "feed",
|
||||
id: "1",
|
||||
},
|
||||
},
|
||||
} as RootState,
|
||||
})
|
||||
|
||||
await store.dispatch(selectNextUnreadTreeItem({ direction: "forward" }))
|
||||
expect(store.getState().redirect.to).toBe("/app/feed/3")
|
||||
})
|
||||
|
||||
it("selects the previous unread feed", async () => {
|
||||
const store = configureStore({
|
||||
reducer: reducers,
|
||||
preloadedState: {
|
||||
tree: {
|
||||
rootCategory: root,
|
||||
},
|
||||
entries: {
|
||||
source: {
|
||||
type: "feed",
|
||||
id: "4",
|
||||
},
|
||||
},
|
||||
} as RootState,
|
||||
})
|
||||
|
||||
await store.dispatch(selectNextUnreadTreeItem({ direction: "backward" }))
|
||||
expect(store.getState().redirect.to).toBe("/app/feed/3")
|
||||
})
|
||||
})
|
||||
|
||||
describe("hasNewEntries", () => {
|
||||
beforeEach(() => {
|
||||
vi.resetAllMocks()
|
||||
})
|
||||
|
||||
it("sets and clear flag for a feed", async () => {
|
||||
vi.mocked(client.feed.getEntries).mockResolvedValue({
|
||||
data: {
|
||||
entries: [{ id: "3" } as Entry],
|
||||
hasMore: false,
|
||||
name: "my-feed",
|
||||
errorCount: 3,
|
||||
feedLink: "https://mysite.com/feed",
|
||||
timestamp: 123,
|
||||
ignoredReadStatus: false,
|
||||
},
|
||||
} as AxiosResponse<Entries>)
|
||||
|
||||
const store = configureStore({
|
||||
reducer: reducers,
|
||||
preloadedState: {
|
||||
tree: {
|
||||
rootCategory: root,
|
||||
},
|
||||
entries: {
|
||||
source: {
|
||||
type: "feed",
|
||||
id: "1",
|
||||
},
|
||||
},
|
||||
} as RootState,
|
||||
})
|
||||
|
||||
// initial state
|
||||
expect(store.getState().tree.rootCategory?.children[0].feeds[0].unread).toBe(0)
|
||||
expect(store.getState().tree.rootCategory?.children[0].feeds[0].hasNewEntries).toBeFalsy()
|
||||
|
||||
// increments unread count and sets hasNewEntries to true
|
||||
await store.dispatch(newFeedEntriesDiscovered({ feedId: 1, amount: 3 }))
|
||||
expect(store.getState().tree.rootCategory?.children[0].feeds[0].unread).toBe(3)
|
||||
expect(store.getState().tree.rootCategory?.children[0].feeds[0].hasNewEntries).toBe(true)
|
||||
|
||||
// reload entries and sets hasNewEntries to false
|
||||
await store.dispatch(loadEntries({ source: { type: "feed", id: "1" }, clearSearch: true }))
|
||||
expect(store.getState().tree.rootCategory?.children[0].feeds[0].hasNewEntries).toBe(false)
|
||||
})
|
||||
})
|
||||
@@ -252,6 +252,7 @@ export interface Settings {
|
||||
mobileFooter: boolean
|
||||
unreadCountTitle: boolean
|
||||
unreadCountFavicon: boolean
|
||||
primaryColor?: string
|
||||
sharingSettings: SharingSettings
|
||||
}
|
||||
|
||||
@@ -259,6 +260,7 @@ export interface LocalSettings {
|
||||
viewMode: ViewMode
|
||||
sidebarWidth: number
|
||||
announcementHash: string
|
||||
fontSizePercentage: number
|
||||
}
|
||||
|
||||
export interface StarRequest {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { t } from "@lingui/macro"
|
||||
import { t } from "@lingui/core/macro"
|
||||
import { showNotification } from "@mantine/notifications"
|
||||
import { type PayloadAction, createSlice, isAnyOf } from "@reduxjs/toolkit"
|
||||
import type { LocalSettings, Settings, UserModel, ViewMode } from "app/types"
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
changeLanguage,
|
||||
changeMarkAllAsReadConfirmation,
|
||||
changeMobileFooter,
|
||||
changePrimaryColor,
|
||||
changeReadingMode,
|
||||
changeReadingOrder,
|
||||
changeScrollMarks,
|
||||
@@ -35,6 +36,7 @@ export const initialLocalSettings: LocalSettings = {
|
||||
viewMode: "detailed",
|
||||
sidebarWidth: 360,
|
||||
announcementHash: "no-hash",
|
||||
fontSizePercentage: 100,
|
||||
}
|
||||
|
||||
const initialState: UserState = {
|
||||
@@ -48,6 +50,9 @@ export const userSlice = createSlice({
|
||||
setViewMode: (state, action: PayloadAction<ViewMode>) => {
|
||||
state.localSettings.viewMode = action.payload
|
||||
},
|
||||
setFontSizePercentage: (state, action: PayloadAction<number>) => {
|
||||
state.localSettings.fontSizePercentage = action.payload
|
||||
},
|
||||
setSidebarWidth: (state, action: PayloadAction<number>) => {
|
||||
state.localSettings.sidebarWidth = action.payload
|
||||
},
|
||||
@@ -125,6 +130,10 @@ export const userSlice = createSlice({
|
||||
if (!state.settings) return
|
||||
state.settings.unreadCountFavicon = action.meta.arg
|
||||
})
|
||||
builder.addCase(changePrimaryColor.pending, (state, action) => {
|
||||
if (!state.settings) return
|
||||
state.settings.primaryColor = action.meta.arg
|
||||
})
|
||||
builder.addCase(changeSharingSetting.pending, (state, action) => {
|
||||
if (!state.settings) return
|
||||
state.settings.sharingSettings[action.meta.arg.site] = action.meta.arg.value
|
||||
@@ -144,6 +153,7 @@ export const userSlice = createSlice({
|
||||
changeMobileFooter.fulfilled,
|
||||
changeUnreadCountTitle.fulfilled,
|
||||
changeUnreadCountFavicon.fulfilled,
|
||||
changePrimaryColor.fulfilled,
|
||||
changeSharingSetting.fulfilled
|
||||
),
|
||||
() => {
|
||||
@@ -156,4 +166,4 @@ export const userSlice = createSlice({
|
||||
},
|
||||
})
|
||||
|
||||
export const { setViewMode, setSidebarWidth, setAnnouncementHash } = userSlice.actions
|
||||
export const { setViewMode, setSidebarWidth, setAnnouncementHash, setFontSizePercentage } = userSlice.actions
|
||||
|
||||
@@ -4,45 +4,55 @@ import { reloadEntries } from "app/entries/thunks"
|
||||
import type { IconDisplayMode, ReadingMode, ReadingOrder, ScrollMode, SharingSettings } from "app/types"
|
||||
|
||||
export const reloadSettings = createAppAsyncThunk("settings/reload", async () => await client.user.getSettings().then(r => r.data))
|
||||
|
||||
export const reloadProfile = createAppAsyncThunk("profile/reload", async () => await client.user.getProfile().then(r => r.data))
|
||||
|
||||
export const reloadTags = createAppAsyncThunk("entries/tags", async () => await client.entry.getTags().then(r => r.data))
|
||||
|
||||
export const changeReadingMode = createAppAsyncThunk("settings/readingMode", (readingMode: ReadingMode, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, readingMode })
|
||||
thunkApi.dispatch(reloadEntries())
|
||||
})
|
||||
|
||||
export const changeReadingOrder = createAppAsyncThunk("settings/readingOrder", (readingOrder: ReadingOrder, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, readingOrder })
|
||||
thunkApi.dispatch(reloadEntries())
|
||||
})
|
||||
|
||||
export const changeLanguage = createAppAsyncThunk("settings/language", (language: string, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, language })
|
||||
})
|
||||
|
||||
export const changeScrollSpeed = createAppAsyncThunk("settings/scrollSpeed", (speed: boolean, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, scrollSpeed: speed ? 400 : 0 })
|
||||
})
|
||||
|
||||
export const changeShowRead = createAppAsyncThunk("settings/showRead", (showRead: boolean, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, showRead })
|
||||
})
|
||||
|
||||
export const changeScrollMarks = createAppAsyncThunk("settings/scrollMarks", (scrollMarks: boolean, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, scrollMarks })
|
||||
})
|
||||
|
||||
export const changeScrollMode = createAppAsyncThunk("settings/scrollMode", (scrollMode: ScrollMode, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, scrollMode })
|
||||
})
|
||||
|
||||
export const changeEntriesToKeepOnTopWhenScrolling = createAppAsyncThunk(
|
||||
"settings/entriesToKeepOnTopWhenScrolling",
|
||||
(entriesToKeepOnTopWhenScrolling: number, thunkApi) => {
|
||||
@@ -51,6 +61,7 @@ export const changeEntriesToKeepOnTopWhenScrolling = createAppAsyncThunk(
|
||||
client.user.saveSettings({ ...settings, entriesToKeepOnTopWhenScrolling })
|
||||
}
|
||||
)
|
||||
|
||||
export const changeStarIconDisplayMode = createAppAsyncThunk(
|
||||
"settings/starIconDisplayMode",
|
||||
(starIconDisplayMode: IconDisplayMode, thunkApi) => {
|
||||
@@ -59,6 +70,7 @@ export const changeStarIconDisplayMode = createAppAsyncThunk(
|
||||
client.user.saveSettings({ ...settings, starIconDisplayMode })
|
||||
}
|
||||
)
|
||||
|
||||
export const changeExternalLinkIconDisplayMode = createAppAsyncThunk(
|
||||
"settings/externalLinkIconDisplayMode",
|
||||
(externalLinkIconDisplayMode: IconDisplayMode, thunkApi) => {
|
||||
@@ -67,6 +79,7 @@ export const changeExternalLinkIconDisplayMode = createAppAsyncThunk(
|
||||
client.user.saveSettings({ ...settings, externalLinkIconDisplayMode })
|
||||
}
|
||||
)
|
||||
|
||||
export const changeMarkAllAsReadConfirmation = createAppAsyncThunk(
|
||||
"settings/markAllAsReadConfirmation",
|
||||
(markAllAsReadConfirmation: boolean, thunkApi) => {
|
||||
@@ -75,26 +88,37 @@ export const changeMarkAllAsReadConfirmation = createAppAsyncThunk(
|
||||
client.user.saveSettings({ ...settings, markAllAsReadConfirmation })
|
||||
}
|
||||
)
|
||||
|
||||
export const changeCustomContextMenu = createAppAsyncThunk("settings/customContextMenu", (customContextMenu: boolean, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, customContextMenu })
|
||||
})
|
||||
|
||||
export const changeMobileFooter = createAppAsyncThunk("settings/mobileFooter", (mobileFooter: boolean, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, mobileFooter })
|
||||
})
|
||||
|
||||
export const changeUnreadCountTitle = createAppAsyncThunk("settings/unreadCountTitle", (unreadCountTitle: boolean, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, unreadCountTitle })
|
||||
})
|
||||
|
||||
export const changeUnreadCountFavicon = createAppAsyncThunk("settings/unreadCountFavicon", (unreadCountFavicon: boolean, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, unreadCountFavicon })
|
||||
})
|
||||
|
||||
export const changePrimaryColor = createAppAsyncThunk("settings/primaryColor", (primaryColor: string, thunkApi) => {
|
||||
const { settings } = thunkApi.getState().user
|
||||
if (!settings) return
|
||||
client.user.saveSettings({ ...settings, primaryColor })
|
||||
})
|
||||
|
||||
export const changeSharingSetting = createAppAsyncThunk(
|
||||
"settings/sharingSetting",
|
||||
(
|
||||
|
||||
@@ -1,20 +1,32 @@
|
||||
import type { TreeCategory } from "app/tree/slice"
|
||||
import { throttle } from "throttle-debounce"
|
||||
import type { Category } from "./types"
|
||||
|
||||
export function visitCategoryTree(category: Category, visitor: (category: Category) => void): void {
|
||||
visitor(category)
|
||||
for (const child of category.children) {
|
||||
visitCategoryTree(child, visitor)
|
||||
export function visitCategoryTree(
|
||||
category: TreeCategory,
|
||||
visitor: (category: TreeCategory) => void,
|
||||
options?: {
|
||||
childrenFirst?: boolean
|
||||
}
|
||||
): void {
|
||||
const childrenFirst = options?.childrenFirst
|
||||
|
||||
if (!childrenFirst) visitor(category)
|
||||
|
||||
for (const child of category.children) {
|
||||
visitCategoryTree(child, visitor, options)
|
||||
}
|
||||
|
||||
if (childrenFirst) visitor(category)
|
||||
}
|
||||
|
||||
export function flattenCategoryTree(category: Category): Category[] {
|
||||
export function flattenCategoryTree(category: TreeCategory): TreeCategory[] {
|
||||
const categories: Category[] = []
|
||||
visitCategoryTree(category, c => categories.push(c))
|
||||
return categories
|
||||
}
|
||||
|
||||
export function categoryUnreadCount(category?: Category): number {
|
||||
export function categoryUnreadCount(category?: TreeCategory): number {
|
||||
if (!category) return 0
|
||||
|
||||
return flattenCategoryTree(category)
|
||||
@@ -23,6 +35,14 @@ export function categoryUnreadCount(category?: Category): number {
|
||||
.reduce((total, current) => total + current, 0)
|
||||
}
|
||||
|
||||
export function categoryHasNewEntries(category?: TreeCategory): boolean {
|
||||
if (!category) return false
|
||||
|
||||
return flattenCategoryTree(category)
|
||||
.flatMap(c => c.feeds)
|
||||
.some(f => f.hasNewEntries)
|
||||
}
|
||||
|
||||
export const calculatePlaceholderSize = ({ width, height, maxWidth }: { width?: number; height?: number; maxWidth: number }) => {
|
||||
const placeholderWidth = width && Math.min(width, maxWidth)
|
||||
const placeholderHeight = height && width && width > maxWidth ? height * (maxWidth / width) : height
|
||||
|
||||
47
commafeed-client/src/components/ActionButton.test.tsx
Normal file
47
commafeed-client/src/components/ActionButton.test.tsx
Normal file
@@ -0,0 +1,47 @@
|
||||
import type { I18nContext } from "@lingui/react"
|
||||
import { MantineProvider } from "@mantine/core"
|
||||
import { fireEvent, render, screen, waitFor } from "@testing-library/react"
|
||||
import { useActionButton } from "hooks/useActionButton"
|
||||
import { describe, expect, it, vi } from "vitest"
|
||||
import { ActionButton } from "./ActionButton"
|
||||
|
||||
vi.mock(import("@lingui/react"), () => ({
|
||||
useLingui: vi.fn().mockReturnValue({
|
||||
_: msg => msg,
|
||||
} as I18nContext),
|
||||
}))
|
||||
vi.mock(import("hooks/useActionButton"))
|
||||
|
||||
const label = "Test Label"
|
||||
const icon = "Test Icon"
|
||||
describe("ActionButton", () => {
|
||||
it("renders Button with label on desktop", () => {
|
||||
vi.mocked(useActionButton).mockReturnValue({ mobile: false, spacing: 0 })
|
||||
|
||||
render(<ActionButton label={label} icon={icon} />, { wrapper: MantineProvider })
|
||||
expect(screen.getByText(label)).toBeInTheDocument()
|
||||
expect(screen.getByText(icon)).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it("renders ActionIcon with tooltip on mobile", async () => {
|
||||
vi.mocked(useActionButton).mockReturnValue({ mobile: true, spacing: 0 })
|
||||
|
||||
render(<ActionButton label={label} icon={icon} />, { wrapper: MantineProvider })
|
||||
expect(screen.queryByText(label)).not.toBeInTheDocument()
|
||||
expect(screen.getByText(icon)).toBeInTheDocument()
|
||||
|
||||
fireEvent.mouseEnter(screen.getByRole("button"))
|
||||
const tooltip = await waitFor(() => screen.getByRole("tooltip"))
|
||||
expect(tooltip).toContainHTML(label)
|
||||
})
|
||||
|
||||
it("calls onClick handler when clicked", () => {
|
||||
vi.mocked(useActionButton).mockReturnValue({ mobile: false, spacing: 0 })
|
||||
const clickListener = vi.fn()
|
||||
|
||||
render(<ActionButton label={label} icon={icon} onClick={clickListener} />, { wrapper: MantineProvider })
|
||||
fireEvent.click(screen.getByRole("button"))
|
||||
|
||||
expect(clickListener).toHaveBeenCalled()
|
||||
})
|
||||
})
|
||||
@@ -1,14 +1,14 @@
|
||||
import type { MessageDescriptor } from "@lingui/core"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { ActionIcon, Button, type ButtonVariant, Tooltip, useMantineTheme } from "@mantine/core"
|
||||
import { ActionIcon, Box, Button, type ButtonVariant, Tooltip, useMantineTheme } from "@mantine/core"
|
||||
import type { ActionIconVariant } from "@mantine/core/lib/components/ActionIcon/ActionIcon"
|
||||
import { Constants } from "app/constants"
|
||||
import { useActionButton } from "hooks/useActionButton"
|
||||
import { type MouseEventHandler, type ReactNode, forwardRef } from "react"
|
||||
|
||||
interface ActionButtonProps {
|
||||
icon: ReactNode
|
||||
className?: string
|
||||
icon?: ReactNode
|
||||
label?: string | MessageDescriptor
|
||||
onClick?: MouseEventHandler
|
||||
variant?: ActionIconVariant & ButtonVariant
|
||||
@@ -19,7 +19,7 @@ interface ActionButtonProps {
|
||||
/**
|
||||
* Switches between Button with label (desktop) and ActionIcon (mobile)
|
||||
*/
|
||||
export const ActionButton = forwardRef<HTMLButtonElement, ActionButtonProps>((props: ActionButtonProps, ref) => {
|
||||
export const ActionButton = forwardRef<HTMLDivElement, ActionButtonProps>((props: ActionButtonProps, ref) => {
|
||||
const { mobile } = useActionButton()
|
||||
const theme = useMantineTheme()
|
||||
const { _ } = useLingui()
|
||||
@@ -27,31 +27,36 @@ export const ActionButton = forwardRef<HTMLButtonElement, ActionButtonProps>((pr
|
||||
const label = typeof props.label === "string" ? props.label : props.label && _(props.label)
|
||||
const variant = props.variant ?? "subtle"
|
||||
const iconOnly = (mobile && !props.showLabelOnMobile) || (!mobile && props.hideLabelOnDesktop)
|
||||
return iconOnly ? (
|
||||
<Tooltip label={label} openDelay={Constants.tooltip.delay}>
|
||||
<ActionIcon
|
||||
ref={ref}
|
||||
color={theme.primaryColor}
|
||||
variant={variant}
|
||||
className={props.className}
|
||||
onClick={props.onClick}
|
||||
aria-label={label}
|
||||
>
|
||||
{props.icon}
|
||||
</ActionIcon>
|
||||
</Tooltip>
|
||||
) : (
|
||||
<Button
|
||||
ref={ref}
|
||||
variant={variant}
|
||||
size="xs"
|
||||
className={props.className}
|
||||
leftSection={props.icon}
|
||||
onClick={props.onClick}
|
||||
aria-label={label}
|
||||
>
|
||||
{label}
|
||||
</Button>
|
||||
|
||||
return (
|
||||
<Box ref={ref} className="cf-action-button">
|
||||
{iconOnly && (
|
||||
<Tooltip label={label} openDelay={Constants.tooltip.delay}>
|
||||
<ActionIcon
|
||||
color={theme.primaryColor}
|
||||
variant={variant}
|
||||
className={props.className}
|
||||
onClick={props.onClick}
|
||||
aria-label={label}
|
||||
>
|
||||
{props.icon}
|
||||
</ActionIcon>
|
||||
</Tooltip>
|
||||
)}
|
||||
{!iconOnly && (
|
||||
<Button
|
||||
variant={variant}
|
||||
size="xs"
|
||||
className={props.className}
|
||||
leftSection={props.icon}
|
||||
onClick={props.onClick}
|
||||
aria-label={label}
|
||||
>
|
||||
{label}
|
||||
</Button>
|
||||
)}
|
||||
</Box>
|
||||
)
|
||||
})
|
||||
|
||||
ActionButton.displayName = "HeaderButton"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Alert as MantineAlert } from "@mantine/core"
|
||||
import { Fragment } from "react"
|
||||
import { TbAlertCircle, TbAlertTriangle, TbCircleCheck } from "react-icons/tb"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Dialog, Text } from "@mantine/core"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
import { setAnnouncementHash } from "app/user/slice"
|
||||
|
||||
4
commafeed-client/src/components/DisablePullToRefresh.css
Normal file
4
commafeed-client/src/components/DisablePullToRefresh.css
Normal file
@@ -0,0 +1,4 @@
|
||||
html,
|
||||
body {
|
||||
overscroll-behavior: none;
|
||||
}
|
||||
@@ -1,15 +1,4 @@
|
||||
import { Helmet } from "react-helmet"
|
||||
|
||||
export const DisablePullToRefresh = () => {
|
||||
return (
|
||||
<Helmet>
|
||||
<style type="text/css">
|
||||
{`
|
||||
html, body {
|
||||
overscroll-behavior: none;
|
||||
}
|
||||
`}
|
||||
</style>
|
||||
</Helmet>
|
||||
)
|
||||
import("./DisablePullToRefresh.css")
|
||||
return <></>
|
||||
}
|
||||
|
||||
@@ -70,7 +70,11 @@ export function ImageWithPlaceholderWhileLoading({
|
||||
width={width}
|
||||
height={height}
|
||||
onLoad={() => setLoading(false)}
|
||||
style={{ ...style, display: loading ? "none" : (style?.display ?? "initial") }}
|
||||
style={{
|
||||
...style,
|
||||
display: loading ? "none" : (style?.display ?? "initial"),
|
||||
height: style?.width ? "auto" : style?.height,
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Anchor, Box, Kbd, Stack, Table } from "@mantine/core"
|
||||
import { useOs } from "@mantine/hooks"
|
||||
import { Constants } from "app/constants"
|
||||
@@ -33,6 +33,26 @@ export function KeyboardShortcutsHelp() {
|
||||
<Kbd>K</Kbd>
|
||||
</Table.Td>
|
||||
</Table.Tr>
|
||||
<Table.Tr>
|
||||
<Table.Td>
|
||||
<Trans>Select next unread feed/category</Trans>
|
||||
</Table.Td>
|
||||
<Table.Td>
|
||||
<Kbd>Shift</Kbd>
|
||||
<span> + </span>
|
||||
<Kbd>J</Kbd>
|
||||
</Table.Td>
|
||||
</Table.Tr>
|
||||
<Table.Tr>
|
||||
<Table.Td>
|
||||
<Trans>Select previous unread feed/category</Trans>
|
||||
</Table.Td>
|
||||
<Table.Td>
|
||||
<Kbd>Shift</Kbd>
|
||||
<span> + </span>
|
||||
<Kbd>K</Kbd>
|
||||
</Table.Td>
|
||||
</Table.Tr>
|
||||
<Table.Tr>
|
||||
<Table.Td>
|
||||
<Trans>Set focus on next entry without opening it</Trans>
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Button, Code, Group, Modal, Slider, Stack, Text } from "@mantine/core"
|
||||
import { setMarkAllAsReadConfirmationDialogOpen } from "app/entries/slice"
|
||||
import { markAllEntries } from "app/entries/thunks"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
import { useState } from "react"
|
||||
|
||||
export function MarkAllAsReadConfirmationDialog() {
|
||||
const [threshold, setThreshold] = useState(0)
|
||||
const open = useAppSelector(state => state.entries.markAllAsReadConfirmationDialogOpen)
|
||||
const source = useAppSelector(state => state.entries.source)
|
||||
const sourceLabel = useAppSelector(state => state.entries.sourceLabel)
|
||||
const entriesTimestamp = useAppSelector(state => state.entries.timestamp) ?? Date.now()
|
||||
const dispatch = useAppDispatch()
|
||||
|
||||
const onConfirm = () => {
|
||||
dispatch(
|
||||
markAllEntries({
|
||||
sourceType: source.type,
|
||||
req: {
|
||||
id: source.id,
|
||||
read: true,
|
||||
olderThan: Date.now() - threshold * 24 * 60 * 60 * 1000,
|
||||
insertedBefore: entriesTimestamp,
|
||||
},
|
||||
})
|
||||
)
|
||||
dispatch(setMarkAllAsReadConfirmationDialogOpen(false))
|
||||
}
|
||||
|
||||
return (
|
||||
<Modal
|
||||
opened={open}
|
||||
onClose={() => dispatch(setMarkAllAsReadConfirmationDialogOpen(false))}
|
||||
title={<Trans>Mark all entries as read</Trans>}
|
||||
>
|
||||
<Stack>
|
||||
<Text size="sm">
|
||||
{threshold === 0 && (
|
||||
<Trans>
|
||||
Are you sure you want to mark all entries of <Code>{sourceLabel}</Code> as read?
|
||||
</Trans>
|
||||
)}
|
||||
{threshold > 0 && (
|
||||
<Trans>
|
||||
Are you sure you want to mark entries older than {threshold} days of <Code>{sourceLabel}</Code> as read?
|
||||
</Trans>
|
||||
)}
|
||||
</Text>
|
||||
<Slider
|
||||
py="xl"
|
||||
min={0}
|
||||
max={28}
|
||||
marks={[
|
||||
{ value: 0, label: "0" },
|
||||
{ value: 7, label: "7" },
|
||||
{ value: 14, label: "14" },
|
||||
{ value: 21, label: "21" },
|
||||
{ value: 28, label: "28" },
|
||||
]}
|
||||
value={threshold}
|
||||
onChange={setThreshold}
|
||||
data-autofocus
|
||||
onKeyDown={e => e.key === "Enter" && onConfirm()}
|
||||
/>
|
||||
<Group justify="flex-end">
|
||||
<Button variant="default" onClick={() => dispatch(setMarkAllAsReadConfirmationDialogOpen(false))}>
|
||||
<Trans>Cancel</Trans>
|
||||
</Button>
|
||||
<Button color="red" onClick={onConfirm}>
|
||||
<Trans>Confirm</Trans>
|
||||
</Button>
|
||||
</Group>
|
||||
</Stack>
|
||||
</Modal>
|
||||
)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Tooltip } from "@mantine/core"
|
||||
import { Constants } from "app/constants"
|
||||
import dayjs from "dayjs"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Button, Checkbox, Group, PasswordInput, Stack, TextInput } from "@mantine/core"
|
||||
import { useForm } from "@mantine/form"
|
||||
import { client, errorToStrings } from "app/client"
|
||||
|
||||
@@ -4,6 +4,7 @@ import { useMobile } from "hooks/useMobile"
|
||||
import type { ReactNode } from "react"
|
||||
|
||||
interface CodeEditorProps {
|
||||
label?: ReactNode
|
||||
description?: ReactNode
|
||||
language: "css" | "javascript"
|
||||
value?: string
|
||||
@@ -19,6 +20,7 @@ export function CodeEditor(props: CodeEditorProps) {
|
||||
autosize
|
||||
minRows={4}
|
||||
maxRows={15}
|
||||
label={props.label}
|
||||
description={props.description}
|
||||
styles={{
|
||||
input: {
|
||||
@@ -29,7 +31,7 @@ export function CodeEditor(props: CodeEditorProps) {
|
||||
onChange={e => props.onChange(e.currentTarget.value)}
|
||||
/>
|
||||
) : (
|
||||
<Input.Wrapper description={props.description}>
|
||||
<Input.Wrapper label={props.label} description={props.description}>
|
||||
<RichCodeEditor height="30vh" language={props.language} value={props.value} onChange={props.onChange} />
|
||||
</Input.Wrapper>
|
||||
)
|
||||
|
||||
26
commafeed-client/src/components/content/Content.test.tsx
Normal file
26
commafeed-client/src/components/content/Content.test.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import { MantineProvider } from "@mantine/core"
|
||||
import { render } from "@testing-library/react"
|
||||
import { Content } from "components/content/Content"
|
||||
import { describe, expect, it } from "vitest"
|
||||
|
||||
describe("Content component", () => {
|
||||
it("renders basic content", () => {
|
||||
const { container } = render(<Content content="<p>Hello World</p>" />, { wrapper: MantineProvider })
|
||||
expect(container.querySelector("p")).toHaveTextContent("Hello World")
|
||||
})
|
||||
|
||||
it("renders highlighted text when highlight prop is provided", () => {
|
||||
const { container } = render(<Content content="Hello World" highlight="World" />, { wrapper: MantineProvider })
|
||||
expect(container.querySelector("mark")).toHaveTextContent("World")
|
||||
})
|
||||
|
||||
it("renders iframe tag when included in content", () => {
|
||||
const { container } = render(<Content content='<iframe src="https://example.com"></iframe>' />, { wrapper: MantineProvider })
|
||||
expect(container.querySelector("iframe")).toHaveAttribute("src", "https://example.com")
|
||||
})
|
||||
|
||||
it("does not render unsupported tags", () => {
|
||||
const { container } = render(<Content content='<script>alert("test")</script>' />, { wrapper: MantineProvider })
|
||||
expect(container.querySelector("script")).toBeNull()
|
||||
})
|
||||
})
|
||||
@@ -4,7 +4,7 @@ import { calculatePlaceholderSize } from "app/utils"
|
||||
import { ImageWithPlaceholderWhileLoading } from "components/ImageWithPlaceholderWhileLoading"
|
||||
import { BasicHtmlStyles } from "components/content/BasicHtmlStyles"
|
||||
import escapeStringRegexp from "escape-string-regexp"
|
||||
import { type ChildrenNode, Interweave, type MatchResponse, Matcher, type Node, type TransformCallback } from "interweave"
|
||||
import { ALLOWED_TAG_LIST, type ChildrenNode, Interweave, type MatchResponse, Matcher, type Node, type TransformCallback } from "interweave"
|
||||
import React from "react"
|
||||
import styleToObject from "style-to-object"
|
||||
import { tss } from "tss"
|
||||
@@ -67,20 +67,19 @@ const transform: TransformCallback = node => {
|
||||
}
|
||||
|
||||
class HighlightMatcher extends Matcher {
|
||||
private readonly search: string
|
||||
private readonly regexp: RegExp
|
||||
|
||||
constructor(search: string) {
|
||||
super("highlight")
|
||||
this.search = escapeStringRegexp(search)
|
||||
this.regexp = new RegExp(escapeStringRegexp(search).split(" ").join("|"), "i")
|
||||
}
|
||||
|
||||
match(string: string): MatchResponse<unknown> | null {
|
||||
const pattern = this.search.split(" ").join("|")
|
||||
return this.doMatch(string, new RegExp(pattern, "i"), () => ({}))
|
||||
return this.doMatch(string, this.regexp, () => ({}))
|
||||
}
|
||||
|
||||
replaceWith(children: ChildrenNode): Node {
|
||||
return <Mark>{children}</Mark>
|
||||
return <Mark key={0}>{children}</Mark>
|
||||
}
|
||||
|
||||
asTag(): string {
|
||||
@@ -88,6 +87,9 @@ class HighlightMatcher extends Matcher {
|
||||
}
|
||||
}
|
||||
|
||||
// allow iframe tag
|
||||
const allowList = [...ALLOWED_TAG_LIST, "iframe"]
|
||||
|
||||
// memoize component because Interweave is costly
|
||||
const Content = React.memo((props: ContentProps) => {
|
||||
const { classes } = useStyles()
|
||||
@@ -96,7 +98,7 @@ const Content = React.memo((props: ContentProps) => {
|
||||
return (
|
||||
<BasicHtmlStyles>
|
||||
<Box className={classes.content}>
|
||||
<Interweave content={props.content} transform={transform} matchers={matchers} />
|
||||
<Interweave content={props.content} transform={transform} matchers={matchers} allowList={allowList} />
|
||||
</Box>
|
||||
</BasicHtmlStyles>
|
||||
)
|
||||
|
||||
@@ -19,7 +19,7 @@ export function Enclosure(props: {
|
||||
)}
|
||||
{hasAudio && (
|
||||
// biome-ignore lint/a11y/useMediaCaption: we don't have any captions for audio
|
||||
<audio controls>
|
||||
<audio controls style={{ width: "100%" }}>
|
||||
<source src={props.enclosureUrl} type={props.enclosureType} />
|
||||
</audio>
|
||||
)}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box } from "@mantine/core"
|
||||
import { openModal } from "@mantine/modals"
|
||||
import { Constants } from "app/constants"
|
||||
import type { ExpendableEntry } from "app/entries/slice"
|
||||
import {
|
||||
loadMoreEntries,
|
||||
markAllEntries,
|
||||
markAllAsReadWithConfirmationIfRequired,
|
||||
markEntry,
|
||||
reloadEntries,
|
||||
selectEntry,
|
||||
@@ -16,6 +16,7 @@ import {
|
||||
import { redirectToRootCategory } from "app/redirect/thunks"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
import { toggleSidebar } from "app/tree/slice"
|
||||
import { selectNextUnreadTreeItem } from "app/tree/thunks"
|
||||
import { KeyboardShortcutsHelp } from "components/KeyboardShortcutsHelp"
|
||||
import { Loader } from "components/Loader"
|
||||
import { useBrowserExtension } from "hooks/useBrowserExtension"
|
||||
@@ -27,9 +28,7 @@ import { throttle } from "throttle-debounce"
|
||||
import { FeedEntry } from "./FeedEntry"
|
||||
|
||||
export function FeedEntries() {
|
||||
const source = useAppSelector(state => state.entries.source)
|
||||
const entries = useAppSelector(state => state.entries.entries)
|
||||
const entriesTimestamp = useAppSelector(state => state.entries.timestamp)
|
||||
const selectedEntryId = useAppSelector(state => state.entries.selectedEntryId)
|
||||
const hasMore = useAppSelector(state => state.entries.hasMore)
|
||||
const loading = useAppSelector(state => state.entries.loading)
|
||||
@@ -172,6 +171,8 @@ export function FeedEntries() {
|
||||
})
|
||||
)
|
||||
)
|
||||
useMousetrap("shift+j", async () => await dispatch(selectNextUnreadTreeItem({ direction: "forward" })))
|
||||
useMousetrap("shift+k", async () => await dispatch(selectNextUnreadTreeItem({ direction: "backward" })))
|
||||
useMousetrap("space", () => {
|
||||
if (selectedEntry) {
|
||||
if (selectedEntry.expanded) {
|
||||
@@ -272,17 +273,7 @@ export function FeedEntries() {
|
||||
})
|
||||
useMousetrap("shift+a", () => {
|
||||
// mark all entries as read
|
||||
dispatch(
|
||||
markAllEntries({
|
||||
sourceType: source.type,
|
||||
req: {
|
||||
id: source.id,
|
||||
read: true,
|
||||
olderThan: Date.now(),
|
||||
insertedBefore: entriesTimestamp,
|
||||
},
|
||||
})
|
||||
)
|
||||
dispatch(markAllAsReadWithConfirmationIfRequired())
|
||||
})
|
||||
useMousetrap("g a", async () => await dispatch(redirectToRootCategory()))
|
||||
useMousetrap("f", () => dispatch(toggleSidebar()))
|
||||
@@ -297,32 +288,25 @@ export function FeedEntries() {
|
||||
return (
|
||||
<InfiniteScroll
|
||||
id="entries"
|
||||
className={`view-mode-${viewMode}`}
|
||||
className={`cf-entries cf-view-mode-${viewMode}`}
|
||||
initialLoad={false}
|
||||
loadMore={async () => await (!loading && dispatch(loadMoreEntries()))}
|
||||
hasMore={hasMore}
|
||||
loader={<Box key={0}>{loading && <Loader />}</Box>}
|
||||
>
|
||||
{entries.map(entry => (
|
||||
<article
|
||||
<FeedEntry
|
||||
key={entry.id}
|
||||
ref={el => {
|
||||
if (el) el.id = Constants.dom.entryId(entry)
|
||||
}}
|
||||
data-id={entry.id}
|
||||
>
|
||||
<FeedEntry
|
||||
entry={entry}
|
||||
expanded={!!entry.expanded || viewMode === "expanded"}
|
||||
selected={entry.id === selectedEntryId}
|
||||
showSelectionIndicator={entry.id === selectedEntryId && (!entry.expanded || viewMode === "expanded")}
|
||||
maxWidth={sidebarVisible ? Constants.layout.entryMaxWidth : undefined}
|
||||
onHeaderClick={event => headerClicked(entry, event)}
|
||||
onHeaderRightClick={event => headerRightClicked(entry, event)}
|
||||
onBodyClick={() => bodyClicked(entry)}
|
||||
onSwipedLeft={async () => await swipedLeft(entry)}
|
||||
/>
|
||||
</article>
|
||||
entry={entry}
|
||||
expanded={!!entry.expanded || viewMode === "expanded"}
|
||||
selected={entry.id === selectedEntryId}
|
||||
showSelectionIndicator={entry.id === selectedEntryId && (!entry.expanded || viewMode === "expanded")}
|
||||
maxWidth={sidebarVisible ? Constants.layout.entryMaxWidth : undefined}
|
||||
onHeaderClick={event => headerClicked(entry, event)}
|
||||
onHeaderRightClick={event => headerRightClicked(entry, event)}
|
||||
onBodyClick={() => bodyClicked(entry)}
|
||||
onSwipedLeft={async () => await swipedLeft(entry)}
|
||||
/>
|
||||
))}
|
||||
</InfiniteScroll>
|
||||
)
|
||||
|
||||
@@ -32,8 +32,9 @@ const useStyles = tss
|
||||
rtl: boolean
|
||||
showSelectionIndicator: boolean
|
||||
maxWidth?: number
|
||||
fontSizePercentage: number
|
||||
}>()
|
||||
.create(({ theme, colorScheme, read, expanded, viewMode, rtl, showSelectionIndicator, maxWidth }) => {
|
||||
.create(({ theme, colorScheme, read, expanded, viewMode, rtl, showSelectionIndicator, maxWidth, fontSizePercentage }) => {
|
||||
let backgroundColor: string
|
||||
if (colorScheme === "dark") {
|
||||
backgroundColor = read ? "inherit" : theme.colors.dark[5]
|
||||
@@ -83,10 +84,12 @@ const useStyles = tss
|
||||
},
|
||||
},
|
||||
headerLink: {
|
||||
fontSize: `${fontSizePercentage}%`,
|
||||
color: "inherit",
|
||||
textDecoration: "none",
|
||||
},
|
||||
body: {
|
||||
fontSize: `${fontSizePercentage}%`,
|
||||
direction: rtl ? "rtl" : "ltr",
|
||||
maxWidth: maxWidth ?? "100%",
|
||||
},
|
||||
@@ -95,6 +98,7 @@ const useStyles = tss
|
||||
|
||||
export function FeedEntry(props: FeedEntryProps) {
|
||||
const viewMode = useAppSelector(state => state.user.localSettings.viewMode)
|
||||
const fontSizePercentage = useAppSelector(state => state.user.localSettings.fontSizePercentage)
|
||||
const { classes, cx } = useStyles({
|
||||
read: props.entry.read,
|
||||
expanded: props.expanded,
|
||||
@@ -102,6 +106,7 @@ export function FeedEntry(props: FeedEntryProps) {
|
||||
rtl: props.entry.rtl,
|
||||
showSelectionIndicator: props.showSelectionIndicator,
|
||||
maxWidth: props.maxWidth,
|
||||
fontSizePercentage,
|
||||
})
|
||||
|
||||
const externalLinkDisplayMode = useAppSelector(state => state.user.settings?.externalLinkIconDisplayMode)
|
||||
@@ -137,6 +142,9 @@ export function FeedEntry(props: FeedEntryProps) {
|
||||
const compactHeader = !props.expanded && (viewMode === "title" || viewMode === "cozy")
|
||||
return (
|
||||
<Paper
|
||||
component="article"
|
||||
id={Constants.dom.entryId(props.entry)}
|
||||
data-id={props.entry.id}
|
||||
withBorder
|
||||
radius={borderRadius}
|
||||
className={cx(classes.paper, {
|
||||
@@ -176,10 +184,10 @@ export function FeedEntry(props: FeedEntryProps) {
|
||||
</a>
|
||||
{props.expanded && (
|
||||
<Box px={paddingX} pb={paddingY} onClick={props.onBodyClick}>
|
||||
<Box className={classes.body}>
|
||||
<Box className={`${classes.body} cf-content`}>
|
||||
<FeedEntryBody entry={props.entry} />
|
||||
</Box>
|
||||
<Divider variant="dashed" my={paddingY} />
|
||||
<Divider variant="dashed" my={paddingY} className="cf-footer-divider" />
|
||||
<FeedEntryFooter entry={props.entry} />
|
||||
</Box>
|
||||
)}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Group } from "@mantine/core"
|
||||
import { Constants } from "app/constants"
|
||||
import { markEntriesUpToEntry, markEntry, starEntry } from "app/entries/thunks"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { Group, Indicator, Popover, TagsInput } from "@mantine/core"
|
||||
import { markEntriesUpToEntry, markEntry, starEntry, tagEntry } from "app/entries/thunks"
|
||||
@@ -37,7 +37,7 @@ export function FeedEntryFooter(props: FeedEntryFooterProps) {
|
||||
)
|
||||
|
||||
return (
|
||||
<Group justify="space-between">
|
||||
<Group justify="space-between" className="cf-footer">
|
||||
<Group gap={spacing}>
|
||||
{props.entry.markable && (
|
||||
<ActionButton
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { ActionIcon, Box, CopyButton, Divider, SimpleGrid } from "@mantine/core"
|
||||
import { Constants } from "app/constants"
|
||||
import { useAppSelector } from "app/store"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Trans, msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Button, Group, Stack, TextInput } from "@mantine/core"
|
||||
import { useForm } from "@mantine/form"
|
||||
import { client, errorToStrings } from "app/client"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { Select, type SelectProps } from "@mantine/core"
|
||||
import type { ComboboxItem } from "@mantine/core/lib/components/Combobox/Combobox.types"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Trans, msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Button, FileInput, Group, Stack } from "@mantine/core"
|
||||
import { isNotEmpty, useForm } from "@mantine/form"
|
||||
import { client, errorToStrings } from "app/client"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Button, Group, Stack, Stepper, TextInput } from "@mantine/core"
|
||||
import { useForm } from "@mantine/form"
|
||||
import { client, errorToStrings } from "app/client"
|
||||
@@ -39,8 +39,8 @@ export function Subscribe() {
|
||||
},
|
||||
})
|
||||
const subscribe = useAsyncCallback(client.feed.subscribe, {
|
||||
onSuccess: sub => {
|
||||
dispatch(reloadTree())
|
||||
onSuccess: async sub => {
|
||||
await dispatch(reloadTree())
|
||||
dispatch(redirectToFeed(sub.data))
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Box, Text } from "@mantine/core"
|
||||
import { Box } from "@mantine/core"
|
||||
import type { Entry } from "app/types"
|
||||
import { RelativeDate } from "components/RelativeDate"
|
||||
import { FeedFavicon } from "components/content/FeedFavicon"
|
||||
@@ -54,17 +54,17 @@ export function FeedEntryCompactHeader(props: FeedEntryHeaderProps) {
|
||||
<FeedFavicon url={props.entry.iconUrl} />
|
||||
</Box>
|
||||
<OnDesktop>
|
||||
<Text c="dimmed" className={classes.feedName}>
|
||||
<Box c="dimmed" className={classes.feedName}>
|
||||
{props.entry.feedName}
|
||||
</Text>
|
||||
</Box>
|
||||
</OnDesktop>
|
||||
<Box className={classes.title}>
|
||||
<FeedEntryTitle entry={props.entry} />
|
||||
</Box>
|
||||
<OnDesktop>
|
||||
<Text c="dimmed" className={classes.date}>
|
||||
<Box c="dimmed" className={classes.date}>
|
||||
<RelativeDate date={props.entry.date} />
|
||||
</Text>
|
||||
</Box>
|
||||
</OnDesktop>
|
||||
{props.showExternalLinkIcon && <OpenExternalLink entry={props.entry} />}
|
||||
</Box>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Box, Flex, Space, Text } from "@mantine/core"
|
||||
import { Box, Flex, Space } from "@mantine/core"
|
||||
import type { Entry } from "app/types"
|
||||
import { RelativeDate } from "components/RelativeDate"
|
||||
import { FeedFavicon } from "components/content/FeedFavicon"
|
||||
@@ -22,9 +22,6 @@ const useStyles = tss
|
||||
main: {
|
||||
fontWeight: colorScheme === "light" && !read ? "bold" : "inherit",
|
||||
},
|
||||
details: {
|
||||
fontSize: "90%",
|
||||
},
|
||||
}))
|
||||
|
||||
export function FeedEntryHeader(props: FeedEntryHeaderProps) {
|
||||
@@ -32,8 +29,8 @@ export function FeedEntryHeader(props: FeedEntryHeaderProps) {
|
||||
read: props.entry.read,
|
||||
})
|
||||
return (
|
||||
<Box>
|
||||
<Flex align="flex-start" justify="space-between">
|
||||
<Box className="cf-header">
|
||||
<Flex align="flex-start" justify="space-between" className="cf-header-title">
|
||||
<Flex align="flex-start" className={classes.main}>
|
||||
{props.showStarIcon && (
|
||||
<Box ml={-5}>
|
||||
@@ -44,22 +41,20 @@ export function FeedEntryHeader(props: FeedEntryHeaderProps) {
|
||||
</Flex>
|
||||
{props.showExternalLinkIcon && <OpenExternalLink entry={props.entry} />}
|
||||
</Flex>
|
||||
<Flex align="center" className={classes.details}>
|
||||
<Flex align="center" className="cf-header-subtitle">
|
||||
<FeedFavicon url={props.entry.iconUrl} />
|
||||
<Space w={6} />
|
||||
<Text c="dimmed">
|
||||
<Box c="dimmed">
|
||||
{props.entry.feedName}
|
||||
<span> · </span>
|
||||
<RelativeDate date={props.entry.date} />
|
||||
</Text>
|
||||
</Box>
|
||||
</Flex>
|
||||
{props.expanded && (
|
||||
<Box className={classes.details}>
|
||||
<Text c="dimmed">
|
||||
{props.entry.author && <span>by {props.entry.author}</span>}
|
||||
{props.entry.author && props.entry.categories && <span> · </span>}
|
||||
{props.entry.categories && <span>{props.entry.categories}</span>}
|
||||
</Text>
|
||||
<Box className="cf-header-details">
|
||||
{props.entry.author && <span>by {props.entry.author}</span>}
|
||||
{props.entry.author && props.entry.categories && <span> · </span>}
|
||||
{props.entry.categories && <span>{props.entry.categories}</span>}
|
||||
</Box>
|
||||
)}
|
||||
</Box>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { ActionIcon, Anchor, Tooltip } from "@mantine/core"
|
||||
import { Constants } from "app/constants"
|
||||
import { markEntry } from "app/entries/thunks"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { ActionIcon, Tooltip } from "@mantine/core"
|
||||
import { Constants } from "app/constants"
|
||||
import { starEntry } from "app/entries/thunks"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { Box, Center, CloseButton, Divider, Group, Indicator, Popover, TextInput } from "@mantine/core"
|
||||
import { useForm } from "@mantine/form"
|
||||
import { reloadEntries, search, selectNextEntry, selectPreviousEntry } from "app/entries/thunks"
|
||||
import { markAllAsReadWithConfirmationIfRequired, reloadEntries, search, selectNextEntry, selectPreviousEntry } from "app/entries/thunks"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
import { changeReadingMode, changeReadingOrder } from "app/user/thunks"
|
||||
import { ActionButton } from "components/ActionButton"
|
||||
@@ -14,6 +14,7 @@ import { useEffect } from "react"
|
||||
import {
|
||||
TbArrowDown,
|
||||
TbArrowUp,
|
||||
TbChecks,
|
||||
TbExternalLink,
|
||||
TbEye,
|
||||
TbEyeOff,
|
||||
@@ -24,7 +25,6 @@ import {
|
||||
TbSortDescending,
|
||||
TbUser,
|
||||
} from "react-icons/tb"
|
||||
import { MarkAllAsReadButton } from "./MarkAllAsReadButton"
|
||||
import { ProfileMenu } from "./ProfileMenu"
|
||||
|
||||
function HeaderDivider() {
|
||||
@@ -42,11 +42,14 @@ function HeaderToolbar(props: { children: React.ReactNode }) {
|
||||
display: "flex",
|
||||
justifyContent: "space-between",
|
||||
}}
|
||||
className="cf-toolbar"
|
||||
>
|
||||
{props.children}
|
||||
</Box>
|
||||
) : (
|
||||
<Group gap={spacing}>{props.children}</Group>
|
||||
<Group gap={spacing} className="cf-toolbar">
|
||||
{props.children}
|
||||
</Group>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -75,7 +78,7 @@ export function Header() {
|
||||
|
||||
if (!settings) return <Loader />
|
||||
return (
|
||||
<Center>
|
||||
<Center className="cf-toolbar-wrapper">
|
||||
<HeaderToolbar>
|
||||
<ActionButton
|
||||
icon={<TbArrowUp size={iconSize} />}
|
||||
@@ -111,7 +114,11 @@ export function Header() {
|
||||
label={msg`Refresh`}
|
||||
onClick={async () => await dispatch(reloadEntries())}
|
||||
/>
|
||||
<MarkAllAsReadButton iconSize={iconSize} />
|
||||
<ActionButton
|
||||
icon={<TbChecks size={iconSize} />}
|
||||
label={msg`Mark all as read`}
|
||||
onClick={() => dispatch(markAllAsReadWithConfirmationIfRequired())}
|
||||
/>
|
||||
|
||||
<HeaderDivider />
|
||||
|
||||
|
||||
@@ -1,97 +0,0 @@
|
||||
import { Trans, msg } from "@lingui/macro"
|
||||
|
||||
import { Button, Code, Group, Modal, Slider, Stack, Text } from "@mantine/core"
|
||||
import { markAllEntries } from "app/entries/thunks"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
import { ActionButton } from "components/ActionButton"
|
||||
import { useState } from "react"
|
||||
import { TbChecks } from "react-icons/tb"
|
||||
|
||||
export function MarkAllAsReadButton(props: { iconSize: number }) {
|
||||
const [opened, setOpened] = useState(false)
|
||||
const [threshold, setThreshold] = useState(0)
|
||||
const source = useAppSelector(state => state.entries.source)
|
||||
const sourceLabel = useAppSelector(state => state.entries.sourceLabel)
|
||||
const entriesTimestamp = useAppSelector(state => state.entries.timestamp) ?? Date.now()
|
||||
const markAllAsReadConfirmation = useAppSelector(state => state.user.settings?.markAllAsReadConfirmation)
|
||||
const dispatch = useAppDispatch()
|
||||
|
||||
const buttonClicked = () => {
|
||||
if (markAllAsReadConfirmation) {
|
||||
setThreshold(0)
|
||||
setOpened(true)
|
||||
} else {
|
||||
dispatch(
|
||||
markAllEntries({
|
||||
sourceType: source.type,
|
||||
req: {
|
||||
id: source.id,
|
||||
read: true,
|
||||
olderThan: Date.now(),
|
||||
insertedBefore: entriesTimestamp,
|
||||
},
|
||||
})
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<Modal opened={opened} onClose={() => setOpened(false)} title={<Trans>Mark all entries as read</Trans>}>
|
||||
<Stack>
|
||||
<Text size="sm">
|
||||
{threshold === 0 && (
|
||||
<Trans>
|
||||
Are you sure you want to mark all entries of <Code>{sourceLabel}</Code> as read?
|
||||
</Trans>
|
||||
)}
|
||||
{threshold > 0 && (
|
||||
<Trans>
|
||||
Are you sure you want to mark entries older than {threshold} days of <Code>{sourceLabel}</Code> as read?
|
||||
</Trans>
|
||||
)}
|
||||
</Text>
|
||||
<Slider
|
||||
py="xl"
|
||||
min={0}
|
||||
max={28}
|
||||
marks={[
|
||||
{ value: 0, label: "0" },
|
||||
{ value: 7, label: "7" },
|
||||
{ value: 14, label: "14" },
|
||||
{ value: 21, label: "21" },
|
||||
{ value: 28, label: "28" },
|
||||
]}
|
||||
value={threshold}
|
||||
onChange={setThreshold}
|
||||
/>
|
||||
<Group justify="flex-end">
|
||||
<Button variant="default" onClick={() => setOpened(false)}>
|
||||
<Trans>Cancel</Trans>
|
||||
</Button>
|
||||
<Button
|
||||
color="red"
|
||||
onClick={() => {
|
||||
setOpened(false)
|
||||
dispatch(
|
||||
markAllEntries({
|
||||
sourceType: source.type,
|
||||
req: {
|
||||
id: source.id,
|
||||
read: true,
|
||||
olderThan: Date.now() - threshold * 24 * 60 * 60 * 1000,
|
||||
insertedBefore: entriesTimestamp,
|
||||
},
|
||||
})
|
||||
)
|
||||
}}
|
||||
>
|
||||
<Trans>Confirm</Trans>
|
||||
</Button>
|
||||
</Group>
|
||||
</Stack>
|
||||
</Modal>
|
||||
<ActionButton icon={<TbChecks size={props.iconSize} />} label={msg`Mark all as read`} onClick={buttonClicked} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import {
|
||||
Box,
|
||||
Divider,
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
Menu,
|
||||
SegmentedControl,
|
||||
type SegmentedControlItem,
|
||||
Slider,
|
||||
useMantineColorScheme,
|
||||
} from "@mantine/core"
|
||||
import { showNotification } from "@mantine/notifications"
|
||||
@@ -14,7 +15,7 @@ import { client } from "app/client"
|
||||
import { redirectToAbout, redirectToAdminUsers, redirectToDonate, redirectToMetrics, redirectToSettings } from "app/redirect/thunks"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
import type { ViewMode } from "app/types"
|
||||
import { setViewMode } from "app/user/slice"
|
||||
import { setFontSizePercentage, setViewMode } from "app/user/slice"
|
||||
import { reloadProfile } from "app/user/thunks"
|
||||
import dayjs from "dayjs"
|
||||
import { useNow } from "hooks/useNow"
|
||||
@@ -100,6 +101,7 @@ export function ProfileMenu(props: ProfileMenuProps) {
|
||||
const admin = useAppSelector(state => state.user.profile?.admin)
|
||||
const viewMode = useAppSelector(state => state.user.localSettings.viewMode)
|
||||
const forceRefreshCooldownDuration = useAppSelector(state => state.server.serverInfos?.forceRefreshCooldownDuration)
|
||||
const fontSizePercentage = useAppSelector(state => state.user.localSettings.fontSizePercentage)
|
||||
const dispatch = useAppDispatch()
|
||||
const { colorScheme, setColorScheme } = useMantineColorScheme()
|
||||
|
||||
@@ -143,7 +145,7 @@ export function ProfileMenu(props: ProfileMenuProps) {
|
||||
color: "green",
|
||||
autoClose: 1000,
|
||||
})
|
||||
} catch (error) {
|
||||
} catch (_) {
|
||||
showNotification({
|
||||
message: <Trans>Force fetching feeds is not yet available.</Trans>,
|
||||
color: "red",
|
||||
@@ -184,6 +186,22 @@ export function ProfileMenu(props: ProfileMenuProps) {
|
||||
mb="xs"
|
||||
/>
|
||||
|
||||
<Divider />
|
||||
|
||||
<Menu.Label>
|
||||
<Trans>Font size</Trans>
|
||||
</Menu.Label>
|
||||
<Slider
|
||||
min={50}
|
||||
max={150}
|
||||
step={5}
|
||||
marks={[{ value: 100 }]}
|
||||
label={v => `${v}%`}
|
||||
mb="xs"
|
||||
value={fontSizePercentage}
|
||||
onChange={value => dispatch(setFontSizePercentage(value))}
|
||||
/>
|
||||
|
||||
{admin && (
|
||||
<>
|
||||
<Divider />
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Box, Button, Group, Stack } from "@mantine/core"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Anchor, Box, Button, Group, Stack } from "@mantine/core"
|
||||
import { useForm } from "@mantine/form"
|
||||
import { client, errorToStrings } from "app/client"
|
||||
import { Constants } from "app/constants"
|
||||
import { redirectToSelectedSource } from "app/redirect/thunks"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
import { Alert } from "components/Alert"
|
||||
@@ -57,13 +58,27 @@ export function CustomCodeSettings() {
|
||||
<form onSubmit={form.onSubmit(saveCustomCode.execute)}>
|
||||
<Stack>
|
||||
<CodeEditor
|
||||
description={<Trans>Custom CSS rules that will be applied</Trans>}
|
||||
label={<Trans>Custom CSS rules that will be applied</Trans>}
|
||||
description={
|
||||
<Trans>
|
||||
<span>See </span>
|
||||
<Anchor
|
||||
href={Constants.customCssDocumentationUrl}
|
||||
target="_blank"
|
||||
rel="noreferrer"
|
||||
style={{ fontSize: "inherit" }}
|
||||
>
|
||||
here
|
||||
</Anchor>
|
||||
<span> for more information.</span>
|
||||
</Trans>
|
||||
}
|
||||
language="css"
|
||||
{...form.getInputProps("customCss")}
|
||||
/>
|
||||
|
||||
<CodeEditor
|
||||
description={<Trans>Custom JS code that will be executed on page load</Trans>}
|
||||
label={<Trans>Custom JS code that will be executed on page load</Trans>}
|
||||
language="javascript"
|
||||
{...form.getInputProps("customJs")}
|
||||
/>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Trans, msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { Divider, Group, NumberInput, Radio, Select, SimpleGrid, Stack, Switch } from "@mantine/core"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Divider, Group, NumberInput, Radio, Select, type SelectProps, SimpleGrid, Stack, Switch } from "@mantine/core"
|
||||
import type { ComboboxData } from "@mantine/core/lib/components/Combobox/Combobox.types"
|
||||
import { Constants } from "app/constants"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
@@ -12,6 +13,7 @@ import {
|
||||
changeLanguage,
|
||||
changeMarkAllAsReadConfirmation,
|
||||
changeMobileFooter,
|
||||
changePrimaryColor,
|
||||
changeScrollMarks,
|
||||
changeScrollMode,
|
||||
changeScrollSpeed,
|
||||
@@ -39,8 +41,9 @@ export function DisplaySettings() {
|
||||
const unreadCountTitle = useAppSelector(state => state.user.settings?.unreadCountTitle)
|
||||
const unreadCountFavicon = useAppSelector(state => state.user.settings?.unreadCountFavicon)
|
||||
const sharingSettings = useAppSelector(state => state.user.settings?.sharingSettings)
|
||||
const dispatch = useAppDispatch()
|
||||
const primaryColor = useAppSelector(state => state.user.settings?.primaryColor) || Constants.theme.defaultPrimaryColor
|
||||
const { _ } = useLingui()
|
||||
const dispatch = useAppDispatch()
|
||||
|
||||
const scrollModeOptions: Record<ScrollMode, ReactNode> = {
|
||||
always: <Trans>Always</Trans>,
|
||||
@@ -67,10 +70,35 @@ export function DisplaySettings() {
|
||||
},
|
||||
]
|
||||
|
||||
const colorData: ComboboxData = [
|
||||
{ value: "dark", label: _(msg`Dark`) },
|
||||
{ value: "gray", label: _(msg`Gray`) },
|
||||
{ value: "red", label: _(msg`Red`) },
|
||||
{ value: "pink", label: _(msg`Pink`) },
|
||||
{ value: "grape", label: _(msg`Grape`) },
|
||||
{ value: "violet", label: _(msg`Violet`) },
|
||||
{ value: "indigo", label: _(msg`Indigo`) },
|
||||
{ value: "blue", label: _(msg`Blue`) },
|
||||
{ value: "cyan", label: _(msg`Cyan`) },
|
||||
{ value: "green", label: _(msg`Green`) },
|
||||
{ value: "lime", label: _(msg`Lime`) },
|
||||
{ value: "yellow", label: _(msg`Yellow`) },
|
||||
{ value: "orange", label: _(msg`Orange`) },
|
||||
{ value: "teal", label: _(msg`Teal`) },
|
||||
].sort((a, b) => a.label.localeCompare(b.label))
|
||||
const colorRenderer: SelectProps["renderOption"] = ({ option }) => (
|
||||
<Group>
|
||||
<Box h={18} w={18} bg={option.value} />
|
||||
<Box>{option.label}</Box>
|
||||
</Group>
|
||||
)
|
||||
|
||||
return (
|
||||
<Stack>
|
||||
<Divider label={<Trans>Display</Trans>} labelPosition="center" />
|
||||
|
||||
<Select
|
||||
description={<Trans>Language</Trans>}
|
||||
label={<Trans>Language</Trans>}
|
||||
value={language}
|
||||
data={locales.map(l => ({
|
||||
value: l.key,
|
||||
@@ -79,6 +107,14 @@ export function DisplaySettings() {
|
||||
onChange={async s => await (s && dispatch(changeLanguage(s)))}
|
||||
/>
|
||||
|
||||
<Select
|
||||
label={<Trans>Primary color</Trans>}
|
||||
data={colorData}
|
||||
value={primaryColor}
|
||||
onChange={async value => value && (await dispatch(changePrimaryColor(value)))}
|
||||
renderOption={colorRenderer}
|
||||
/>
|
||||
|
||||
<Switch
|
||||
label={<Trans>Show feeds and categories with no unread entries</Trans>}
|
||||
checked={showRead}
|
||||
@@ -114,14 +150,14 @@ export function DisplaySettings() {
|
||||
<Divider label={<Trans>Entry headers</Trans>} labelPosition="center" />
|
||||
|
||||
<Select
|
||||
description={<Trans>Show star icon</Trans>}
|
||||
label={<Trans>Show star icon</Trans>}
|
||||
value={starIconDisplayMode}
|
||||
data={displayModeData}
|
||||
onChange={async s => await dispatch(changeStarIconDisplayMode(s as IconDisplayMode))}
|
||||
/>
|
||||
|
||||
<Select
|
||||
description={<Trans>Show external link icon</Trans>}
|
||||
label={<Trans>Show external link icon</Trans>}
|
||||
value={externalLinkIconDisplayMode}
|
||||
data={displayModeData}
|
||||
onChange={async s => await dispatch(changeExternalLinkIconDisplayMode(s as IconDisplayMode))}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Trans, msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Anchor, Box, Button, Checkbox, Divider, Group, Input, PasswordInput, Stack, Text, TextInput } from "@mantine/core"
|
||||
import { useForm } from "@mantine/form"
|
||||
import { openConfirmModal } from "@mantine/modals"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Stack } from "@mantine/core"
|
||||
import { Constants } from "app/constants"
|
||||
import {
|
||||
@@ -10,9 +10,10 @@ import {
|
||||
redirectToTagDetails,
|
||||
} from "app/redirect/thunks"
|
||||
import { useAppDispatch, useAppSelector } from "app/store"
|
||||
import type { TreeSubscription } from "app/tree/slice"
|
||||
import { collapseTreeCategory } from "app/tree/thunks"
|
||||
import type { Category, Subscription } from "app/types"
|
||||
import { categoryUnreadCount, flattenCategoryTree } from "app/utils"
|
||||
import { categoryHasNewEntries, categoryUnreadCount, flattenCategoryTree } from "app/utils"
|
||||
import { Loader } from "components/Loader"
|
||||
import { OnDesktop } from "components/responsive/OnDesktop"
|
||||
import React from "react"
|
||||
@@ -89,6 +90,7 @@ export function Tree() {
|
||||
name={<Trans>All</Trans>}
|
||||
icon={allIcon}
|
||||
unread={categoryUnreadCount(root)}
|
||||
hasNewEntries={categoryHasNewEntries(root)}
|
||||
selected={source.type === "category" && source.id === Constants.categories.all.id}
|
||||
expanded={false}
|
||||
level={0}
|
||||
@@ -103,6 +105,7 @@ export function Tree() {
|
||||
name={<Trans>Starred</Trans>}
|
||||
icon={starredIcon}
|
||||
unread={0}
|
||||
hasNewEntries={false}
|
||||
selected={source.type === "category" && source.id === Constants.categories.starred.id}
|
||||
expanded={false}
|
||||
level={0}
|
||||
@@ -122,6 +125,7 @@ export function Tree() {
|
||||
name={category.name}
|
||||
icon={category.expanded ? expandedIcon : collapsedIcon}
|
||||
unread={categoryUnreadCount(category)}
|
||||
hasNewEntries={categoryHasNewEntries(category)}
|
||||
selected={source.type === "category" && source.id === category.id}
|
||||
expanded={category.expanded}
|
||||
level={level}
|
||||
@@ -133,7 +137,7 @@ export function Tree() {
|
||||
)
|
||||
}
|
||||
|
||||
const feedNode = (feed: Subscription, level = 0) => {
|
||||
const feedNode = (feed: TreeSubscription, level = 0) => {
|
||||
if (!isFeedDisplayed(feed)) return null
|
||||
|
||||
return (
|
||||
@@ -143,6 +147,7 @@ export function Tree() {
|
||||
name={feed.name}
|
||||
icon={feed.iconUrl}
|
||||
unread={feed.unread}
|
||||
hasNewEntries={!!feed.hasNewEntries}
|
||||
selected={source.type === "feed" && source.id === String(feed.id)}
|
||||
level={level}
|
||||
hasError={feed.errorCount > errorThreshold}
|
||||
@@ -159,6 +164,7 @@ export function Tree() {
|
||||
name={tag}
|
||||
icon={tagIcon}
|
||||
unread={0}
|
||||
hasNewEntries={false}
|
||||
selected={source.type === "tag" && source.id === tag}
|
||||
level={0}
|
||||
hasError={false}
|
||||
@@ -182,7 +188,7 @@ export function Tree() {
|
||||
<OnDesktop>
|
||||
<TreeSearch feeds={feeds} />
|
||||
</OnDesktop>
|
||||
<Box>
|
||||
<Box className="cf-tree">
|
||||
{allCategoryNode()}
|
||||
{starredCategoryNode()}
|
||||
{root.children.map(c => recursiveCategoryNode(c))}
|
||||
|
||||
@@ -15,6 +15,7 @@ interface TreeNodeProps {
|
||||
expanded?: boolean
|
||||
level: number
|
||||
hasError: boolean
|
||||
hasNewEntries: boolean
|
||||
onClick: (e: React.MouseEvent, id: string) => void
|
||||
onIconClick?: (e: React.MouseEvent, id: string) => void
|
||||
}
|
||||
@@ -68,19 +69,19 @@ export function TreeNode(props: TreeNodeProps) {
|
||||
<Box
|
||||
py={1}
|
||||
pl={props.level * 20}
|
||||
className={classes.node}
|
||||
className={`${classes.node} cf-treenode cf-treenode-${props.type}`}
|
||||
onClick={(e: React.MouseEvent) => props.onClick(e, props.id)}
|
||||
data-id={props.id}
|
||||
data-type={props.type}
|
||||
data-unread-count={props.unread}
|
||||
>
|
||||
<Box mr={6} onClick={(e: React.MouseEvent) => props.onIconClick?.(e, props.id)}>
|
||||
<Box mr={6} onClick={(e: React.MouseEvent) => props.onIconClick?.(e, props.id)} className="cf-treenode-icon">
|
||||
<Center>{typeof props.icon === "string" ? <FeedFavicon url={props.icon} /> : props.icon}</Center>
|
||||
</Box>
|
||||
<Box className={classes.nodeText}>{props.name}</Box>
|
||||
{!props.expanded && (
|
||||
<Box>
|
||||
<UnreadCount unreadCount={props.unread} />
|
||||
<Box className="cf-treenode-unread-count">
|
||||
<UnreadCount unreadCount={props.unread} showIndicator={props.hasNewEntries} />
|
||||
</Box>
|
||||
)}
|
||||
</Box>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { Trans, msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { TextInput } from "@mantine/core"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, TextInput } from "@mantine/core"
|
||||
import { Spotlight, type SpotlightActionData, spotlight } from "@mantine/spotlight"
|
||||
import { redirectToFeed } from "app/redirect/thunks"
|
||||
import { useAppDispatch } from "app/store"
|
||||
@@ -32,7 +33,7 @@ export function TreeSearch(props: TreeSearchProps) {
|
||||
useMousetrap("g u", () => spotlight.open())
|
||||
|
||||
return (
|
||||
<>
|
||||
<Box className="cf-treesearch">
|
||||
<TextInput
|
||||
placeholder={_(msg`Search`)}
|
||||
leftSection={searchIcon}
|
||||
@@ -57,6 +58,6 @@ export function TreeSearch(props: TreeSearchProps) {
|
||||
}}
|
||||
nothingFound={<Trans>Nothing found</Trans>}
|
||||
/>
|
||||
</>
|
||||
</Box>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Badge, Tooltip } from "@mantine/core"
|
||||
import { Badge, Indicator, Tooltip } from "@mantine/core"
|
||||
import { Constants } from "app/constants"
|
||||
import { tss } from "tss"
|
||||
|
||||
@@ -10,7 +10,7 @@ const useStyles = tss.create(() => ({
|
||||
},
|
||||
}))
|
||||
|
||||
export function UnreadCount(props: { unreadCount: number }) {
|
||||
export function UnreadCount(props: { unreadCount: number; showIndicator: boolean }) {
|
||||
const { classes } = useStyles()
|
||||
|
||||
if (props.unreadCount <= 0) return null
|
||||
@@ -18,9 +18,11 @@ export function UnreadCount(props: { unreadCount: number }) {
|
||||
const count = props.unreadCount >= 10000 ? "10k+" : props.unreadCount
|
||||
return (
|
||||
<Tooltip label={props.unreadCount} disabled={props.unreadCount === count} openDelay={Constants.tooltip.delay}>
|
||||
<Badge className={classes.badge} variant="light" fullWidth>
|
||||
{count}
|
||||
</Badge>
|
||||
<Indicator disabled={!props.showIndicator} size={4} offset={10} position="middle-start">
|
||||
<Badge className={`${classes.badge} cf-badge`} variant="light" fullWidth>
|
||||
{count}
|
||||
</Badge>
|
||||
</Indicator>
|
||||
</Tooltip>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { useAppSelector } from "app/store"
|
||||
|
||||
@@ -8,28 +8,28 @@ interface Step {
|
||||
}
|
||||
|
||||
export const useAppLoading = () => {
|
||||
const profile = useAppSelector(state => state.user.profile)
|
||||
const settings = useAppSelector(state => state.user.settings)
|
||||
const rootCategory = useAppSelector(state => state.tree.rootCategory)
|
||||
const tags = useAppSelector(state => state.user.tags)
|
||||
const profileLoaded = useAppSelector(state => !!state.user.profile)
|
||||
const settingsLoaded = useAppSelector(state => !!state.user.settings)
|
||||
const rootCategoryLoaded = useAppSelector(state => !!state.tree.rootCategory)
|
||||
const tagsLoaded = useAppSelector(state => !!state.user.tags)
|
||||
const { _ } = useLingui()
|
||||
|
||||
const steps: Step[] = [
|
||||
{
|
||||
label: _(msg`Loading settings...`),
|
||||
done: !!settings,
|
||||
done: settingsLoaded,
|
||||
},
|
||||
{
|
||||
label: _(msg`Loading profile...`),
|
||||
done: !!profile,
|
||||
done: profileLoaded,
|
||||
},
|
||||
{
|
||||
label: _(msg`Loading subscriptions...`),
|
||||
done: !!rootCategory,
|
||||
done: rootCategoryLoaded,
|
||||
},
|
||||
{
|
||||
label: _(msg`Loading tags...`),
|
||||
done: !!tags,
|
||||
done: tagsLoaded,
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { setWebSocketConnected } from "app/server/slice"
|
||||
import { type AppDispatch, useAppDispatch, useAppSelector } from "app/store"
|
||||
import { incrementUnreadCount } from "app/tree/slice"
|
||||
import { newFeedEntriesDiscovered } from "app/tree/thunks"
|
||||
import { useEffect } from "react"
|
||||
import WebsocketHeartbeatJs from "websocket-heartbeat-js"
|
||||
|
||||
@@ -9,7 +9,7 @@ const handleMessage = (dispatch: AppDispatch, message: string) => {
|
||||
const type = parts[0]
|
||||
if (type === "new-feed-entries") {
|
||||
dispatch(
|
||||
incrementUnreadCount({
|
||||
newFeedEntriesDiscovered({
|
||||
feedId: +parts[1],
|
||||
amount: +parts[2],
|
||||
})
|
||||
|
||||
@@ -57,8 +57,12 @@ function activateLocale(locale: string) {
|
||||
}
|
||||
|
||||
export const useI18n = () => {
|
||||
const locale = useAppSelector(state => state.user.settings?.language)
|
||||
const locale =
|
||||
useAppSelector(state => state.user.settings?.language) ??
|
||||
navigator.languages.map(l => l.split("-")[0]).find(l => locales.some(locale => locale.key === l)) ??
|
||||
"en"
|
||||
|
||||
useEffect(() => {
|
||||
activateLocale(locale ?? "en")
|
||||
activateLocale(locale)
|
||||
}, [locale])
|
||||
}
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0> هل تحتاج إلى حساب؟ </0> <1> اشترك! </ 1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "حول"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "إضافة فئة"
|
||||
msgid "Add user"
|
||||
msgstr "إضافة مستخدم"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "إداري"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "الكل"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "هل أنت متأكد أنك تريد حذف المستخدم <0> {user
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "هل أنت متأكد أنك تريد حذف حسابك؟ "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "هل أنت متأكد أنك تريد تعليم كافة إدخالات <0> {sourceLabel} </0> كمقروءة؟"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "هل أنت متأكد أنك تريد وضع علامة على الإدخالات الأقدم من {عتبة} يوم من <0> {sourceLabel} </0> كمقروءة؟"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "العودة"
|
||||
msgid "Back to log in"
|
||||
msgstr "العودة لتسجيل الدخول"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "إلغاء"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "الفئة"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "مضغوط"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "تأكيد"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "تنازلي"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "عرض"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "تنزيل"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "اسحب الرابط إلى شريط الإشارات"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "البريد الإلكتروني"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "عنوان البريد الإلكتروني"
|
||||
msgid "Edit user"
|
||||
msgstr "تحرير المستخدم"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "ممكن"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "موسع"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "قم بتصدير اشتراكاتك وفئاتك كملف OPML يمكن استيراده في خدمات قراءة الأعلاف الأخرى"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "اسم الخلاصة"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "موجز URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "تصفية التعبير"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "هل نسيت كلمة المرور؟"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "قم بإنشاء مفتاح API في ملف التعريف الخاص بك أولاً."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "قم بإنشاء مفتاح API في ملف التعريف الخاص
|
||||
msgid "Generate new API key"
|
||||
msgstr "إنشاء مفتاح API جديد"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "رابط الخلاصة المولدة"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "انتقل إلى وثائق API."
|
||||
msgid "Goodies"
|
||||
msgstr "الأشياء الجيدة"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "المرجع نفسه"
|
||||
@@ -440,13 +472,17 @@ msgstr "استيراد"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "في العرض الموسع ، التمرير عبر الإدخالات وضع علامة عليها كمقروءة"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "إبقاء غير مقروءة"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "اختصارات لوحة المفاتيح"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "آخر رسالة تحديث"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "رابط"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "تحميل الاشتراكات ..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "تحميل العلامات ..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "تسجيل الدخول"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "تسجيل الخروج"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "إدارة المستخدمين"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "تعليم الكل كمقروء"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "تعليم كافة الإدخالات كمقروءة"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "وضع علامة كمقروء"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "وضع علامة كمقروءة حتى هنا"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "تحريك الصفحة لأسفل"
|
||||
msgid "Move the page up"
|
||||
msgstr "تحريك الصفحة لأعلى"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "لا"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "الاسم"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "كلمة مرور جديدة"
|
||||
msgid "Newest first"
|
||||
msgstr "الأحدث أولاً"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "التالي"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "ملف OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "طلب"
|
||||
@@ -694,11 +738,11 @@ msgstr "والد"
|
||||
msgid "Parent Category"
|
||||
msgstr "الفئة الأصل"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "كلمة المرور"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "استعادة كلمة المرور"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "كلمات المرور غير متطابقة"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "المنـصب"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "المنـصب"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "الملف الشخصي"
|
||||
@@ -727,8 +779,12 @@ msgstr "الملف الشخصي"
|
||||
msgid "Recover password"
|
||||
msgstr "استعادة كلمة السر"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "تحديث"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "حفظ"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "قم بالتمرير بسلاسة عند التنقل بين الإدخ
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "بحث"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "بحث"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "يتطلب البحث 3 أحرف على الأقل"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "ضع التركيز على الإدخال التالي دون فتحه"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "قم بالتسجيل"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "شيء سيء حدث للتو ..."
|
||||
msgid "Space"
|
||||
msgstr "فضاء"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "النجم"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "مميز بنجمة"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "اشتراك"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "الكلمات"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "عنوان URL للتغذية التي تريد الاشتراك فيها. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "غير مقروءة"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "إلغاء النجم"
|
||||
@@ -971,6 +1040,10 @@ msgstr "اسم المستخدم"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "اسم المستخدم أو البريد الإلكتروني"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "تحذير"
|
||||
@@ -979,6 +1052,10 @@ msgstr "تحذير"
|
||||
msgid "Website"
|
||||
msgstr "موقع الكتروني"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "ليس لديك أي اشتراكات حتى الآن. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr "<0>Ei,</0><1> sóc la Jérémie de Bèlgica i fa més de 10 anys que tre
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Necessites un compte?</0><1>Registreu-vos!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Sobre"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Afegeix categoria"
|
||||
msgid "Add user"
|
||||
msgstr "Afegeix usuari"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Administrador"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Tot"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Esteu segur que voleu suprimir l'usuari <0>{userName}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Esteu segur que voleu suprimir el vostre compte? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Esteu segur que voleu marcar totes les entrades de <0>{sourceLabel}</0> com a llegides?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Esteu segur que voleu marcar les entrades més antigues de {threshold} dies de <0>{sourceLabel}</0> com a llegides?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Enrere"
|
||||
msgid "Back to log in"
|
||||
msgstr "Tornar a iniciar sessió"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr "Extensió del navegador necessària per a Chrome"
|
||||
@@ -144,27 +153,27 @@ msgstr "Extensió del navegador"
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel·la"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Categoria"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr "CommaFeed versió {version} ({version})."
|
||||
msgid "Compact"
|
||||
msgstr "Compacte"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Confirma"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr "Regles CSS personalitzades que s'aplicaran"
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "Codi JS personalitzat que s'executarà en carregar la pàgina"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr "Fosc"
|
||||
@@ -273,13 +287,14 @@ msgstr "Desc"
|
||||
msgid "Detailed"
|
||||
msgstr "Detallat"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Mostra"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donar"
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Descarrega"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Arrossegueu l'enllaç a la barra d'adreces d'interès"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "Correu electrònic"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Adreça de correu electrònic"
|
||||
msgid "Edit user"
|
||||
msgstr "Edita l'usuari"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "activat"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Ampliat"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "exporteu les vostres subscripcions i categories com a fitxer OPML que es pot importar a altres serveis de lectura de feeds"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "Opcions de l'extensió"
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr "Opcions de l'extensió"
|
||||
msgid "Feed name"
|
||||
msgstr "Nom del canal"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL del canal"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Expressió de filtratge"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Heu oblidat la contrasenya?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "primer genereu una clau API al vostre perfil."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "primer genereu una clau API al vostre perfil."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Genera una nova clau d'API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "URL del feed generat"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "Vés a {0}"
|
||||
@@ -416,6 +436,18 @@ msgstr "Vés a la documentació de l'API."
|
||||
msgid "Goodies"
|
||||
msgstr "Bones"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "Id"
|
||||
@@ -440,13 +472,17 @@ msgstr "Importació"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "a la vista ampliada, desplaçant-se per les entrades les marqueu com a llegides"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Mantenir sense llegir"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Dreceres de teclat"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "últim missatge d'actualització"
|
||||
msgid "Light"
|
||||
msgstr "Clar"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Enllaç"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "S'estan carregant les subscripcions..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Carregant les etiquetes..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Inicia sessió"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Tanca sessió"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Gestionar usuaris"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Marca-ho tot com a llegit"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Marqueu totes les entrades com a llegides"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Marca com a llegit"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Marca com a llegit fins aquí"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Mou la pàgina cap avall"
|
||||
msgid "Move the page up"
|
||||
msgstr "Mou la pàgina cap amunt"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Contrasenya nova"
|
||||
msgid "Newest first"
|
||||
msgstr "El més nou primer"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Següent"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "Fitxer OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Ordre"
|
||||
@@ -694,11 +738,11 @@ msgstr "pares"
|
||||
msgid "Parent Category"
|
||||
msgstr "Categoria pare"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Contrasenya"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Recuperació de contrasenya"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Les contrasenyes no coincideixen"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Posició"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Posició"
|
||||
msgid "Previous"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Perfil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Perfil"
|
||||
msgid "Recover password"
|
||||
msgstr "Recuperar la contrasenya"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Actualitzar"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "API REST"
|
||||
msgid "Right click"
|
||||
msgstr "Clic dret"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Desa"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Desplaceu-vos suaument quan navegueu entre entrades"
|
||||
msgid "Scrolling"
|
||||
msgstr "Desplaçament"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Cerca"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "la cerca requereix almenys 3 caràcters"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "posa el focus a la següent entrada sense obrir-la"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Registra't"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Acaba de passar una cosa dolenta..."
|
||||
msgid "Space"
|
||||
msgstr "Espai"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Estrella"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Estrellat"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Subscriu-te"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr "Sistema"
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetes"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "l'URL del canal al qual us voleu subscriure. "
|
||||
@@ -951,8 +1020,8 @@ msgstr "Prova la demostració!"
|
||||
msgid "Unread"
|
||||
msgstr "Sense llegir"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Desestrellar"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Nom d'usuari"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nom d'usuari o correu electrònic"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Avís"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Avís"
|
||||
msgid "Website"
|
||||
msgstr "Lloc web"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Encara no teniu cap subscripció. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Potřebujete účet?</0><1>Zaregistrujte se!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Asi"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Přidat kategorii"
|
||||
msgid "Add user"
|
||||
msgstr "Přidat uživatele"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Správce"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Všechny"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Opravdu chcete smazat uživatele <0>{userName}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Opravdu chcete smazat svůj účet? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Opravdu chcete označit všechny položky <0>{sourceLabel}</0> jako přečtené?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Opravdu chcete označit záznamy starší než {threshold} dnů <0>{sourceLabel}</0> jako přečtené?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Zpět"
|
||||
msgid "Back to log in"
|
||||
msgstr "Zpět k přihlášení"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušit"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompaktní"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Potvrdit"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Displej"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Stáhnout"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Přetáhněte odkaz na lištu záložek"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-mailová adresa"
|
||||
msgid "Edit user"
|
||||
msgstr "Upravit uživatele"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Povoleno"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Rozbaleno"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exportujte svá předplatná a kategorie jako soubor OPML, který lze importovat do jiných služeb čtení kanálů"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Název zdroje"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL zdroje"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtrování výrazu"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Zapomněli jste heslo?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Nejprve ve svém profilu vygenerujte klíč API."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Nejprve ve svém profilu vygenerujte klíč API."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Vygenerujte nový klíč API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Generovaná adresa URL zdroje"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Přejděte na dokumentaci API."
|
||||
msgid "Goodies"
|
||||
msgstr "Dobroty"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "V rozšířeném zobrazení je procházením označíte jako přečtené"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Ponechat nepřečtené"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Klávesové zkratky"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Poslední obnovovací zpráva"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Odkaz"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Načítání odběrů..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Načítání značek..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Přihlaste se"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Odhlášení"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Spravujte uživatele"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Označit vše jako přečtené"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Označte všechny položky jako přečtené"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Označit jako přečtené"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Označit jako přečtené až sem"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Přesuňte stránku dolů"
|
||||
msgid "Move the page up"
|
||||
msgstr "Přesuňte stránku nahoru"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Jméno"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nové heslo"
|
||||
msgid "Newest first"
|
||||
msgstr "Nejnovější jako první"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Další"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "soubor OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Objednávka"
|
||||
@@ -694,11 +738,11 @@ msgstr "Rodič"
|
||||
msgid "Parent Category"
|
||||
msgstr "Rodičovská kategorie"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Heslo"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Obnovení hesla"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Hesla se neshodují"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Pozice"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Pozice"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Obnovte heslo"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Obnovit"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Uložit"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Posouvejte plynule při navigaci mezi položkami"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Hledej"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Hledej"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Hledání vyžaduje alespoň 3 znaky"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Zaměřte se na další položku, aniž byste ji otevřeli"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Zaregistrujte se"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Právě se stalo něco špatného..."
|
||||
msgid "Space"
|
||||
msgstr "Vesmír"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Hvězda"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "S hvězdičkou"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Přihlaste se"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Značky"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "Adresa URL kanálu, k jehož odběru se chcete přihlásit. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Nepřečteno"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Odstranit hvězdu"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Uživatelské jméno"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Uživatelské jméno nebo e-mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Varování"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Varování"
|
||||
msgid "Website"
|
||||
msgstr "Webové stránky"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Zatím nemáte žádné předplatné. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Angen cyfrif?</0><1>Ymunwch!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Ynghylch"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Ychwanegu categori"
|
||||
msgid "Add user"
|
||||
msgstr "Ychwanegu defnyddiwr"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Gweinyddol"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Pawb"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Ydych chi'n siŵr eich bod am ddileu defnyddiwr <0>{userName}</0> ?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Ydych chi'n siŵr eich bod am ddileu eich cyfrif? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Ydych chi'n siŵr eich bod am farcio bod pob cofnod o <0>{sourceLabel}</0> wedi'i ddarllen?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Ydych chi'n siŵr eich bod am farcio cofnodion sy'n hŷn na {trothwy} diwrnod o <0>{sourceLabel}</0> fel rhai sydd wedi'u darllen?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Yn ôl"
|
||||
msgid "Back to log in"
|
||||
msgstr "Yn ôl i fewngofnodi"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Diddymu"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "categori"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "cryno"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Cadarnhau"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "Rhag"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Arddangos"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Lawrlwytho"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Llusgwch y ddolen i'r bar nod tudalen"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-bost"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "cyfeiriad e-bost"
|
||||
msgid "Edit user"
|
||||
msgstr "Golygu defnyddiwr"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Wedi'i alluogi"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Ehangu"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Allforio eich tanysgrifiadau a'ch categorïau fel ffeil OPML y gellir ei mewnforio i wasanaethau darllen porthiant eraill"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Enw porthiant"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL porthiant"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Hidlo mynegiant"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Wedi anghofio cyfrinair?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Cynhyrchu allwedd API yn eich proffil yn gyntaf."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Cynhyrchu allwedd API yn eich proffil yn gyntaf."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Cynhyrchu allwedd API newydd"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "url porthiant a gynhyrchir"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Ewch i'r ddogfennaeth API."
|
||||
msgid "Goodies"
|
||||
msgstr "nwyddau"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr "Mewnforio"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Mewn gwedd estynedig, mae sgrolio trwy gofnodion yn nodi eu bod wedi'u darllen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Cadwch heb ei ddarllen"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "llwybrau byr bysellfwrdd"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Neges adnewyddu ddiwethaf"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Cyswllt"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Yn llwytho tanysgrifiadau..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Wrthi'n llwytho tagiau..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Mewngofnodi"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Allgofnodi"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Rheoli defnyddwyr"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Marciwch y cyfan wedi'i ddarllen"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Marciwch bob cofnod wedi'i ddarllen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Marciwch ei fod wedi'i ddarllen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Marciwch fel y darllenwyd hyd yma"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Symudwch y dudalen i lawr"
|
||||
msgid "Move the page up"
|
||||
msgstr "Symudwch y dudalen i fyny"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "Amh"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Enw"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Cyfrinair newydd"
|
||||
msgid "Newest first"
|
||||
msgstr "Y diweddaraf yn gyntaf"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Nesaf"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "ffeil OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "gorchymyn"
|
||||
@@ -694,11 +738,11 @@ msgstr "rhiant"
|
||||
msgid "Parent Category"
|
||||
msgstr "Categori Rhiant"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "cyfrinair"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Adfer Cyfrinair"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Nid yw cyfrineiriau yn cyfateb"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Swydd"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Swydd"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Proffil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Proffil"
|
||||
msgid "Recover password"
|
||||
msgstr "Adfer cyfrinair"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Adnewyddu"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Arbed"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Sgroliwch yn esmwyth wrth lywio rhwng cofnodion"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Chwilio"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Chwilio"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Mae angen o leiaf 3 nod ar gyfer chwilio"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Gosodwch ffocws ar y cofnod nesaf heb ei agor"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Cofrestrwch"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Mae rhywbeth drwg newydd ddigwydd ..."
|
||||
msgid "Space"
|
||||
msgstr "Gofod"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "seren"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "serennog"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Tanysgrifio"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Tagiau"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "Y URL ar gyfer y porthwr rydych chi am danysgrifio iddo. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Heb ei ddarllen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "dad-seren"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Enw defnyddiwr"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Enw Defnyddiwr neu E-bost"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Rhybudd"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Rhybudd"
|
||||
msgid "Website"
|
||||
msgstr "Gwefan"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Nid oes gennych unrhyw danysgrifiadau eto. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Har du brug for en konto?</0><1>Tilmeld dig!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Omkring"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Tilføj kategori"
|
||||
msgid "Add user"
|
||||
msgstr "Tilføj bruger"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Er du sikker på, at du vil slette bruger <0>{brugernavn}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Er du sikker på, at du vil slette din konto? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Er du sikker på, at du vil markere alle poster i <0>{sourceLabel}</0> som læst?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Er du sikker på, at du vil markere poster, der er ældre end {threshold} dage af <0>{sourceLabel}</0> som læst?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Tilbage"
|
||||
msgid "Back to log in"
|
||||
msgstr "Tilbage for at logge ind"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Annuller"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategori"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompakt"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Bekræft"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Skærm"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr ""
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Træk linket til bogmærkelinjen"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-mailadresse"
|
||||
msgid "Edit user"
|
||||
msgstr "Rediger bruger"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiveret"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Udvidet"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Eksporter dine abonnementer og kategorier som en OPML-fil, der kan importeres i andre feed-læsningstjenester"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Feednavn"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr ""
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtrerende udtryk"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Glemt adgangskode?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Generer først en API-nøgle i din profil."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Generer først en API-nøgle i din profil."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Generer ny API-nøgle"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Genereret feed-url"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Gå til API-dokumentationen."
|
||||
msgid "Goodies"
|
||||
msgstr "Godbidder"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "I udvidet visning markerer du dem som læst, når du ruller gennem poster"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Forbehold ulæst"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Tastaturgenveje"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Sidste opdateringsmeddelelse"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Indlæser abonnementer..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Indlæser tags..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Log ind"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Log ud"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Administrer brugere"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Marker alle som læst"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Marker alle poster som læst"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Markér som læst"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Markér som læst indtil her"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Flyt siden ned"
|
||||
msgid "Move the page up"
|
||||
msgstr "Flyt siden op"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Navn"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Ny adgangskode"
|
||||
msgid "Newest first"
|
||||
msgstr "Nyeste først"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Næste"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML fil"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Bestilling"
|
||||
@@ -694,11 +738,11 @@ msgstr "Forælder"
|
||||
msgid "Parent Category"
|
||||
msgstr "Forældrekategori"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Adgangskode"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Gendannelse af adgangskode"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Adgangskoder stemmer ikke overens"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr ""
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr ""
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Gendan adgangskode"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Opdater"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Gem"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Rul jævnt, når du navigerer mellem poster"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Søg"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Søg"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Søgning kræver mindst 3 tegn"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Sæt fokus på næste post uden at åbne den"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Tilmeld dig"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Der er lige sket noget slemt..."
|
||||
msgid "Space"
|
||||
msgstr "Rum"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Stjerne"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Medvirkende"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Tilmeld"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL'en til det feed, du vil abonnere på. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Ulæst"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr ""
|
||||
@@ -971,6 +1040,10 @@ msgstr "Brugernavn"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Brugernavn eller e-mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Advarsel"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Advarsel"
|
||||
msgid "Website"
|
||||
msgstr "Hjemmeside"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Du har ingen abonnementer endnu. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr "<0>Hey,</0><1>Ich bin Jérémie aus Belgien und arbeite seit über 10 Ja
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Benötigen Sie ein Konto?</0><1>Hier geht's zur Registrierung!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Über"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Kategorie hinzufügen"
|
||||
msgid "Add user"
|
||||
msgstr "Benutzer hinzufügen"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Verwaltung"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Sind Sie sicher, dass Sie Benutzer <0>{userName}</0> löschen möchten?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Sind Sie sicher, dass Sie Ihr Konto löschen möchten?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Sind Sie sicher, dass Sie alle Einträge von <0>{sourceLabel}</0> als gelesen markieren möchten?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Sind Sie sicher, dass Sie Einträge, die älter als {threshold} Tage von <0>{sourceLabel}</0> sind, als gelesen markieren möchten?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Zurück"
|
||||
msgid "Back to log in"
|
||||
msgstr "Zurück zum Login"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr "Browser-Erweiterung für Chrome benötigt"
|
||||
@@ -144,27 +153,27 @@ msgstr "Browser-Erweiterung"
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategorie"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr "CommaFeed version {version} ({revision})."
|
||||
msgid "Compact"
|
||||
msgstr "Kompakt"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Bestätigen"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr "Eigene CSS Regeln die angewandt werden"
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "Einer JS Code der beim Laden der Seite ausgeführt wird"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr "Dunkel"
|
||||
@@ -273,13 +287,14 @@ msgstr "Beschr"
|
||||
msgid "Detailed"
|
||||
msgstr "Detailliert"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Anzeige"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Spenden"
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Herunterladen"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Link in Lesezeichenleiste ziehen"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-Mail"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-Mail-Adresse"
|
||||
msgid "Edit user"
|
||||
msgstr "Benutzer bearbeiten"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiviert"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Erweitert"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exportieren Sie Ihre Abonnements und Kategorien als OPML-Datei, die in andere Feed-Lesedienste importiert werden kann"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "Erweiterungsoptionen"
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr "Erweiterungsoptionen"
|
||||
msgid "Feed name"
|
||||
msgstr "Feedname"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "Feed-URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filterausdruck"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Passwort vergessen?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Generieren Sie zuerst einen API-Schlüssel in Ihrem Profil."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Generieren Sie zuerst einen API-Schlüssel in Ihrem Profil."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Neuen API-Schlüssel generieren"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Generierte Feed-URL"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "Gehe zu {0}"
|
||||
@@ -416,6 +436,18 @@ msgstr "Gehen Sie zur API-Dokumentation."
|
||||
msgid "Goodies"
|
||||
msgstr "Goodies"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr "Importieren"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "In der erweiterten Ansicht werden Einträge beim Scrollen als gelesen markiert"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Ungelesen lassen"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Tastaturkürzel"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Letzte Aktualisierungsmeldung"
|
||||
msgid "Light"
|
||||
msgstr "Hell"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Verbindung"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Abonnements werden geladen..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Tags werden geladen..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Einloggen"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Abmelden"
|
||||
msgid "Long press"
|
||||
msgstr "Langer Tastendruck"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Benutzer verwalten"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Alle als gelesen markieren"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Alle Einträge als gelesen markieren"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Als gelesen markieren"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Bis hierhin als gelesen markieren"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Seite nach unten verschieben"
|
||||
msgid "Move the page up"
|
||||
msgstr "Bewege die Seite nach oben"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "n.v."
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Neues Passwort"
|
||||
msgid "Newest first"
|
||||
msgstr "Neueste zuerst"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Weiter"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML-Datei"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Bestellung"
|
||||
@@ -694,11 +738,11 @@ msgstr "Übergeordnet"
|
||||
msgid "Parent Category"
|
||||
msgstr "Übergeordnete Kategorie"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Passwortwiederherstellung"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Passwörter stimmen nicht überein"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Position"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Position"
|
||||
msgid "Previous"
|
||||
msgstr "Vorheriges"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Kennwort wiederherstellen"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Aktualisieren"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "REST-API"
|
||||
msgid "Right click"
|
||||
msgstr "Rechtsklick"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Schnelles Scrollen beim Navigieren zwischen Einträgen"
|
||||
msgid "Scrolling"
|
||||
msgstr "Scrollen"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Suche"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Suche"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Suche erfordert mindestens 3 Zeichen"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Fokus auf den nächsten Eintrag setzen, ohne ihn zu öffnen"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Melden Sie sich an"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Etwas Schlimmes ist gerade passiert..."
|
||||
msgid "Space"
|
||||
msgstr "Raum"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Stern"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Markiert"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Abonnieren"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "Die URL für den Feed, den Sie abonnieren möchten. "
|
||||
@@ -951,8 +1020,8 @@ msgstr "Testen Sie die Demo!"
|
||||
msgid "Unread"
|
||||
msgstr "Ungelesen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Stern entfernen"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Benutzername"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Benutzername oder E-Mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Warnung"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Warnung"
|
||||
msgid "Website"
|
||||
msgstr "Webseite"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Sie haben noch keine Abonnements."
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr "<0>Hey,</0><1>I'm Jérémie from Belgium and I've been working on CommaF
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Need an account?</0><1>Sign up!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "About"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Add category"
|
||||
msgid "Add user"
|
||||
msgstr "Add user"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Are you sure you want to delete user <0>{userName}</0> ?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Are you sure you want to delete your account? There's no turning back!"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Back"
|
||||
msgid "Back to log in"
|
||||
msgstr "Back to log in"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr "Blue"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr "Browser extension required for Chrome"
|
||||
@@ -144,27 +153,27 @@ msgstr "Browser extention"
|
||||
msgid "Browser tab"
|
||||
msgstr "Browser tab"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Category"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr "CommaFeed version {version} ({revision})."
|
||||
msgid "Compact"
|
||||
msgstr "Compact"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Confirm"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr "Custom CSS rules that will be applied"
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "Custom JS code that will be executed on page load"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr "Cyan"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr "Dark"
|
||||
@@ -273,13 +287,14 @@ msgstr "Desc"
|
||||
msgid "Detailed"
|
||||
msgstr "Detailed"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Display"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donate"
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Download"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Drag link to bookmark bar"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-mail"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-mail address"
|
||||
msgid "Edit user"
|
||||
msgstr "Edit user"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Enabled"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Expanded"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "Extension options"
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr "Extension options"
|
||||
msgid "Feed name"
|
||||
msgstr "Feed name"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "Feed URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr "Fever API URL"
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtering expression"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr "Font size"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr "Force fetching feeds is not yet available."
|
||||
@@ -384,9 +403,9 @@ msgstr "Force fetching feeds is not yet available."
|
||||
msgid "Forgot password?"
|
||||
msgstr "Forgot password?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Generate an API key in your profile first."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Generate an API key in your profile first."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Generate new API key"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Generated feed url"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "Go to {0}"
|
||||
@@ -416,6 +436,18 @@ msgstr "Go to the API documentation."
|
||||
msgid "Goodies"
|
||||
msgstr "Goodies"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr "Grape"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr "Gray"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr "Green"
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "Id"
|
||||
@@ -440,13 +472,17 @@ msgstr "Import"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "In expanded view, scrolling through entries mark them as read"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr "Indigo"
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Keep unread"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Keyboard shortcuts"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Last refresh message"
|
||||
msgid "Light"
|
||||
msgstr "Light"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr "Lime"
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Loading subscriptions..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Loading tags..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Log in"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Logout"
|
||||
msgid "Long press"
|
||||
msgstr "Long press"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Manage users"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Mark all as read"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Mark all entries as read"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Mark as read"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Mark as read up to here"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Move the page down"
|
||||
msgid "Move the page up"
|
||||
msgstr "Move the page up"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "New password"
|
||||
msgid "Newest first"
|
||||
msgstr "Newest first"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Next"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML file"
|
||||
msgid "OPML file is required"
|
||||
msgstr "OPML file is required"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr "Orange"
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Order"
|
||||
@@ -694,11 +738,11 @@ msgstr "Parent"
|
||||
msgid "Parent Category"
|
||||
msgstr "Parent Category"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Password Recovery"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Passwords do not match"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr "Pink"
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Position"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Position"
|
||||
msgid "Previous"
|
||||
msgstr "Previous"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr "Primary color"
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profile"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profile"
|
||||
msgid "Recover password"
|
||||
msgstr "Recover password"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr "Red"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Refresh"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "REST API"
|
||||
msgid "Right click"
|
||||
msgstr "Right click"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Save"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Scroll smoothly when navigating between entries"
|
||||
msgid "Scrolling"
|
||||
msgstr "Scrolling"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Search"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Search"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Search requires at least 3 characters"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr "Select next unread feed/category"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr "Select previous unread feed/category"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Set focus on next entry without opening it"
|
||||
@@ -850,9 +914,9 @@ msgstr "Show unread count in tab favicon"
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr "Show unread count in tab title"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Sign up"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Something bad just happened..."
|
||||
msgid "Space"
|
||||
msgstr "Space"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Star"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Starred"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Subscribe"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr "System"
|
||||
msgid "Tags"
|
||||
msgstr "Tags"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr "Teal"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
@@ -951,8 +1020,8 @@ msgstr "Try the demo!"
|
||||
msgid "Unread"
|
||||
msgstr "Unread"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Unstar"
|
||||
@@ -971,6 +1040,10 @@ msgstr "User name"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "User Name or E-mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr "Violet"
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Warning"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Warning"
|
||||
msgid "Website"
|
||||
msgstr "Website"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr "Yellow"
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
|
||||
@@ -34,8 +34,12 @@ msgstr "<0>Hola,</0><1>Soy Jérémie de Bélgica y he estado trabajando en Comma
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>¿Necesitas una cuenta?</0><1>¡Regístrate!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Acerca de"
|
||||
|
||||
@@ -55,16 +59,17 @@ msgstr "Añadir categoría"
|
||||
msgid "Add user"
|
||||
msgstr "Añadir usuario"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Administrador"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Todo"
|
||||
|
||||
@@ -105,11 +110,11 @@ msgstr "¿Estás seguro de que deseas eliminar el usuario <0>{userName}</0> ?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "¿Estás seguro de que quieres eliminar tu cuenta? ¡No hay vuelta atrás!"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "¿Estás seguro de que deseas marcar todas las entradas de <0>{sourceLabel}</0> como leídas?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "¿Estás seguro de que deseas marcar las entradas anteriores a {threshold} días de <0>{sourceLabel}</0> como leídas?"
|
||||
|
||||
@@ -133,6 +138,10 @@ msgstr "Atrás"
|
||||
msgid "Back to log in"
|
||||
msgstr "Volver a iniciar sesión"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr "Se requiere extensión de navegador para Chrome"
|
||||
@@ -145,27 +154,27 @@ msgstr "Extensión del navegador"
|
||||
msgid "Browser tab"
|
||||
msgstr "Pestaña del navegador"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Categoría"
|
||||
|
||||
@@ -205,11 +214,11 @@ msgstr "Versión de CommaFeed {version} ({revision})."
|
||||
msgid "Compact"
|
||||
msgstr "Compacto"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
@@ -241,6 +250,11 @@ msgstr "Reglas CSS personalizadas que se aplicarán"
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "Código JS personalizado que se ejecutará al cargar la página"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr "Oscuro"
|
||||
@@ -274,13 +288,14 @@ msgstr "Desc"
|
||||
msgid "Detailed"
|
||||
msgstr "Detallado"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Donar"
|
||||
|
||||
@@ -292,11 +307,11 @@ msgstr "Descargar"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Arrastra el enlace a la barra de marcadores"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "Correo electrónico"
|
||||
|
||||
@@ -309,8 +324,8 @@ msgstr "Dirección de correo electrónico"
|
||||
msgid "Edit user"
|
||||
msgstr "Editar usuario"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Habilitado"
|
||||
|
||||
@@ -346,8 +361,8 @@ msgstr "Expandido"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exporta tus suscripciones y categorías como un archivo OPML que se puede importar en otros servicios de lectura de feeds"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "Opciones de la extensión"
|
||||
|
||||
@@ -355,9 +370,9 @@ msgstr "Opciones de la extensión"
|
||||
msgid "Feed name"
|
||||
msgstr "Nombre del feed"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL del feed"
|
||||
|
||||
@@ -377,6 +392,10 @@ msgstr "URL de la API de Fever"
|
||||
msgid "Filtering expression"
|
||||
msgstr "Expresión de filtrado"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -385,9 +404,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "¿Olvidaste la contraseña?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Primero genere una clave API en su perfil."
|
||||
|
||||
@@ -395,12 +414,13 @@ msgstr "Primero genere una clave API en su perfil."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Generar nueva clave API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "URL del feed generado"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "Ir a {0}"
|
||||
@@ -417,6 +437,18 @@ msgstr "Ir a la documentación de la API."
|
||||
msgid "Goodies"
|
||||
msgstr "Golosinas"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "Identificación"
|
||||
@@ -441,13 +473,17 @@ msgstr "Importar"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "En la vista ampliada, al desplazarse por las entradas marcarlas como leídas"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Mantener sin leer"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Atajos de teclado"
|
||||
|
||||
@@ -471,9 +507,13 @@ msgstr "Último mensaje de actualización"
|
||||
msgid "Light"
|
||||
msgstr "Claro"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Enlace"
|
||||
|
||||
@@ -493,9 +533,9 @@ msgstr "Cargando suscripciones..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Cargando etiquetas..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Iniciar sesión"
|
||||
|
||||
@@ -507,27 +547,27 @@ msgstr "Cerrar sesión"
|
||||
msgid "Long press"
|
||||
msgstr "Pulsación larga"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Administrar usuarios"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Marcar todo como leído"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Marcar todas las entradas como leídas"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Marcar como leído"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Marcar como leído hasta aquí"
|
||||
|
||||
@@ -547,15 +587,15 @@ msgstr "Mover la página hacia abajo"
|
||||
msgid "Move the page up"
|
||||
msgstr "Mover la página hacia arriba"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "N/D"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
@@ -576,8 +616,8 @@ msgstr "Nueva contraseña"
|
||||
msgid "Newest first"
|
||||
msgstr "Las más recientes primero"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Siguiente"
|
||||
|
||||
@@ -683,6 +723,10 @@ msgstr "Archivo OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr "Es necesario un archivo OPML"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Orden"
|
||||
@@ -695,11 +739,11 @@ msgstr "Padre"
|
||||
msgid "Parent Category"
|
||||
msgstr "Categoría principal"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
@@ -711,8 +755,12 @@ msgstr "Recuperación de contraseña"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Las contraseñas no coinciden"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Posición"
|
||||
|
||||
@@ -720,6 +768,10 @@ msgstr "Posición"
|
||||
msgid "Previous"
|
||||
msgstr "Previo"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Perfil"
|
||||
@@ -728,8 +780,12 @@ msgstr "Perfil"
|
||||
msgid "Recover password"
|
||||
msgstr "Recuperar contraseña"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Actualizar"
|
||||
|
||||
@@ -746,11 +802,11 @@ msgstr "API REST"
|
||||
msgid "Right click"
|
||||
msgstr "Clic derecho"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
||||
@@ -766,10 +822,10 @@ msgstr "Desplazarse suavemente al navegar entre entradas"
|
||||
msgid "Scrolling"
|
||||
msgstr "Desplazarse"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
@@ -777,6 +833,14 @@ msgstr "Buscar"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "La búsqueda requiere al menos 3 caracteres"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Establecer el foco en la siguiente entrada sin abrirla"
|
||||
@@ -851,9 +915,9 @@ msgstr "Mostrar recuento de no leídos en la pestaña favicon"
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr "Mostrar recuento de no leídos en el título de la pestaña"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Registrarse"
|
||||
|
||||
@@ -866,20 +930,21 @@ msgstr "Algo malo acaba de pasar..."
|
||||
msgid "Space"
|
||||
msgstr "Espacio"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Estrella"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Destacado"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Suscribirse"
|
||||
|
||||
@@ -916,6 +981,10 @@ msgstr "Sistema"
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetas"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "La URL del feed al que desea suscribirse. También puede utilizar la URL del sitio web directamente y CommaFeed intentará encontrar el feed en la página."
|
||||
@@ -952,8 +1021,8 @@ msgstr "¡Prueba la demostración!"
|
||||
msgid "Unread"
|
||||
msgstr "No leído"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Desmarcar"
|
||||
@@ -972,6 +1041,10 @@ msgstr "Nombre de usuario"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nombre de usuario o correo electrónico"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Advertencia"
|
||||
@@ -980,6 +1053,10 @@ msgstr "Advertencia"
|
||||
msgid "Website"
|
||||
msgstr "Sitio web"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Aún no tienes ninguna suscripción. ¿Por qué no intentas agregar una haciendo clic en el signo + en la parte superior de la página?"
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>به یک حساب نیاز دارید؟</0><1>ثبت نام کنید!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "در مورد"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "اضافه کردن دسته"
|
||||
msgid "Add user"
|
||||
msgstr "افزودن کاربر"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "مدیر"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "همه"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "آیا مطمئن هستید که می خواهید کاربر <0>{userN
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "آیا مطمئن هستید که می خواهید حساب خود را حذف کنید؟ "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "آیا مطمئن هستید که می خواهید همه ورودی های <0>{sourceLabel}</0> را به عنوان خوانده شده علامت گذاری کنید؟"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "آیا مطمئن هستید که می خواهید ورودی های قدیمی تر از {threshold} روز <0>{sourceLabel}</0> را به عنوان خوانده شده علامت گذاری کنید؟"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "برگشت"
|
||||
msgid "Back to log in"
|
||||
msgstr "بازگشت برای ورود به سیستم"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "لغو"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "مقوله"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "فشرده"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "تأیید کنید"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "توصیف"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "نمایش"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "دانلود"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "پیوند را به نوار نشانک بکشید"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "ایمیل"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "آدرس ایمیل"
|
||||
msgid "Edit user"
|
||||
msgstr "ویرایش کاربر"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "فعال"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "گسترش یافت"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "اشتراک ها و دسته های خود را به عنوان یک فایل OPML صادر کنید که می تواند در سایر خدمات خواندن فید وارد شود"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "نام فید"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL فید"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "بیان فیلتر"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "رمز عبور را فراموش کرده اید؟"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "ابتدا یک کلید API در نمایه خود ایجاد کنید."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "ابتدا یک کلید API در نمایه خود ایجاد کنید.
|
||||
msgid "Generate new API key"
|
||||
msgstr "کلید API جدید ایجاد کنید"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "آدرس اینترنتی فید تولید شده"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "به مستندات API بروید."
|
||||
msgid "Goodies"
|
||||
msgstr "خوبی ها"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "شناسه"
|
||||
@@ -440,13 +472,17 @@ msgstr "واردات"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "در نمای بازشده، پیمایش در ورودیها، آنها را به عنوان خوانده شده علامتگذاری میکند"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "خوانده نشده نگه دارید"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "میانبرهای صفحه کلید"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "آخرین پیام تازه کردن"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "پیوند"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "بارگیری اشتراک ها..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "بارگیری برچسب ها..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "وارد شوید"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "خروج"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "کاربران را مدیریت کنید"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "همه را به عنوان خوانده شده علامت گذاری کنید"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "همه ورودی ها را به عنوان خوانده شده علامت گذاری کنید"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "علامت گذاری به عنوان خوانده شده"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "تا اینجا به عنوان خوانده شده علامت بزنید"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "صفحه را به پایین ببرید"
|
||||
msgid "Move the page up"
|
||||
msgstr "صفحه را به بالا ببرید"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "نام"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "رمز عبور جدید"
|
||||
msgid "Newest first"
|
||||
msgstr "ابتدا جدیدترین"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "بعد"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "فایل OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "سفارش"
|
||||
@@ -694,11 +738,11 @@ msgstr "پدر و مادر"
|
||||
msgid "Parent Category"
|
||||
msgstr "دسته والد"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "رمز عبور"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "بازیابی رمز عبور"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "گذرواژه ها مطابقت ندارند"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "موقعیت"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "موقعیت"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "نمایه"
|
||||
@@ -727,8 +779,12 @@ msgstr "نمایه"
|
||||
msgid "Recover password"
|
||||
msgstr "بازیابی رمز عبور"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "تازه کردن"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "ذخیره کنید"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "هنگام پیمایش بین ورودیها به آرامی حرک
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "جستجو"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "جستجو"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "جستجو به حداقل 3 کاراکتر نیاز دارد"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "فوکوس را روی ورودی بعدی بدون باز کردن آن تنظیم کنید"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "ثبت نام کنید"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "اتفاق بدی افتاد..."
|
||||
msgid "Space"
|
||||
msgstr "فضا"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "ستاره"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "ستاره دار"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "مشترک شوید"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "برچسب ها"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL فیدی که می خواهید در آن مشترک شوید. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "خوانده نشده"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr ""
|
||||
@@ -971,6 +1040,10 @@ msgstr "نام کاربری"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "نام کاربری یا ایمیل"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "هشدار"
|
||||
@@ -979,6 +1052,10 @@ msgstr "هشدار"
|
||||
msgid "Website"
|
||||
msgstr "وب سایت"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "شما هنوز هیچ اشتراکی ندارید. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Tarvitsetko tilin?</0><1>Rekisteröidy!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Noin"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Lisää luokka"
|
||||
msgid "Add user"
|
||||
msgstr "Lisää käyttäjä"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Järjestelmänvalvoja"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Kaikki"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Haluatko varmasti poistaa käyttäjän <0>{userName}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Haluatko varmasti poistaa tilisi? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Haluatko varmasti merkitä kaikki kohteen <0>{sourceLabel}</0> merkinnät luetuiksi?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Haluatko varmasti merkitä <0>{sourceLabel}</0>:n {threshold} päivää vanhemmat merkinnät luetuiksi?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Takaisin"
|
||||
msgid "Back to log in"
|
||||
msgstr "Takaisin sisäänkirjautumiseen"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Peruuta"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Luokka"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompakti"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Vahvista"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Näyttö"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Lataa"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Vedä linkki kirjanmerkkipalkkiin"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "Sähköposti"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Sähköpostiosoite"
|
||||
msgid "Edit user"
|
||||
msgstr "Muokkaa käyttäjää"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Käytössä"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Laajennettu"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Vie tilauksesi ja luokat OPML-tiedostona, joka voidaan tuoda muihin syötteiden lukupalveluihin"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Syötteen nimi"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "Syötteen URL-osoite"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Suodattava lauseke"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Unohditko salasanan?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Luo ensin API-avain profiiliisi."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Luo ensin API-avain profiiliisi."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Luo uusi API-avain"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Luotu syötteen URL-osoite"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Siirry API-dokumentaatioon."
|
||||
msgid "Goodies"
|
||||
msgstr "Hyvää"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr "Tuo"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Merkitse ne luetuiksi laajennetussa näkymässä vierittämällä merkintöjä"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Pidä lukematta"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Pikanäppäimet"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Viimeinen päivitysviesti"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Linkki"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Ladataan tilauksia..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Ladataan tunnisteita..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Kirjaudu sisään"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Uloskirjautuminen"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Hallitse käyttäjiä"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Merkitse kaikki luetuiksi"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Merkitse kaikki merkinnät luetuiksi"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Merkitse luetuksi"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Merkitse luetuksi tähän asti"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Siirrä sivua alaspäin"
|
||||
msgid "Move the page up"
|
||||
msgstr "Siirrä sivua ylöspäin"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Uusi salasana"
|
||||
msgid "Newest first"
|
||||
msgstr "Uusin ensin"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Seuraava"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML-tiedosto"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Tilaus"
|
||||
@@ -694,11 +738,11 @@ msgstr "Vanhempi"
|
||||
msgid "Parent Category"
|
||||
msgstr "Pääluokka"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Salasana"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Salasanan palautus"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Salasanat eivät täsmää"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Sijainti"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Sijainti"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profiili"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profiili"
|
||||
msgid "Recover password"
|
||||
msgstr "Palauta salasana"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Päivitä"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Tallenna"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Selaa sujuvasti navigoidessasi merkintöjen välillä"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Etsi"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Etsi"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Haku vaatii vähintään 3 merkkiä"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Keskitä seuraavaan merkintään avaamatta sitä"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Rekisteröidy"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Jotain pahaa tapahtui juuri..."
|
||||
msgid "Space"
|
||||
msgstr "Avaruus"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Tähti"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Tähdellä merkitty"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Tilaa"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "Sen syötteen URL-osoite, jonka haluat tilata. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Lukematon"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Poista tähti"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Käyttäjänimi"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Käyttäjänimi tai sähköpostiosoite"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Varoitus"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Varoitus"
|
||||
msgid "Website"
|
||||
msgstr "Verkkosivusto"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Sinulla ei ole vielä tilauksia. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr "<0>Salut,</0><1>Je m'appelle Jérémie, je suis belge, et je développe
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Besoin d'un compte ?</0><1>Enregistrez-vous !</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "À propos"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Ajouter une catégorie"
|
||||
msgid "Add user"
|
||||
msgstr "Ajouter un utilisateur"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Administrateur"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Tout"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Êtes-vous sûr de vouloir supprimer l'utilisateur <0>{userName}</0> ?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Êtes-vous sûr de vouloir supprimer définitivement votre compte ?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Êtes-vous sûr de vouloir marquer toutes les entrées de <0>{sourceLabel}</0> comme lues ?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Êtes-vous sûr de vouloir marquer les entrées de <0>{sourceLabel}</0> plus anciennes que {threshold} jours comme lues ?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Retour"
|
||||
msgid "Back to log in"
|
||||
msgstr "Retour à la connexion"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr "Bleu"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr "L'extension navigateur est nécessaire sur Chrome"
|
||||
@@ -144,27 +153,27 @@ msgstr "Extension navigateur"
|
||||
msgid "Browser tab"
|
||||
msgstr "Onglet navigateur"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Catégorie"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr "CommaFeed version {version} ({revision})."
|
||||
msgid "Compact"
|
||||
msgstr "Compact"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmer"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr "Code CSS personnalisé qui sera appliqué"
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "Code JS personnalisé qui sera appliqué au chargement des pages"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr "Cyan"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr "Foncé"
|
||||
@@ -273,13 +287,14 @@ msgstr "Descendant"
|
||||
msgid "Detailed"
|
||||
msgstr "Vue détaillée"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Affichage"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Faire un don"
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Télécharger"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Déplacez le lien vers la barre de favoris"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-mail"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Adresse e-mail"
|
||||
msgid "Edit user"
|
||||
msgstr "Modifier un utilisateur"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Actif"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Vue étendue"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exporter vos abonnements et catégories en tant que fichier OPML qui peut être importé dans d'autres services de lecture de flux"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "Options de l'extension"
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr "Options de l'extension"
|
||||
msgid "Feed name"
|
||||
msgstr "Nom du flux"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL du flux"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr "URL API Fever"
|
||||
msgid "Filtering expression"
|
||||
msgstr "Expression de filtrage"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr "Taille de police"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr "La récupération forcée des flux n'est pas encore disponible."
|
||||
@@ -384,9 +403,9 @@ msgstr "La récupération forcée des flux n'est pas encore disponible."
|
||||
msgid "Forgot password?"
|
||||
msgstr "Mot de passe oublié ?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Générez d'abord une clé API dans votre profil."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Générez d'abord une clé API dans votre profil."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Générer une nouvelle clé API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "URL du flux généré"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "Aller à {0}"
|
||||
@@ -416,6 +436,18 @@ msgstr "Aller à la documentation de l'API."
|
||||
msgid "Goodies"
|
||||
msgstr "Extensions"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr "Bordeaux"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr "Gris"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr "Vert"
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "Identifiant"
|
||||
@@ -440,13 +472,17 @@ msgstr "Importer"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "En mode de lecture étendu, marquer les éléments comme lus lorsque la fenêtre descend."
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr "Indigo"
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Garder non lu"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Raccourcis clavier"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Dernier message de mise à jour"
|
||||
msgid "Light"
|
||||
msgstr "Clair"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr "Jaune-vert"
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Lien"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Chargement des abonnements..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Chargement des marqueurs..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Connexion"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Déconnexion"
|
||||
msgid "Long press"
|
||||
msgstr "Appui long"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Gestion des utilisateurs"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Tout marquer comme lu"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Marquer toutes les entrées comme lues"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Marquer comme lu"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Marquer comme lu jusqu'ici"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Faites défiler la page vers le bas"
|
||||
msgid "Move the page up"
|
||||
msgstr "Faites défiler la page vers le haut"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "N/A"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nouveau mot de passe"
|
||||
msgid "Newest first"
|
||||
msgstr "Plus récent en premier"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Suivant"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "Fichier OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr "Vous devez fournir un fichier OPML"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr "Orange"
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Ordre"
|
||||
@@ -694,11 +738,11 @@ msgstr "Parent"
|
||||
msgid "Parent Category"
|
||||
msgstr "Catégorie parente"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Récupération de mot de passe"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Les mots de passe ne correspondent pas"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr "Rose"
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Position"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Position"
|
||||
msgid "Previous"
|
||||
msgstr "Précédent"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr "Couleur d'ambiance"
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Récupérer le mot de passe"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr "Rouge"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Rafraîchir"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "API REST"
|
||||
msgid "Right click"
|
||||
msgstr "Clic droit"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Enregistrer"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Défilement animé lors de la navigation entre les entrées"
|
||||
msgid "Scrolling"
|
||||
msgstr "Défilement"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Rechercher"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Rechercher"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "La recherche requiert au moins 3 caractères"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr "Sélectionner l'article non lu suivant/la catégorie non lue suivante"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr "Sélectionner l'article non lu précédent/la catégorie non lue précédente"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Sélectionner l'article suivant sans l'ouvrir"
|
||||
@@ -850,9 +914,9 @@ msgstr "Afficher le nombre d'entrées non lues dans la favicône de l'onglet"
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr "Afficher le nombre d'entrées non lues dans le titre de l'onglet"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Créer un compte"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Quelque chose s'est mal passé..."
|
||||
msgid "Space"
|
||||
msgstr "Espace"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Ajouter aux favoris"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Favoris"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "S'abonner"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr "Système"
|
||||
msgid "Tags"
|
||||
msgstr "Marqueurs"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr "Bleu-vert"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "L'URL du flux auquel vous souhaitez vous abonner. Vous pouvez aussi utiliser l'URL du site directement et CommaFeed va essayer de trouver le flux dans la page."
|
||||
@@ -951,8 +1020,8 @@ msgstr "Essayez la version de démonstration !"
|
||||
msgid "Unread"
|
||||
msgstr "Non lu"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Retirer des favoris"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Nom"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nom d'utilisateur ou e-mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr "Violet"
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Attention"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Attention"
|
||||
msgid "Website"
|
||||
msgstr "Site web"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr "Jaune"
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Vous n'avez pas encore d'abonnements. Pourquoi ne pas essayer d'en ajouter un en cliquant sur le signe + en haut de la page ?"
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Necesitas unha conta?</0><1>Rexístrate!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Sobre"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Engadir categoría"
|
||||
msgid "Add user"
|
||||
msgstr "Engadir usuario"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Administración"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Estás seguro de que queres eliminar o usuario <0>{userName}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Estás seguro de que queres eliminar a túa conta? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Estás seguro de que queres marcar todas as entradas de <0>{sourceLabel}</0> como lidas?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Estás seguro de que queres marcar as entradas anteriores a {threshold} días de <0>{sourceLabel}</0> como lidas?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Atrás"
|
||||
msgid "Back to log in"
|
||||
msgstr "Volver para iniciar sesión"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Categoría"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Compacto"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Exhibición"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Descargar"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Arrastra a ligazón á barra de marcadores"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "Correo electrónico"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Enderezo de correo electrónico"
|
||||
msgid "Edit user"
|
||||
msgstr "Editar usuario"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Activado"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Ampliado"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exporta as túas subscricións e categorías como ficheiro OPML que se pode importar noutros servizos de lectura de feeds"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Nome do feed"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL da fonte"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Expresión de filtrado"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Esqueceches o contrasinal?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Xera primeiro unha clave API no teu perfil."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Xera primeiro unha clave API no teu perfil."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Xerar nova clave de API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "URL da fonte xerada"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Ir á documentación da API."
|
||||
msgid "Goodies"
|
||||
msgstr "agasallos"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr "Importación"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Na vista ampliada, ao desprazarse polas entradas márcaas como lidas"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Manter sen ler"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "atallos de teclado"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Última mensaxe de actualización"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Ligazón"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Cargando subscricións..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Cargando etiquetas..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Iniciar sesión"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Pechar sesión"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Xestionar usuarios"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Marcar todo como lido"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Marcar todas as entradas como lidas"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Marcar como lido"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Marcar como lido ata aquí"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Move a páxina cara abaixo"
|
||||
msgid "Move the page up"
|
||||
msgstr "Move a páxina cara arriba"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "novo contrasinal"
|
||||
msgid "Newest first"
|
||||
msgstr "o máis novo primeiro"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Seguinte"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "ficheiro OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Orde"
|
||||
@@ -694,11 +738,11 @@ msgstr "Pai"
|
||||
msgid "Parent Category"
|
||||
msgstr "Categoría de pais"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Contrasinal"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Recuperación de contrasinal"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Os contrasinais non coinciden"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Posición"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Posición"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Perfil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Perfil"
|
||||
msgid "Recover password"
|
||||
msgstr "Recuperar o contrasinal"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Actualizar"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "API REST"
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Gardar"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Desprácese suavemente ao navegar entre as entradas"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Busca"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Busca"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "A busca require polo menos 3 caracteres"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Establece o foco na seguinte entrada sen abrila"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Rexístrese"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Algo malo pasou..."
|
||||
msgid "Space"
|
||||
msgstr "Espazo"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "estrela"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "estrela"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Subscríbete"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetas"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "O URL do feed ao que quere subscribirse. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Sen ler"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Desestrela"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Nome de usuario"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nome de usuario ou correo electrónico"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Aviso"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Aviso"
|
||||
msgid "Website"
|
||||
msgstr "Páxina web"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Aínda non tes ningunha subscrición. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Fiókra van szüksége?</0><1>Regisztráljon!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Kb"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Kategória hozzáadása"
|
||||
msgid "Add user"
|
||||
msgstr "Felhasználó hozzáadása"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Mind"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Biztosan törölni szeretné a(z) <0>{userName}</0> felhasználót?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Biztosan törli a fiókját? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Biztosan olvasottként szeretné megjelölni a(z) <0>{sourceLabel}</0> összes bejegyzését?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Biztosan olvasottként szeretné megjelölni a(z) <0>{sourceLabel}</0> {threshold} napjánál régebbi bejegyzéseket?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Vissza"
|
||||
msgid "Back to log in"
|
||||
msgstr "Vissza a bejelentkezéshez"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Mégse"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategória"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompakt"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Erősítse meg"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Kijelző"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Letöltés"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Húzza a hivatkozást a könyvjelzősávra"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-mail cím"
|
||||
msgid "Edit user"
|
||||
msgstr "Felhasználó szerkesztése"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Engedélyezve"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Kiterjesztve"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exportálja előfizetéseit és kategóriáit OPML-fájlként, amely importálható más feedolvasó szolgáltatásokba"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Hírcsatorna neve"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr ""
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Szűrő kifejezés"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Elfelejtette a jelszavát?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Először generáljon API-kulcsot a profiljában."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Először generáljon API-kulcsot a profiljában."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Új API-kulcs létrehozása"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Hírcsatorna generált URL-je"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Nyissa meg az API dokumentációját."
|
||||
msgid "Goodies"
|
||||
msgstr "Jók"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr "Importálás"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Kibontott nézetben a bejegyzések görgetése olvasottként jelöli meg őket"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Olvasatlan marad"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Billentyűparancsok"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Utolsó frissítési üzenet"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Előfizetések betöltése..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Címkék betöltése..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Jelentkezzen be"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Kijelentkezés"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Felhasználók kezelése"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Minden megjelölése olvasottként"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Minden bejegyzés megjelölése olvasottként"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Megjelölés olvasottként"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Megjelölés idáig olvasottként"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Mozgassa le az oldalt"
|
||||
msgid "Move the page up"
|
||||
msgstr "Mozgassa felfelé az oldalt"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Név"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Új jelszó"
|
||||
msgid "Newest first"
|
||||
msgstr "A legújabbak először"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Következő"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML fájl"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Rendelés"
|
||||
@@ -694,11 +738,11 @@ msgstr "Szülő"
|
||||
msgid "Parent Category"
|
||||
msgstr "Szülő kategória"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Jelszó"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Jelszó helyreállítás"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "A jelszavak nem egyeznek"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Pozíció"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Pozíció"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Jelszó helyreállítása"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Frissítés"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Mentés"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Sima görgetés, amikor a bejegyzések között navigál"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Keresés"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Keresés"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "A kereséshez legalább 3 karakter szükséges"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Állítsa a fókuszt a következő bejegyzésre anélkül, hogy megnyitná azt"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Regisztráljon"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Valami rossz történt..."
|
||||
msgid "Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Csillag"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Csillaggal megjelölve"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Feliratkozás"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Címkék"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "Az előfizetni kívánt hírcsatorna URL-je. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Olvasatlan"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr ""
|
||||
@@ -971,6 +1040,10 @@ msgstr "Felhasználónév"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Felhasználói név vagy e-mail cím"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Figyelem"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Figyelem"
|
||||
msgid "Website"
|
||||
msgstr "Webhely"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Még nincs előfizetése. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Butuh akun?</0><1>Daftar!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Tentang"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Tambahkan kategori"
|
||||
msgid "Add user"
|
||||
msgstr "Tambahkan pengguna"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Semua"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Apakah Anda yakin ingin menghapus pengguna <0>{userName}</0> ?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Apakah Anda yakin ingin menghapus akun Anda? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Apakah Anda yakin ingin menandai semua entri <0>{sourceLabel}</0> sebagai telah dibaca?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Apakah Anda yakin ingin menandai entri yang lebih lama dari {threshold} hari <0>{sourceLabel}</0> sebagai telah dibaca?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Kembali"
|
||||
msgid "Back to log in"
|
||||
msgstr "Kembali untuk masuk"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategori"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Ringkas"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Konfirmasi"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Tampilan"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Unduh"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Seret tautan ke bilah bookmark"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "Email"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Alamat email"
|
||||
msgid "Edit user"
|
||||
msgstr "Edit pengguna"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Diaktifkan"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Diperluas"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Ekspor langganan dan kategori Anda sebagai file OPML yang dapat diimpor ke layanan membaca feed lainnya"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Nama umpan"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL Umpan"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Memfilter ekspresi"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Lupa kata sandi?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Buat kunci API di profil Anda terlebih dahulu."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Buat kunci API di profil Anda terlebih dahulu."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Buat kunci API baru"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Url umpan yang dihasilkan"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Buka dokumentasi API."
|
||||
msgid "Goodies"
|
||||
msgstr "Pernak-pernik"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr "Impor"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Dalam tampilan yang diperluas, menggulir entri menandainya sebagai telah dibaca"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Tetap belum dibaca"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Pintasan keyboard"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Pesan penyegaran terakhir"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Tautan"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Memuat langganan..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Memuat tag..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Masuk"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Keluar"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Kelola pengguna"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Tandai semua sebagai telah dibaca"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Tandai semua entri sebagai telah dibaca"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Tandai sebagai telah dibaca"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Tandai sebagai telah dibaca sampai di sini"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Pindahkan halaman ke bawah"
|
||||
msgid "Move the page up"
|
||||
msgstr "Pindahkan halaman ke atas"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "T/A"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nama"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Kata sandi baru"
|
||||
msgid "Newest first"
|
||||
msgstr "Terbaru dulu"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Selanjutnya"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "file OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Pesan"
|
||||
@@ -694,11 +738,11 @@ msgstr "Orang tua"
|
||||
msgid "Parent Category"
|
||||
msgstr "Kategori Induk"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Kata Sandi"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Pemulihan Kata Sandi"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Kata sandi tidak cocok"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Posisi"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Posisi"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Pulihkan kata sandi"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Segarkan"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Simpan"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Gulir dengan lancar saat menavigasi antar entri"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Pencarian"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Pencarian"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Pencarian membutuhkan setidaknya 3 karakter"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Tetapkan fokus pada entri berikutnya tanpa membukanya"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Daftar"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Sesuatu yang buruk baru saja terjadi..."
|
||||
msgid "Space"
|
||||
msgstr "Luar Angkasa"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Bintang"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Berbintang"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Berlangganan"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Tag"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL untuk umpan yang ingin Anda langgani. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Belum Dibaca"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Hapus bintang"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Nama pengguna"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nama Pengguna atau Email"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Peringatan"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Peringatan"
|
||||
msgid "Website"
|
||||
msgstr "Situs Web"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Anda belum memiliki langganan. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Hai bisogno di un account?</0><1>Registrati!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Circa"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Aggiungi categoria"
|
||||
msgid "Add user"
|
||||
msgstr "Aggiungi utente"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Ammin"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Tutto"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Sei sicuro di voler eliminare l'utente <0>{userName}</0> ?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Sei sicuro di voler eliminare il tuo account? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Sei sicuro di voler contrassegnare tutte le voci di <0>{sourceLabel}</0> come lette?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Sei sicuro di voler contrassegnare le voci più vecchie di {threshold} giorni di <0>{sourceLabel}</0> come lette?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Indietro"
|
||||
msgid "Back to log in"
|
||||
msgstr "Torna per accedere"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Categoria"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Compatto"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Conferma"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Visualizzazione"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Scarica"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Trascina il collegamento sulla barra dei preferiti"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Indirizzo e-mail"
|
||||
msgid "Edit user"
|
||||
msgstr "Modifica utente"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Abilitato"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Espanso"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Esporta le tue iscrizioni e categorie come file OPML che può essere importato in altri servizi di lettura feed"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Nome del feed"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL feed"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Espressione filtrante"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Password dimenticata?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Genera prima una chiave API nel tuo profilo."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Genera prima una chiave API nel tuo profilo."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Genera nuova chiave API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "URL feed generato"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Vai alla documentazione dell'API."
|
||||
msgid "Goodies"
|
||||
msgstr "Chicche"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr "Importa"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Nella vista espansa, scorrendo le voci contrassegnale come lette"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Mantieni non letto"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Scorciatoie da tastiera"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Ultimo messaggio di aggiornamento"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Collegamento"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Caricamento abbonamenti..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Caricamento tag..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Accedi"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Disconnessione"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Gestisci utenti"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Contrassegna tutto come letto"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Contrassegna tutte le voci come lette"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Contrassegna come letto"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Contrassegna come letto fino a qui"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Sposta la pagina in basso"
|
||||
msgid "Move the page up"
|
||||
msgstr "Sposta la pagina in alto"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nuova password"
|
||||
msgid "Newest first"
|
||||
msgstr "Il più recente prima"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Avanti"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "file OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Ordine"
|
||||
@@ -694,11 +738,11 @@ msgstr "Genitore"
|
||||
msgid "Parent Category"
|
||||
msgstr "Categoria padre"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Recupero password"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Le password non corrispondono"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Posizione"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Posizione"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profilo"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profilo"
|
||||
msgid "Recover password"
|
||||
msgstr "Recupera password"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Aggiorna"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "API REST"
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Salva"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Scorrere senza problemi durante la navigazione tra le voci"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Cerca"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "La ricerca richiede almeno 3 caratteri"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Imposta il focus sulla voce successiva senza aprirla"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Iscriviti"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "È appena successo qualcosa di brutto..."
|
||||
msgid "Space"
|
||||
msgstr "Spazio"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Stella"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Speciali"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Iscriviti"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Tag"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "L'URL del feed a cui vuoi iscriverti. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Non letto"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Elimina le stelle"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Nome utente"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nome utente o e-mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Avviso"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Avviso"
|
||||
msgid "Website"
|
||||
msgstr "Sito web"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Non hai ancora abbonamenti. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr "<0>こんにちは、</0><1>私はベルギーのジェレミーです
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>アカウントが必要ですか?</0><1>サインアップ!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "About"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "カテゴリを追加"
|
||||
msgid "Add user"
|
||||
msgstr "ユーザー追加"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "管理者"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "すべて"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "ユーザー <0>{userName}</0> を削除してもよろしいですか
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "本当にアカウントを削除しますか?元には戻せません!"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "<0>{sourceLabel}</0> のすべてのエントリーを既読にしますか?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "<0>{sourceLabel}</0> の {threshold} 日より前のエントリーを既読としてマークしてもよろしいですか?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "戻る"
|
||||
msgid "Back to log in"
|
||||
msgstr "ログインに戻る"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr "Chromeのブラウザー拡張が必要です"
|
||||
@@ -144,27 +153,27 @@ msgstr "ブラウザー拡張"
|
||||
msgid "Browser tab"
|
||||
msgstr "ブラウザータブ"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "カテゴリー"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr "CommaFeed バージョン {version} ({revision})。"
|
||||
msgid "Compact"
|
||||
msgstr "コンパクト"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "確認"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr "適用されるカスタムCSSルール"
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "ページ読み込み時に実行されるカスタムJSコード"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr "ダーク"
|
||||
@@ -273,13 +287,14 @@ msgstr "説明"
|
||||
msgid "Detailed"
|
||||
msgstr "詳細"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "ディスプレイ"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr "寄付"
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "ダウンロード"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "リンクをブックマークバーにドラッグ"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "メール"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "メールアドレス"
|
||||
msgid "Edit user"
|
||||
msgstr "ユーザーの編集"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "有効"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "拡張"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "サブスクリプションとカテゴリを、他のフィード読み取りサービスにインポートできる OPML ファイルとしてエクスポートします"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "拡張機能オプション"
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr "拡張機能オプション"
|
||||
msgid "Feed name"
|
||||
msgstr "フィード名"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "フィード URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr "Fever API URL"
|
||||
msgid "Filtering expression"
|
||||
msgstr "フィルタリング式"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr "フィードの強制フェッチはまだ利用できません。"
|
||||
@@ -384,9 +403,9 @@ msgstr "フィードの強制フェッチはまだ利用できません。"
|
||||
msgid "Forgot password?"
|
||||
msgstr "パスワードをお忘れですか?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "最初にプロファイルでAPIキーを生成します。"
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "最初にプロファイルでAPIキーを生成します。"
|
||||
msgid "Generate new API key"
|
||||
msgstr "新しいAPIキーを生成する"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "生成されたフィードURL"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "{0} に移動"
|
||||
@@ -416,6 +436,18 @@ msgstr "APIドキュメントに移動します。"
|
||||
msgid "Goodies"
|
||||
msgstr "グッズ"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "ID"
|
||||
@@ -440,13 +472,17 @@ msgstr "インポート"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "展開ビューでエントリーをスクロールすると、それらが既読としてマークされます"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "未読のままにする"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "キーボードショートカット"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "最終更新メッセージ"
|
||||
msgid "Light"
|
||||
msgstr "ライト"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "リンク"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "サブスクリプションを読み込んでいます..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "タグを読み込んでいます..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "ログイン"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "ログアウト"
|
||||
msgid "Long press"
|
||||
msgstr "長押し"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "ユーザーの管理"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "すべて既読にする"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "すべてのエントリーを既読にする"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "既読にする"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "ここまで既読にする"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "ページを下に移動"
|
||||
msgid "Move the page up"
|
||||
msgstr "ページを上に移動"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "該当なし"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "名前"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "新しいパスワード"
|
||||
msgid "Newest first"
|
||||
msgstr "最新順"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "次へ"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPMLファイル"
|
||||
msgid "OPML file is required"
|
||||
msgstr "OPMLファイルは必要です"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "オーダー"
|
||||
@@ -694,11 +738,11 @@ msgstr "親"
|
||||
msgid "Parent Category"
|
||||
msgstr "親カテゴリ"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "パスワード"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "パスワード回復"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "パスワードが一致しません"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "位置"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "位置"
|
||||
msgid "Previous"
|
||||
msgstr "前へ"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "プロフィール"
|
||||
@@ -727,8 +779,12 @@ msgstr "プロフィール"
|
||||
msgid "Recover password"
|
||||
msgstr "パスワードの回復"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "リフレッシュ"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "REST API"
|
||||
msgid "Right click"
|
||||
msgstr "右クリック"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "保存"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "エントリー間を移動するときにスムーズにスクロール
|
||||
msgid "Scrolling"
|
||||
msgstr "スクロール"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "検索"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "検索"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "検索には少なくとも3文字が必要です"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "次のエントリーを開かずにフォーカスする"
|
||||
@@ -850,9 +914,9 @@ msgstr "未読数をタブのアイコンに表示する"
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr "未読数をタブのタイトルに表示する"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "サインアップ"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "何か悪いことが起きました..."
|
||||
msgid "Space"
|
||||
msgstr "Space"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "スター"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "スター付き"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "購読する"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr "システム"
|
||||
msgid "Tags"
|
||||
msgstr "タグ"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "購読したいフィードのURL。ウェブサイトのURLを直接使用して、CommaFeedはページ内のフィードを検索します。"
|
||||
@@ -951,8 +1020,8 @@ msgstr "デモを試す!"
|
||||
msgid "Unread"
|
||||
msgstr "未読"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "スターを外す"
|
||||
@@ -971,6 +1040,10 @@ msgstr "ユーザー名"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "ユーザー名またはメールアドレス"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
@@ -979,6 +1052,10 @@ msgstr "警告"
|
||||
msgid "Website"
|
||||
msgstr "ウェブサイト"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "まだサブスクリプションがありません。上部の + 記号をクリックして1つ追加してみませんか?"
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>계정이 필요하십니까?</0><1>가입하세요!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "정보"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "카테고리 추가"
|
||||
msgid "Add user"
|
||||
msgstr "사용자 추가"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "관리자"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "전체"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "<0>{userName}</0> 사용자를 삭제하시겠습니까?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "정말 계정을 삭제하시겠습니까? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "<0>{sourceLabel}</0>의 모든 항목을 읽은 것으로 표시하시겠습니까?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "<0>{sourceLabel}</0>의 {threshold}일보다 오래된 항목을 읽은 것으로 표시하시겠습니까?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "뒤로"
|
||||
msgid "Back to log in"
|
||||
msgstr "로그인으로 돌아가기"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "취소"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "카테고리"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "컴팩트"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "확인"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "설명"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "디스플레이"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "다운로드"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "링크를 북마크바로 드래그"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "이메일"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "이메일 주소"
|
||||
msgid "Edit user"
|
||||
msgstr "사용자 편집"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "활성화"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "확장"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "구독 및 카테고리를 다른 피드 읽기 서비스에서 가져올 수 있는 OPML 파일로 내보내기"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "피드 이름"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "피드 URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "필터링 표현식"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "비밀번호를 잊으셨나요?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "먼저 프로필에서 API 키를 생성하십시오."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "먼저 프로필에서 API 키를 생성하십시오."
|
||||
msgid "Generate new API key"
|
||||
msgstr "새 API 키 생성"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "생성된 피드 URL"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "API 문서로 이동합니다."
|
||||
msgid "Goodies"
|
||||
msgstr "굿즈"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "아이디"
|
||||
@@ -440,13 +472,17 @@ msgstr "가져오기"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "확장 보기에서 항목을 스크롤하면 읽은 것으로 표시됩니다."
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "읽지 않은 상태로 유지"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "키보드 단축키"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "마지막 새로고침 메시지"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "링크"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "구독 로드 중..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "태그 로드 중..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "로그인"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "로그아웃"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "사용자 관리"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "모두 읽은 상태로 표시"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "모든 항목을 읽은 상태로 표시"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "읽은 상태로 표시"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "여기까지 읽은 것으로 표시"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "페이지를 아래로 이동"
|
||||
msgid "Move the page up"
|
||||
msgstr "페이지를 위로 이동"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "해당 없음"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "이름"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "새 비밀번호"
|
||||
msgid "Newest first"
|
||||
msgstr "최신순"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "다음"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML 파일"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "주문"
|
||||
@@ -694,11 +738,11 @@ msgstr "부모"
|
||||
msgid "Parent Category"
|
||||
msgstr "부모 카테고리"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "비밀번호"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "비밀번호 복구"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "비밀번호가 일치하지 않습니다"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "위치"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "위치"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "프로필"
|
||||
@@ -727,8 +779,12 @@ msgstr "프로필"
|
||||
msgid "Recover password"
|
||||
msgstr "비밀번호 복구"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "새로 고침"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "저장"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "항목 간 탐색 시 부드럽게 스크롤"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "검색"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "검색"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "검색에 최소 3자가 필요합니다."
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "열지 않고 다음 항목에 포커스 설정"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "가입"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "뭔가 안 좋은 일이 일어났어..."
|
||||
msgid "Space"
|
||||
msgstr "우주"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "스타"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "별표"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "구독"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "태그"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "구독하려는 피드의 URL입니다. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "읽지 않음"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "별표 제거"
|
||||
@@ -971,6 +1040,10 @@ msgstr "사용자 이름"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "사용자 이름 또는 이메일"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "경고"
|
||||
@@ -979,6 +1052,10 @@ msgstr "경고"
|
||||
msgid "Website"
|
||||
msgstr "웹사이트"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "아직 구독이 없습니다. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Perlukan akaun?</0><1>Daftar!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Mengenai"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Tambah kategori"
|
||||
msgid "Add user"
|
||||
msgstr "Tambah pengguna"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Pentadbir"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Semua"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Adakah anda pasti mahu memadamkan pengguna <0>{userName}</0> ?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Adakah anda pasti mahu memadamkan akaun anda? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Adakah anda pasti mahu menandakan semua entri <0>{sourceLabel}</0> sebagai dibaca?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Adakah anda pasti mahu menandakan entri yang lebih lama daripada {threshold} hari <0>{sourceLabel}</0> sebagai dibaca?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Kembali"
|
||||
msgid "Back to log in"
|
||||
msgstr "Kembali untuk log masuk"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategori"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Padat"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Sahkan"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "Dec"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Paparan"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Muat turun"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Seret pautan ke bar penanda halaman"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-mel"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Alamat e-mel"
|
||||
msgid "Edit user"
|
||||
msgstr "Edit pengguna"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Didayakan"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Dikembangkan"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Eksport langganan dan kategori anda sebagai fail OPML yang boleh diimport dalam perkhidmatan membaca suapan lain"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Nama suapan"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL Suapan"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Ungkapan penapisan"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Lupa kata laluan?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Jana kunci API dalam profil anda dahulu."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Jana kunci API dalam profil anda dahulu."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Jana kunci API baharu"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Url suapan yang dijana"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Pergi ke dokumentasi API."
|
||||
msgid "Goodies"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Dalam paparan yang diperluas, menatal melalui entri menandakannya sebagai dibaca"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Teruskan tidak dibaca"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Pintasan papan kekunci"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Mesej muat semula terakhir"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Pautan"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Memuatkan langganan..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Memuatkan tag..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Log masuk"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Log Keluar"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Urus pengguna"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Tandai semua sebagai dibaca"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Tandai semua entri sebagai dibaca"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Tandakan sebagai dibaca"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Tandai sebagai dibaca sehingga di sini"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Gerakkan halaman ke bawah"
|
||||
msgid "Move the page up"
|
||||
msgstr "Alih halaman ke atas"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "T/A"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nama"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Kata laluan baharu"
|
||||
msgid "Newest first"
|
||||
msgstr "Terbaharu dahulu"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Seterusnya"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "Fail OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Perintah"
|
||||
@@ -694,11 +738,11 @@ msgstr "Ibu bapa"
|
||||
msgid "Parent Category"
|
||||
msgstr "Kategori Induk"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Kata Laluan"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Pemulihan Kata Laluan"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Kata laluan tidak sepadan"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Kedudukan"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Kedudukan"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Pulihkan kata laluan"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Muat semula"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "REHAT API"
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Jimat"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Tatal dengan lancar apabila menavigasi antara entri"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Cari"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Cari"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Cari memerlukan sekurang-kurangnya 3 aksara"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Tetapkan fokus pada entri seterusnya tanpa membukanya"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Daftar"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Sesuatu yang buruk baru saja berlaku..."
|
||||
msgid "Space"
|
||||
msgstr "Angkasa"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Bintang"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Dibintangi"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Langgan"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Tag"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL untuk suapan yang anda ingin langgan. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Belum dibaca"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Nyahbintang"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Nama pengguna"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nama Pengguna atau E-mel"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Amaran"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Amaran"
|
||||
msgid "Website"
|
||||
msgstr "Laman web"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Anda belum mempunyai sebarang langganan lagi. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Omtrent"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Legg til kategori"
|
||||
msgid "Add user"
|
||||
msgstr "Legg til bruker"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Er du sikker på at du vil slette bruker <0>{brukernavn}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Er du sikker på at du vil slette kontoen din? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Er du sikker på at du vil merke alle oppføringer av <0>{sourceLabel}</0> som lest?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Er du sikker på at du vil merke oppføringer eldre enn {threshold} dager av <0>{sourceLabel}</0> som lest?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Tilbake"
|
||||
msgid "Back to log in"
|
||||
msgstr "Tilbake for å logge inn"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategori"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompakt"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Bekreft"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Visning"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Last ned"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Dra lenken til bokmerkelinjen"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-post"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-postadresse"
|
||||
msgid "Edit user"
|
||||
msgstr "Rediger bruker"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Aktivert"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Utvidet"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Eksporter abonnementene og kategoriene dine som en OPML-fil som kan importeres i andre feedlesetjenester"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Feednavn"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "Feed-URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtrerende uttrykk"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Glemt passord?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Generer en API-nøkkel i profilen din først."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Generer en API-nøkkel i profilen din først."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Generer ny API-nøkkel"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Generert feed-url"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Gå til API-dokumentasjonen."
|
||||
msgid "Goodies"
|
||||
msgstr "Godbiter"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføringer"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Behold ulest"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Tastatursnarveier"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Siste oppdateringsmelding"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Laster abonnementer..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Laster tagger..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Logg inn"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Logg ut"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Administrer brukere"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Merk alle som lest"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Merk alle oppføringer som lest"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Merk som lest"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Merk som lest frem til her"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Flytt siden ned"
|
||||
msgid "Move the page up"
|
||||
msgstr "Flytt siden opp"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Navn"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nytt passord"
|
||||
msgid "Newest first"
|
||||
msgstr "Nyeste først"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Neste"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML-fil"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Ord"
|
||||
@@ -694,11 +738,11 @@ msgstr "Foreldre"
|
||||
msgid "Parent Category"
|
||||
msgstr "Overordnet kategori"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Passord"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Passordgjenoppretting"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Passordene samsvarer ikke"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Posisjon"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Posisjon"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Gjenopprett passord"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Oppdater"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Lagre"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Rull jevnt når du navigerer mellom oppføringer"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Søk"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Søk"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Søk krever minst 3 tegn"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Sett fokus på neste oppføring uten å åpne den"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Meld deg på"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Noe ille skjedde akkurat..."
|
||||
msgid "Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Stjerne"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Stjerne"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Abonner"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL-en til feeden du vil abonnere på. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Ulest"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Fjern stjerne"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Brukernavn"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Brukernavn eller e-post"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Advarsel"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Advarsel"
|
||||
msgid "Website"
|
||||
msgstr "Nettsted"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Du har ingen abonnementer ennå. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Een account nodig?</0><1>Meld je aan!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Over"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Categorie toevoegen"
|
||||
msgid "Add user"
|
||||
msgstr "Gebruiker toevoegen"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Beheerder"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Alles"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Weet u zeker dat u gebruiker <0>{userName}</0> wilt verwijderen?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Weet je zeker dat je je account wilt verwijderen? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Weet je zeker dat je alle items van <0>{sourceLabel}</0> als gelezen wilt markeren?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Weet u zeker dat u vermeldingen die ouder zijn dan {threshold} dagen van <0>{sourceLabel}</0> als gelezen wilt markeren?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Terug"
|
||||
msgid "Back to log in"
|
||||
msgstr "Terug naar inloggen"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Categorie"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Bevestigen"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "Beschrijving"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Weergave"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Downloaden"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Link naar bladwijzerbalk slepen"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-mailadres"
|
||||
msgid "Edit user"
|
||||
msgstr "Gebruiker bewerken"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Ingeschakeld"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Uitgebreid"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exporteer uw abonnementen en categorieën als een OPML-bestand dat kan worden geïmporteerd in andere feedleesservices"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Feednaam"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "Feed-URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Uitdrukking filteren"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Wachtwoord vergeten?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Genereer eerst een API-sleutel in uw profiel."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Genereer eerst een API-sleutel in uw profiel."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Nieuwe API-sleutel genereren"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Gegenereerde feed-url"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Ga naar de API-documentatie."
|
||||
msgid "Goodies"
|
||||
msgstr "Goederen"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "In de uitgevouwen weergave markeert het scrollen door items ze als gelezen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Ongelezen houden"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "sneltoetsen"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Laatste verversingsbericht"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Abonnementen laden..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Tags laden..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Inloggen"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Uitloggen"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Gebruikers beheren"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Alles markeren als gelezen"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Markeer alle vermeldingen als gelezen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Markeren als gelezen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Markeer als gelezen tot hier"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Verplaats de pagina naar beneden"
|
||||
msgid "Move the page up"
|
||||
msgstr "Verplaats de pagina omhoog"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Naam"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nieuw wachtwoord"
|
||||
msgid "Newest first"
|
||||
msgstr "Nieuwste eerst"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Volgende"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML-bestand"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Bestelling"
|
||||
@@ -694,11 +738,11 @@ msgstr "Ouder"
|
||||
msgid "Parent Category"
|
||||
msgstr "Oudercategorie"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Wachtwoord"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Wachtwoordherstel"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Wachtwoorden komen niet overeen"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Positie"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Positie"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profiel"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profiel"
|
||||
msgid "Recover password"
|
||||
msgstr "wachtwoord herstellen"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Vernieuwen"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "REST-API"
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Opslaan"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Vloeiend scrollen bij het navigeren tussen items"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Zoeken"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Zoeken"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Zoeken vereist minimaal 3 tekens"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Stel de focus in op het volgende item zonder het te openen"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Aanmelden"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Er is net iets ergs gebeurd..."
|
||||
msgid "Space"
|
||||
msgstr "Ruimte"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Ster"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Met ster"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Abonneren"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "De URL voor de feed waarop u zich wilt abonneren. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Ongelezen"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Sterren uit"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Gebruikersnaam"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Gebruikersnaam of e-mailadres"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Waarschuwing"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Waarschuwing"
|
||||
msgid "Website"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Je hebt nog geen abonnementen. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Trenger du en konto?</0><1>Registrer deg!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Omtrent"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Legg til kategori"
|
||||
msgid "Add user"
|
||||
msgstr "Legg til bruker"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Er du sikker på at du vil slette bruker <0>{brukernavn}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Er du sikker på at du vil slette kontoen din? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Er du sikker på at du vil merke alle oppføringer av <0>{sourceLabel}</0> som lest?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Er du sikker på at du vil merke oppføringer eldre enn {threshold} dager av <0>{sourceLabel}</0> som lest?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Tilbake"
|
||||
msgid "Back to log in"
|
||||
msgstr "Tilbake for å logge inn"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategori"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompakt"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Bekreft"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Visning"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Last ned"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Dra lenken til bokmerkelinjen"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-post"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-postadresse"
|
||||
msgid "Edit user"
|
||||
msgstr "Rediger bruker"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Aktivert"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Utvidet"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Eksporter abonnementene og kategoriene dine som en OPML-fil som kan importeres i andre feedlesetjenester"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Feednavn"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "Feed-URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtrerende uttrykk"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Glemt passord?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Generer en API-nøkkel i profilen din først."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Generer en API-nøkkel i profilen din først."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Generer ny API-nøkkel"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Generert feed-url"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Gå til API-dokumentasjonen."
|
||||
msgid "Goodies"
|
||||
msgstr "Godbiter"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "I utvidet visning merker du dem som lest ved å rulle gjennom oppføringer"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Behold ulest"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Tastatursnarveier"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Siste oppdateringsmelding"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Laster abonnementer..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Laster tagger..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Logg inn"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Logg ut"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Administrer brukere"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Merk alle som lest"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Merk alle oppføringer som lest"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Merk som lest"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Merk som lest frem til her"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Flytt siden ned"
|
||||
msgid "Move the page up"
|
||||
msgstr "Flytt siden opp"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Navn"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nytt passord"
|
||||
msgid "Newest first"
|
||||
msgstr "Nyeste først"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Neste"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML-fil"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Ord"
|
||||
@@ -694,11 +738,11 @@ msgstr "Foreldre"
|
||||
msgid "Parent Category"
|
||||
msgstr "Overordnet kategori"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Passord"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Passordgjenoppretting"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Passordene samsvarer ikke"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Posisjon"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Posisjon"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Gjenopprett passord"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Oppdater"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Lagre"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Rull jevnt når du navigerer mellom oppføringer"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Søk"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Søk"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Søk krever minst 3 tegn"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Sett fokus på neste oppføring uten å åpne den"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Meld deg på"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Noe ille skjedde akkurat..."
|
||||
msgid "Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Stjerne"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Stjerne"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Abonner"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL-en til feeden du vil abonnere på. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Ulest"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Fjern stjerne"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Brukernavn"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Brukernavn eller e-post"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Advarsel"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Advarsel"
|
||||
msgid "Website"
|
||||
msgstr "Nettsted"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Du har ingen abonnementer ennå. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Potrzebujesz konta?</0><1>Zarejestruj się!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "O"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Dodaj kategorię"
|
||||
msgid "Add user"
|
||||
msgstr "Dodaj użytkownika"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Administracja"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Wszystkie"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Czy na pewno chcesz usunąć użytkownika <0>{userName}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Czy na pewno chcesz usunąć swoje konto? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Czy na pewno chcesz oznaczyć wszystkie wpisy <0>{sourceLabel}</0> jako przeczytane?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Czy na pewno chcesz oznaczyć wpisy starsze niż {threshold} dni z <0>{sourceLabel}</0> jako przeczytane?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Powrót"
|
||||
msgid "Back to log in"
|
||||
msgstr "Powrót do logowania"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategoria"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompaktowy"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Potwierdź"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "Opis"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Wyświetlacz"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Pobierz"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Przeciągnij link do paska zakładek"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Adres e-mail"
|
||||
msgid "Edit user"
|
||||
msgstr "Edytuj użytkownika"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "włączone"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Rozszerzony"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Eksportuj swoje subskrypcje i kategorie jako plik OPML, który można zaimportować do innych usług odczytu kanałów"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "nazwa kanału"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL kanału"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Wyrażenie filtrujące"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Zapomniałeś hasła?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Najpierw wygeneruj klucz API w swoim profilu."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Najpierw wygeneruj klucz API w swoim profilu."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Wygeneruj nowy klucz API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Wygenerowany adres URL kanału"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Przejdź do dokumentacji API."
|
||||
msgid "Goodies"
|
||||
msgstr "Gadżety"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "Identyfikator"
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "W widoku rozszerzonym przewijanie wpisów oznacza je jako przeczytane"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Nie przeczytaj"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Skróty klawiaturowe"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "wiadomość o ostatnim odświeżeniu"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Ładowanie subskrypcji..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Ładowanie tagów..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Zaloguj się"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Wyloguj"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Zarządzaj użytkownikami"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Oznacz wszystko jako przeczytane"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Oznacz wszystkie wpisy jako przeczytane"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Oznacz jako przeczytane"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Oznacz jako przeczytane do tej pory"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Przesuń stronę w dół"
|
||||
msgid "Move the page up"
|
||||
msgstr "Przesuń stronę w górę"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "nie dotyczy"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nazwa"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nowe hasło"
|
||||
msgid "Newest first"
|
||||
msgstr "Najnowsze jako pierwsze"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Dalej"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "plik OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Porządek"
|
||||
@@ -694,11 +738,11 @@ msgstr "Rodzic"
|
||||
msgid "Parent Category"
|
||||
msgstr "Kategoria nadrzędna"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Hasło"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Odzyskiwanie hasła"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Hasła nie pasują"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Pozycja"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Pozycja"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Odzyskaj hasło"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Odśwież"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Zapisz"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Przewijaj płynnie podczas nawigowania między wpisami"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Szukaj"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Szukaj"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Wyszukiwanie wymaga co najmniej 3 znaków"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Ustaw fokus na następnym wpisie bez otwierania go"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Zarejestruj się"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Coś złego właśnie się stało..."
|
||||
msgid "Space"
|
||||
msgstr "Przestrzeń"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Gwiazda"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Oznaczone gwiazdką"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Subskrybuj"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Tagi"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL kanału, który chcesz subskrybować. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Nieprzeczytane"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr ""
|
||||
@@ -971,6 +1040,10 @@ msgstr "Nazwa użytkownika"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nazwa użytkownika lub e-mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Ostrzeżenie"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Ostrzeżenie"
|
||||
msgid "Website"
|
||||
msgstr "Strona internetowa"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Nie masz jeszcze żadnych subskrypcji. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Precisa de uma conta?</0><1>Inscreva-se!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Sobre"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Adicionar categoria"
|
||||
msgid "Add user"
|
||||
msgstr "Adicionar usuário"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Administrador"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Todos"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Tem certeza de que deseja excluir o usuário <0>{userName}</0> ?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Tem certeza de que deseja excluir sua conta? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Tem certeza de que deseja marcar todas as entradas de <0>{sourceLabel}</0> como lidas?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Tem certeza de que deseja marcar entradas com mais de {threshold} dias de <0>{sourceLabel}</0> como lidas?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Voltar"
|
||||
msgid "Back to log in"
|
||||
msgstr "Voltar para logar"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Categoria"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Compacto"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Confirmar"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "Descrição"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Exibir"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Baixar"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Arraste o link para a barra de favoritos"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Endereço de e-mail"
|
||||
msgid "Edit user"
|
||||
msgstr "Editar usuário"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Ativado"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Expandido"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exporte suas inscrições e categorias como um arquivo OPML que pode ser importado em outros serviços de leitura de feed"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Nome do feed"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL do feed"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtrando expressão"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Esqueceu a senha?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Gere uma chave de API em seu perfil primeiro."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Gere uma chave de API em seu perfil primeiro."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Gerar nova chave de API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "URL do feed gerado"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Vá para a documentação da API."
|
||||
msgid "Goodies"
|
||||
msgstr "Brindes"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "ID"
|
||||
@@ -440,13 +472,17 @@ msgstr "Importar"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Na visualização expandida, rolar pelas entradas marca-as como lidas"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Manter não lido"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Atalhos de teclado"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Última mensagem de atualização"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr ""
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Carregando assinaturas..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Carregando tags..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Entrar"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Sair"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Gerenciar usuários"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Marcar todos como lidos"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Marcar todas as entradas como lidas"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Marcar como lido"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Marcar como lido até aqui"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Mova a página para baixo"
|
||||
msgid "Move the page up"
|
||||
msgstr "Mover a página para cima"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "N/D"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nova senha"
|
||||
msgid "Newest first"
|
||||
msgstr "Mais novo primeiro"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Próximo"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "Arquivo OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Ordem"
|
||||
@@ -694,11 +738,11 @@ msgstr "Pai"
|
||||
msgid "Parent Category"
|
||||
msgstr "Categoria Pai"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Senha"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Recuperação de Senha"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Senhas não coincidem"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Posição"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Posição"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Perfil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Perfil"
|
||||
msgid "Recover password"
|
||||
msgstr "Recuperar senha"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Atualizar"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "API REST"
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Salvar"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Rolar suavemente ao navegar entre as entradas"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Pesquisar"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Pesquisar"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Pesquisa requer pelo menos 3 caracteres"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Definir o foco na próxima entrada sem abri-la"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Inscreva-se"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Algo ruim acabou de acontecer..."
|
||||
msgid "Space"
|
||||
msgstr "Espaço"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Estrela"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Com estrela"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Assinar"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Etiquetas"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "A URL do feed que você deseja assinar. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Não lido"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Desestrelar"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Nome de usuário"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Nome de usuário ou e-mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Aviso"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Aviso"
|
||||
msgid "Website"
|
||||
msgstr "Site"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Você ainda não tem nenhuma assinatura. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr "<0>Здравствуйте,</0><1>Я Жереми из Бельгии,
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Нужен аккаунт?</0><1>Зарегистрируйтесь!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "О CommaFeed"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Добавить категорию"
|
||||
msgid "Add user"
|
||||
msgstr "Добавить пользователя"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Админ"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Все"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Вы уверены, что хотите удалить пользова
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Вы уверены, что хотите удалить свой аккаунт? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Вы уверены, что хотите пометить все записи <0>{sourceLabel}</0> как прочитанные?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Вы уверены, что хотите пометить записи старше {threshold} дней <0>{sourceLabel}</0> как прочитанные?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Назад"
|
||||
msgid "Back to log in"
|
||||
msgstr "Вернуться к входу"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr "Для браузера Chrome требуется расширение"
|
||||
@@ -144,27 +153,27 @@ msgstr "Расширение для браузера"
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Отмена"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Категория"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr "CommaFeed версии {version} ({revision})."
|
||||
msgid "Compact"
|
||||
msgstr "Компактный"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Подтвердить"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr "Пользовательские правила CSS, которые бу
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "Пользовательский JS-код, который будет выполняться при загрузке страницы"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr "Темная"
|
||||
@@ -273,13 +287,14 @@ msgstr "По убыванию"
|
||||
msgid "Detailed"
|
||||
msgstr "Подробно"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Отображение"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr "Пожертвование"
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Скачать"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Перетащите ссылку на панель закладок"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "Электронная почта"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "Адрес электронной почты"
|
||||
msgid "Edit user"
|
||||
msgstr "Редактировать пользователя"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Включено"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Расширенный"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Экспортируйте свои подписки и категории в виде файла OPML, который можно импортировать в другие службы чтения каналов."
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "Параметры расширения"
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr "Параметры расширения"
|
||||
msgid "Feed name"
|
||||
msgstr "Имя фида"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL-адрес фида"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr "Ссылка Fever API"
|
||||
msgid "Filtering expression"
|
||||
msgstr "Выражение фильтрации"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Забыли пароль?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Сначала сгенерируйте ключ API в своем профиле."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Сначала сгенерируйте ключ API в своем пр
|
||||
msgid "Generate new API key"
|
||||
msgstr "Создать новый ключ API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Сгенерированный URL фида"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "Перейти к {0}"
|
||||
@@ -416,6 +436,18 @@ msgstr "Перейдите к документации по API."
|
||||
msgid "Goodies"
|
||||
msgstr "Сладости"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "Идентификатор"
|
||||
@@ -440,13 +472,17 @@ msgstr "Импорт"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "В развернутом виде прокрутка записей помечает их как прочитанные."
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Оставить непрочитанным"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Сочетания клавиш"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Последнее сообщение об обновлении"
|
||||
msgid "Light"
|
||||
msgstr "Светлая"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Ссылка"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Загрузка подписок..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Загрузка тегов..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Войти"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Выйти"
|
||||
msgid "Long press"
|
||||
msgstr "Долгое нажатие"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Управление пользователями"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Отметить все как прочитанное"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Отметить все записи как прочитанные"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Отметить как прочитанное"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Отметить как прочитанное до этого места"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Переместить страницу вниз"
|
||||
msgid "Move the page up"
|
||||
msgstr "Переместить страницу вверх"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "Н/Д"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Имя"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Новый пароль"
|
||||
msgid "Newest first"
|
||||
msgstr "Сначала новые"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Следующий"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML файл"
|
||||
msgid "OPML file is required"
|
||||
msgstr "Необходим файл OPML"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Заказать"
|
||||
@@ -694,11 +738,11 @@ msgstr "Родительский"
|
||||
msgid "Parent Category"
|
||||
msgstr "Родительская категория"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Пароль"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Восстановление пароля"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Пароли не совпадают"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Позиция"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Позиция"
|
||||
msgid "Previous"
|
||||
msgstr "Предыдущий"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Профиль"
|
||||
@@ -727,8 +779,12 @@ msgstr "Профиль"
|
||||
msgid "Recover password"
|
||||
msgstr "Восстановить пароль"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Обновить"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "REST API"
|
||||
msgid "Right click"
|
||||
msgstr "Правый клик"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Сохранить"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Плавная прокрутка при переходе между з
|
||||
msgid "Scrolling"
|
||||
msgstr "Прокрутка"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Поиск"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Поиск"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Для поиска требуется не менее 3 символов"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Установить фокус на следующую запись, не открывая ее."
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Зарегистрироваться"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Только что случилось что-то плохое..."
|
||||
msgid "Space"
|
||||
msgstr "Пробел"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "В избранное"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Избранное"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Подписаться"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr "Системная"
|
||||
msgid "Tags"
|
||||
msgstr "Теги"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL канала, на который вы хотите подписаться. "
|
||||
@@ -951,8 +1020,8 @@ msgstr "Попробуйте демо-версию!"
|
||||
msgid "Unread"
|
||||
msgstr "Не прочитано"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Удалить из избранного"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Имя пользователя"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Имя пользователя или адрес электронной почты"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Предупреждение"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Предупреждение"
|
||||
msgid "Website"
|
||||
msgstr "Веб-сайт"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "У вас еще нет подписок. Почему бы не попробовать добавить их, нажав на знак \"+\" в верхней части страницы?"
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Potrebujete účet?</0><1>Zaregistrujte sa!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Asi"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Pridať kategóriu"
|
||||
msgid "Add user"
|
||||
msgstr "Pridať užívateľa"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Správca"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Všetky"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Naozaj chcete odstrániť používateľa <0>{userName}</0>?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Naozaj chcete vymazať svoj účet? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Naozaj chcete označiť všetky položky <0>{sourceLabel}</0> ako prečítané?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Naozaj chcete označiť záznamy staršie ako {threshold} dní z <0>{sourceLabel}</0> ako prečítané?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Späť"
|
||||
msgid "Back to log in"
|
||||
msgstr "Späť na prihlásenie"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušiť"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategória"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompaktný"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Potvrdiť"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Displej"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Stiahnuť"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Presuňte odkaz na lištu so záložkami"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr ""
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-mailová adresa"
|
||||
msgid "Edit user"
|
||||
msgstr "Upravte používateľa"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Povolené"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Rozšírené"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exportujte svoje odbery a kategórie ako súbor OPML, ktorý je možné importovať do iných služieb na čítanie informačných kanálov"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Názov informačného kanála"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "URL informačného kanála"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtrovanie výrazu"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Zabudli ste heslo?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Najprv si vo svojom profile vygenerujte kľúč API."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Najprv si vo svojom profile vygenerujte kľúč API."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Vygenerujte nový kľúč API"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Generovaná adresa URL informačného kanála"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Prejdite na dokumentáciu API."
|
||||
msgid "Goodies"
|
||||
msgstr "Dobrôtky"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "V rozšírenom zobrazení ich rolovanie cez položky označí ako prečítané"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Ponechať neprečítané"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Klávesové skratky"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Posledná obnovovacia správa"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Odkaz"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Načítavam odbery..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Načítavam značky..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Prihláste sa"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Odhlásenie"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Správa používateľov"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Označiť všetko ako prečítané"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Označte všetky položky ako prečítané"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Označiť ako prečítané"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Označiť ako prečítané až sem"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Posuňte stránku nadol"
|
||||
msgid "Move the page up"
|
||||
msgstr "Posuňte stránku nahor"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Meno"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nové heslo"
|
||||
msgid "Newest first"
|
||||
msgstr "Najnovšie ako prvé"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Ďalej"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "súbor OPML"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Poriadok"
|
||||
@@ -694,11 +738,11 @@ msgstr "Rodič"
|
||||
msgid "Parent Category"
|
||||
msgstr "Rodičovská kategória"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Heslo"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Obnovenie hesla"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Heslá sa nezhodujú"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Pozícia"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Pozícia"
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Obnoviť heslo"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Obnoviť"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Uložiť"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Pri navigácii medzi položkami plynulo rolujte"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Hľadaj"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Hľadaj"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Hľadanie vyžaduje aspoň 3 znaky"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Nastavte zameranie na ďalší záznam bez toho, aby ste ho otvorili"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Zaregistrujte sa"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Práve sa stalo niečo zlé..."
|
||||
msgid "Space"
|
||||
msgstr "Vesmír"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Hviezda"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "S hviezdičkou"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Prihlásiť sa"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Značky"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL zdroja, na odber ktorého sa chcete prihlásiť. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Neprečítané"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Odobrať hviezdičku"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Meno používateľa"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Meno používateľa alebo e-mail"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Varovanie"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Varovanie"
|
||||
msgid "Website"
|
||||
msgstr "Webová stránka"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Zatiaľ nemáte žiadne odbery. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr ""
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Behöver du ett konto?</0><1>Registrera dig!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Ungefär"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Lägg till kategori"
|
||||
msgid "Add user"
|
||||
msgstr "Lägg till användare"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr ""
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Alla"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "Är du säker på att du vill ta bort användare <0>{användarnamn}</0>?
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Är du säker på att du vill ta bort ditt konto? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Är du säker på att du vill markera alla poster i <0>{sourceLabel}</0> som lästa?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Är du säker på att du vill markera poster äldre än {threshold} dagar av <0>{sourceLabel}</0> som lästa?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Tillbaka"
|
||||
msgid "Back to log in"
|
||||
msgstr "Tillbaka för att logga in"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr ""
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategori"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr ""
|
||||
msgid "Compact"
|
||||
msgstr "Kompakt"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Bekräfta"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr ""
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr ""
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Visa"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "Ladda ner"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Dra länken till bokmärkesfältet"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-post"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-postadress"
|
||||
msgid "Edit user"
|
||||
msgstr "Redigera användare"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiverad"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Utökad"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Exportera dina prenumerationer och kategorier som en OPML-fil som kan importeras i andra flödesläsningstjänster"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr ""
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr ""
|
||||
msgid "Feed name"
|
||||
msgstr "Flödesnamn"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "Flödes-URL"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtrerande uttryck"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Glömt lösenord?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Generera en API-nyckel i din profil först."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Generera en API-nyckel i din profil först."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Generera ny API-nyckel"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Genererad feed-url"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr ""
|
||||
@@ -416,6 +436,18 @@ msgstr "Gå till API-dokumentationen."
|
||||
msgid "Goodies"
|
||||
msgstr "Godsaker"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr ""
|
||||
@@ -440,13 +472,17 @@ msgstr ""
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "I utökad vy, rullning genom poster markerar dem som lästa"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Behåll oläst"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Kortkommandon"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Senaste uppdateringsmeddelande"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Länk"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Laddar prenumerationer..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Laddar taggar..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Logga in"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Logga ut"
|
||||
msgid "Long press"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Hantera användare"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Markera alla som lästa"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Markera alla poster som lästa"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Markera som läst"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Markera som läst hit"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Flytta sidan nedåt"
|
||||
msgid "Move the page up"
|
||||
msgstr "Flytta sidan uppåt"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "Namn"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Nytt lösenord"
|
||||
msgid "Newest first"
|
||||
msgstr "Nyast först"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Nästa"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML-fil"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Beställning"
|
||||
@@ -694,11 +738,11 @@ msgstr "Förälder"
|
||||
msgid "Parent Category"
|
||||
msgstr "Föräldrakategori"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Lösenord"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Lösenordsåterställning"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Lösenorden matchar inte"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr ""
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr ""
|
||||
msgid "Previous"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Återställ lösenord"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Uppdatera"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr ""
|
||||
msgid "Right click"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Spara"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Bläddra mjukt när du navigerar mellan poster"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Sök"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Sök"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Sökning kräver minst 3 tecken"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Sätt fokus på nästa post utan att öppna den"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Anmäl dig"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Något dåligt hände precis..."
|
||||
msgid "Space"
|
||||
msgstr "Rymden"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Stjärna"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Starmed"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Prenumerera"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Taggar"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "URL:en för flödet du vill prenumerera på. "
|
||||
@@ -951,8 +1020,8 @@ msgstr ""
|
||||
msgid "Unread"
|
||||
msgstr "Oläst"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr ""
|
||||
@@ -971,6 +1040,10 @@ msgstr "Användarnamn"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Användarnamn eller e-post"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Varning"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Varning"
|
||||
msgid "Website"
|
||||
msgstr "Webbplats"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Du har inga prenumerationer än. "
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr "<0>Merhaba,</0><1>Ben Belçika'dan Jérémie ve 10 yıldır boş zamanla
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>Bir hesaba mı ihtiyacınız var?</0><1>Kaydolun!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "Hakkında"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "Kategori ekle"
|
||||
msgid "Add user"
|
||||
msgstr "Kullanıcı ekle"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "Yönetici"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "Tümü"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "<0>{userName}</0> kullanıcısını silmek istediğinizden emin misiniz?
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "Hesabınızı silmek istediğinizden emin misiniz? "
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "Tüm <0>{sourceLabel}</0> girişlerini okundu olarak işaretlemek istediğinizden emin misiniz?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "<0>{sourceLabel}</0> tarihine ait {threshold} günden eski girişleri okundu olarak işaretlemek istediğinizden emin misiniz?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "Geri"
|
||||
msgid "Back to log in"
|
||||
msgstr "Giriş yapmak için geri dön"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr ""
|
||||
@@ -144,27 +153,27 @@ msgstr "Tarayıcı eklentisi"
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "İptal"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "Kategori"
|
||||
|
||||
@@ -204,11 +213,11 @@ msgstr "CommaFeed sürüm {version} ({revision})."
|
||||
msgid "Compact"
|
||||
msgstr "Kompakt"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "Onayla"
|
||||
|
||||
@@ -240,6 +249,11 @@ msgstr "Uygulanacak özel CSS kuralları"
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "Sayfa yüklendiğinde çalıştırılacak özel JS kodu"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr ""
|
||||
@@ -273,13 +287,14 @@ msgstr "Açılış"
|
||||
msgid "Detailed"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "Ekran"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr ""
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "İndir"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "Bağlantıyı yer işareti çubuğuna sürükleyin"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "E-posta"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "E-posta adresi"
|
||||
msgid "Edit user"
|
||||
msgstr "Kullanıcıyı düzenle"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "Etkin"
|
||||
|
||||
@@ -345,8 +360,8 @@ msgstr "Genişletilmiş"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "Aboneliklerinizi ve kategorilerinizi diğer besleme okuma hizmetlerinde içe aktarılabilen bir OPML dosyası olarak dışa aktarın"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "Eklenti ayarları"
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr "Eklenti ayarları"
|
||||
msgid "Feed name"
|
||||
msgstr "Yayın adı"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "Feed URL'si"
|
||||
|
||||
@@ -376,6 +391,10 @@ msgstr ""
|
||||
msgid "Filtering expression"
|
||||
msgstr "Filtreleme ifadesi"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
@@ -384,9 +403,9 @@ msgstr ""
|
||||
msgid "Forgot password?"
|
||||
msgstr "Parolanızı mı unuttunuz?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "Önce profilinizde bir API anahtarı oluşturun."
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "Önce profilinizde bir API anahtarı oluşturun."
|
||||
msgid "Generate new API key"
|
||||
msgstr "Yeni API anahtarı oluştur"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "Oluşturulan besleme url'si"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "{0}'a git"
|
||||
@@ -416,6 +436,18 @@ msgstr "API belgelerine gidin."
|
||||
msgid "Goodies"
|
||||
msgstr "İyilikler"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "Kimlik"
|
||||
@@ -440,13 +472,17 @@ msgstr "İçe Aktar"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "Genişletilmiş görünümde, girişler arasında gezinmek onları okundu olarak işaretler"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "Okunmadan sakla"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "Klavye kısayolları"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "Son yenileme mesajı"
|
||||
msgid "Light"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "Bağlantı"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "Abonelikler yükleniyor..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "Etiketler yükleniyor..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "Giriş"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "Çıkış"
|
||||
msgid "Long press"
|
||||
msgstr "Uzun bas"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "Kullanıcıları yönet"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "Tümünü okundu olarak işaretle"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "Tüm girişleri okundu olarak işaretle"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "Okundu olarak işaretle"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "Buraya kadar okundu olarak işaretle"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "Sayfayı aşağı taşı"
|
||||
msgid "Move the page up"
|
||||
msgstr "Sayfayı yukarı taşı"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "Yok"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "İsim"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "Yeni şifre"
|
||||
msgid "Newest first"
|
||||
msgstr "Önce en yenisi"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "Sonraki"
|
||||
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML dosyası"
|
||||
msgid "OPML file is required"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "Sipariş"
|
||||
@@ -694,11 +738,11 @@ msgstr "Ebeveyn"
|
||||
msgid "Parent Category"
|
||||
msgstr "Üst Kategori"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "Şifre"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "Parola Kurtarma"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Parolalar eşleşmiyor"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "Konum"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "Konum"
|
||||
msgid "Previous"
|
||||
msgstr "Önceki"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "Profil"
|
||||
@@ -727,8 +779,12 @@ msgstr "Profil"
|
||||
msgid "Recover password"
|
||||
msgstr "Şifreyi kurtar"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "Yenile"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "REST API"
|
||||
msgid "Right click"
|
||||
msgstr "Sağ tık"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "Kaydet"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "Girişler arasında gezinirken sorunsuz ilerleyin"
|
||||
msgid "Scrolling"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "Ara"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "Ara"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "Arama için en az 3 karakter gerekiyor"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "Odağı açmadan sonraki girişe ayarlayın"
|
||||
@@ -850,9 +914,9 @@ msgstr ""
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "Kaydolun"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "Az önce kötü bir şey oldu..."
|
||||
msgid "Space"
|
||||
msgstr "Uzay"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "Yıldız"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "Yıldızlı"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "Abone ol"
|
||||
|
||||
@@ -915,6 +980,10 @@ msgstr ""
|
||||
msgid "Tags"
|
||||
msgstr "Etiketler"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "Abone olmak istediğiniz beslemenin URL'si. "
|
||||
@@ -951,8 +1020,8 @@ msgstr "Demo'yu deneyin!"
|
||||
msgid "Unread"
|
||||
msgstr "Okunmamış"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "Yıldızı kaldır"
|
||||
@@ -971,6 +1040,10 @@ msgstr "Kullanıcı adı"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "Kullanıcı Adı veya E-posta"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr ""
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "Uyarı"
|
||||
@@ -979,6 +1052,10 @@ msgstr "Uyarı"
|
||||
msgid "Website"
|
||||
msgstr "Web sitesi"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "Henüz aboneliğiniz yok. Sayfanın üstündeki + işaretiyle feed ekleyebilirsiniz."
|
||||
|
||||
@@ -33,8 +33,12 @@ msgstr "<0>您好,</0><1>我是来自比利时的Jérémie,已经在业余时
|
||||
msgid "<0>Need an account?</0><1>Sign up!</1>"
|
||||
msgstr "<0>需要一个帐户?</0><1>注册!</1>"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
msgid "<0>See </0><1>here</1><2> for more information.</2>"
|
||||
msgstr ""
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "About"
|
||||
msgstr "关于"
|
||||
|
||||
@@ -54,16 +58,17 @@ msgstr "添加类别"
|
||||
msgid "Add user"
|
||||
msgstr "添加用户"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Admin"
|
||||
msgstr "管理员"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/CategorySelect.tsx
|
||||
msgid "All"
|
||||
msgstr "全部"
|
||||
|
||||
@@ -104,11 +109,11 @@ msgstr "您确定要删除用户 <0>{userName}</0> 吗?"
|
||||
msgid "Are you sure you want to delete your account? There's no turning back!"
|
||||
msgstr "您确定要删除您的帐户吗?这是不可逆的!"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark all entries of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "您确定要将 <0>{sourceLabel}</0> 的所有条目标记为已读吗?"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
msgid "Are you sure you want to mark entries older than {threshold} days of <0>{sourceLabel}</0> as read?"
|
||||
msgstr "您确定要将早于 <0>{sourceLabel}</0> {threshold} 天的条目标记为已读吗?"
|
||||
|
||||
@@ -132,6 +137,10 @@ msgstr "返回"
|
||||
msgid "Back to log in"
|
||||
msgstr "返回登录"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Blue"
|
||||
msgstr "蓝"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Browser extension required for Chrome"
|
||||
msgstr "浏览器扩展"
|
||||
@@ -142,29 +151,29 @@ msgstr "浏览器扩展"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Browser tab"
|
||||
msgstr ""
|
||||
msgstr "浏览器标签页"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/content/add/ImportOpml.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
#: src/components/content/add/AddCategory.tsx
|
||||
msgid "Category"
|
||||
msgstr "类别"
|
||||
|
||||
@@ -182,7 +191,7 @@ msgstr "关闭菜单"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Cmd"
|
||||
msgstr ""
|
||||
msgstr "Cmd"
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "CommaFeed browser extension version {browserExtensionVersion}."
|
||||
@@ -204,11 +213,11 @@ msgstr "CommaFeed版本:{version} ({revision})"
|
||||
msgid "Compact"
|
||||
msgstr "紧凑"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
msgid "Confirm"
|
||||
msgstr "确认"
|
||||
|
||||
@@ -240,9 +249,14 @@ msgstr "将被应用的自定义CSS规则"
|
||||
msgid "Custom JS code that will be executed on page load"
|
||||
msgstr "将在页面加载时执行的自定义JS代码"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Cyan"
|
||||
msgstr "青"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Dark"
|
||||
msgstr "深色"
|
||||
msgstr "暗黑"
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Date created"
|
||||
@@ -273,13 +287,14 @@ msgstr "降序"
|
||||
msgid "Detailed"
|
||||
msgstr "详细"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Display"
|
||||
msgstr "显示"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/app/DonatePage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Donate"
|
||||
msgstr "捐赠"
|
||||
|
||||
@@ -291,11 +306,11 @@ msgstr "下载"
|
||||
msgid "Drag link to bookmark bar"
|
||||
msgstr "拖动链接到书签栏"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/pages/auth/PasswordRecoveryPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "E-mail"
|
||||
msgstr "电子邮件"
|
||||
|
||||
@@ -308,8 +323,8 @@ msgstr "电子邮件地址"
|
||||
msgid "Edit user"
|
||||
msgstr "编辑用户"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Enabled"
|
||||
msgstr "已启用"
|
||||
|
||||
@@ -323,7 +338,7 @@ msgstr "输入您当前的密码以更改配置文件设置"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Entries to keep above the selected entry when scrolling"
|
||||
msgstr ""
|
||||
msgstr "滚动时固定在顶部的条目"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Entry headers"
|
||||
@@ -345,8 +360,8 @@ msgstr "展开"
|
||||
msgid "Export your subscriptions and categories as an OPML file that can be imported in other feed reading services"
|
||||
msgstr "将您的订阅和类别导出为 OPML 文件,可以在其它信息流阅读服务中导入"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Extension options"
|
||||
msgstr "扩展选项"
|
||||
|
||||
@@ -354,9 +369,9 @@ msgstr "扩展选项"
|
||||
msgid "Feed name"
|
||||
msgstr "信息流名称"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Feed URL"
|
||||
msgstr "信息流网址"
|
||||
|
||||
@@ -376,17 +391,21 @@ msgstr "Fever API 网址"
|
||||
msgid "Filtering expression"
|
||||
msgstr "过滤表达式"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Font size"
|
||||
msgstr "字号"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Force fetching feeds is not yet available."
|
||||
msgstr ""
|
||||
msgstr "强制获取订阅源功能不可用。"
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Forgot password?"
|
||||
msgstr "忘记密码?"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generate an API key in your profile first."
|
||||
msgstr "首先在您的配置文件中生成一个 API 密钥。"
|
||||
|
||||
@@ -394,12 +413,13 @@ msgstr "首先在您的配置文件中生成一个 API 密钥。"
|
||||
msgid "Generate new API key"
|
||||
msgstr "生成新的 API 密钥"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Generated feed url"
|
||||
msgstr "生成信息流网址"
|
||||
|
||||
#. placeholder {0}: truncate(props.entry.feedName, 30)
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Go to {0}"
|
||||
msgstr "转到 {0}"
|
||||
@@ -416,6 +436,18 @@ msgstr "API 文档"
|
||||
msgid "Goodies"
|
||||
msgstr "好东西"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Grape"
|
||||
msgstr "深紫"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Gray"
|
||||
msgstr "灰"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Green"
|
||||
msgstr "绿"
|
||||
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
msgid "Id"
|
||||
msgstr "序号"
|
||||
@@ -440,13 +472,17 @@ msgstr "导入"
|
||||
msgid "In expanded view, scrolling through entries mark them as read"
|
||||
msgstr "在展开视图中,滚动条目将它们标记为已读"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Indigo"
|
||||
msgstr "靛蓝"
|
||||
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Keep unread"
|
||||
msgstr "保持未读状态"
|
||||
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
#: src/components/content/FeedEntries.tsx
|
||||
msgid "Keyboard shortcuts"
|
||||
msgstr "键盘快捷键"
|
||||
|
||||
@@ -470,9 +506,13 @@ msgstr "上次刷新消息"
|
||||
msgid "Light"
|
||||
msgstr "浅色"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Lime"
|
||||
msgstr "浅黄"
|
||||
|
||||
#: src/pages/app/TagDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Link"
|
||||
msgstr "链接"
|
||||
|
||||
@@ -492,9 +532,9 @@ msgstr "正在加载订阅..."
|
||||
msgid "Loading tags..."
|
||||
msgstr "正在加载标签..."
|
||||
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
msgid "Log in"
|
||||
msgstr "登录"
|
||||
|
||||
@@ -506,27 +546,27 @@ msgstr "注销"
|
||||
msgid "Long press"
|
||||
msgstr "长按"
|
||||
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/header/ProfileMenu.tsx
|
||||
msgid "Manage users"
|
||||
msgstr "管理用户"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Mark all as read"
|
||||
msgstr "全部标记为已读"
|
||||
|
||||
#: src/components/header/MarkAllAsReadButton.tsx
|
||||
#: src/components/MarkAllAsReadConfirmationDialog.tsx
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Mark all entries as read"
|
||||
msgstr "将所有条目标记为已读"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read"
|
||||
msgstr "标记为已读"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
msgid "Mark as read up to here"
|
||||
msgstr "标记为已读到这里"
|
||||
|
||||
@@ -546,15 +586,15 @@ msgstr "下移页面"
|
||||
msgid "Move the page up"
|
||||
msgstr "上移页面"
|
||||
|
||||
#: src/components/RelativeDate.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/components/RelativeDate.tsx
|
||||
msgid "N/A"
|
||||
msgstr "不适用"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/admin/AdminUsersPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Name"
|
||||
msgstr "名称"
|
||||
|
||||
@@ -575,8 +615,8 @@ msgstr "新密码"
|
||||
msgid "Newest first"
|
||||
msgstr "最新的优先"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Next"
|
||||
msgstr "下一个"
|
||||
|
||||
@@ -618,7 +658,7 @@ msgstr "在移动端,显示屏幕底部的操作按钮"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Only applies to compact, cozy and detailed modes"
|
||||
msgstr ""
|
||||
msgstr "仅适用于紧凑、宽松和详细模式"
|
||||
|
||||
#: src/pages/ErrorPage.tsx
|
||||
msgid "Oops!"
|
||||
@@ -682,6 +722,10 @@ msgstr "OPML 文件"
|
||||
msgid "OPML file is required"
|
||||
msgstr "OPML 文件是必需的"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Orange"
|
||||
msgstr "橙"
|
||||
|
||||
#: src/pages/app/AboutPage.tsx
|
||||
msgid "Order"
|
||||
msgstr "顺序"
|
||||
@@ -694,11 +738,11 @@ msgstr "父类别"
|
||||
msgid "Parent Category"
|
||||
msgstr "父类别"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/LoginPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Password"
|
||||
msgstr "密码"
|
||||
|
||||
@@ -710,8 +754,12 @@ msgstr "密码恢复"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "密码不匹配"
|
||||
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Pink"
|
||||
msgstr "粉红"
|
||||
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
msgid "Position"
|
||||
msgstr "位置"
|
||||
|
||||
@@ -719,6 +767,10 @@ msgstr "位置"
|
||||
msgid "Previous"
|
||||
msgstr "上一个"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Primary color"
|
||||
msgstr "主颜色"
|
||||
|
||||
#: src/pages/app/SettingsPage.tsx
|
||||
msgid "Profile"
|
||||
msgstr "配置文件"
|
||||
@@ -727,8 +779,12 @@ msgstr "配置文件"
|
||||
msgid "Recover password"
|
||||
msgstr "找回密码"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Red"
|
||||
msgstr "红"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Refresh"
|
||||
msgstr "刷新"
|
||||
|
||||
@@ -745,11 +801,11 @@ msgstr "REST API"
|
||||
msgid "Right click"
|
||||
msgstr "右键单击"
|
||||
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/pages/app/FeedDetailsPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/settings/ProfileSettings.tsx
|
||||
#: src/components/settings/CustomCodeSettings.tsx
|
||||
#: src/components/admin/UserEdit.tsx
|
||||
msgid "Save"
|
||||
msgstr "保存"
|
||||
|
||||
@@ -765,10 +821,10 @@ msgstr "在条目之间导航时平滑滚动"
|
||||
msgid "Scrolling"
|
||||
msgstr "滚动"
|
||||
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/sidebar/TreeSearch.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
#: src/components/header/Header.tsx
|
||||
msgid "Search"
|
||||
msgstr "搜索"
|
||||
|
||||
@@ -776,6 +832,14 @@ msgstr "搜索"
|
||||
msgid "Search requires at least 3 characters"
|
||||
msgstr "搜索至少需要 3 个字符"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select next unread feed/category"
|
||||
msgstr "选择下一个未读信息流/类别"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Select previous unread feed/category"
|
||||
msgstr "选择上一个未读信息流/类别"
|
||||
|
||||
#: src/components/KeyboardShortcutsHelp.tsx
|
||||
msgid "Set focus on next entry without opening it"
|
||||
msgstr "将焦点放在下一个条目而不打开它"
|
||||
@@ -844,15 +908,15 @@ msgstr "显示星标图标"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Show unread count in tab favicon"
|
||||
msgstr ""
|
||||
msgstr "在标签页图标上显示未读数量"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Show unread count in tab title"
|
||||
msgstr ""
|
||||
msgstr "在标签页标题中显示未读数量"
|
||||
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/WelcomePage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
#: src/pages/auth/RegistrationPage.tsx
|
||||
msgid "Sign up"
|
||||
msgstr "注册"
|
||||
|
||||
@@ -865,20 +929,21 @@ msgstr "刚刚发生了不好的事情……"
|
||||
msgid "Space"
|
||||
msgstr "空格"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Star"
|
||||
msgstr "星标"
|
||||
|
||||
#: src/app/constants.ts
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
#: src/pages/app/CategoryDetailsPage.tsx
|
||||
#: src/components/sidebar/Tree.tsx
|
||||
msgid "Starred"
|
||||
msgstr "已加星标"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/pages/app/AddPage.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "Subscribe"
|
||||
msgstr "订阅"
|
||||
|
||||
@@ -900,7 +965,7 @@ msgstr "向左滑动标题"
|
||||
|
||||
#: src/pages/WelcomePage.tsx
|
||||
msgid "Switch to dark theme"
|
||||
msgstr "切换到深色主题"
|
||||
msgstr "切换到暗黑主题"
|
||||
|
||||
#: src/pages/WelcomePage.tsx
|
||||
msgid "Switch to light theme"
|
||||
@@ -915,6 +980,10 @@ msgstr "跟随系统"
|
||||
msgid "Tags"
|
||||
msgstr "标签"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Teal"
|
||||
msgstr "青绿"
|
||||
|
||||
#: src/components/content/add/Subscribe.tsx
|
||||
msgid "The URL for the feed you want to subscribe to. You can also use the website's url directly and CommaFeed will try to find the feed in the page."
|
||||
msgstr "您要订阅的信息流的网址。您也可以直接使用网站的网址,CommaFeed 会尝试在页面中找到信息流。"
|
||||
@@ -951,8 +1020,8 @@ msgstr "尝试 demo!"
|
||||
msgid "Unread"
|
||||
msgstr "未读"
|
||||
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/FeedEntryFooter.tsx
|
||||
#: src/components/content/FeedEntryContextMenu.tsx
|
||||
#: src/components/content/header/Star.tsx
|
||||
msgid "Unstar"
|
||||
msgstr "取消星标"
|
||||
@@ -971,6 +1040,10 @@ msgstr "用户名"
|
||||
msgid "User Name or E-mail"
|
||||
msgstr "用户名或电子邮件"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Violet"
|
||||
msgstr "蓝紫"
|
||||
|
||||
#: src/components/Alert.tsx
|
||||
msgid "Warning"
|
||||
msgstr "警告"
|
||||
@@ -979,6 +1052,10 @@ msgstr "警告"
|
||||
msgid "Website"
|
||||
msgstr "网站"
|
||||
|
||||
#: src/components/settings/DisplaySettings.tsx
|
||||
msgid "Yellow"
|
||||
msgstr "黄"
|
||||
|
||||
#: src/pages/app/FeedEntriesPage.tsx
|
||||
msgid "You don't have any subscriptions yet. Why not try adding one by clicking on the + sign at the top of the page?"
|
||||
msgstr "您还没有任何订阅。"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Box, Button, Container, Group, Text, Title } from "@mantine/core"
|
||||
import { TbRefresh } from "react-icons/tb"
|
||||
import { tss } from "tss"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { Anchor, Box, Center, Container, Divider, Group, Image, Space, Title, useMantineColorScheme } from "@mantine/core"
|
||||
import { client } from "app/client"
|
||||
import { redirectToApiDocumentation, redirectToLogin, redirectToRegistration, redirectToRootCategory } from "app/redirect/thunks"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { ActionIcon, Box, Code, Container, Group, Table, Text, Title, useMantineTheme } from "@mantine/core"
|
||||
import { closeAllModals, openConfirmModal, openModal } from "@mantine/modals"
|
||||
import { client, errorToStrings } from "app/client"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Trans, msg } from "@lingui/macro"
|
||||
import { msg } from "@lingui/core/macro"
|
||||
import { useLingui } from "@lingui/react"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Anchor, Box, Container, List, NativeSelect, SimpleGrid, Title } from "@mantine/core"
|
||||
import { Constants } from "app/constants"
|
||||
import { redirectToApiDocumentation } from "app/redirect/thunks"
|
||||
@@ -40,7 +41,7 @@ function NextUnreadBookmarklet() {
|
||||
const { _ } = useLingui()
|
||||
|
||||
const baseUrl = window.location.href.substring(0, window.location.href.lastIndexOf("#"))
|
||||
const href = `javascript:window.location.href='${baseUrl}next?category=${categoryId}&order=${order}&t='+new Date().getTime();`
|
||||
const href = `${baseUrl}next?category=${categoryId}&order=${order}`
|
||||
|
||||
return (
|
||||
<Box>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Trans } from "@lingui/macro"
|
||||
import { Trans } from "@lingui/react/macro"
|
||||
import { Container, Tabs } from "@mantine/core"
|
||||
import { AddCategory } from "components/content/add/AddCategory"
|
||||
import { ImportOpml } from "components/content/add/ImportOpml"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user