mirror of
https://github.com/photoprism/photoprism.git
synced 2025-10-27 19:00:32 +08:00
Compare commits
1435 Commits
scratch/fr
...
preview
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5f9b90bba8 | ||
|
|
d19bf02233 | ||
|
|
04aaf514b1 | ||
|
|
b644be320f | ||
|
|
70b8867b6d | ||
|
|
544dd55263 | ||
|
|
31b00cbe1c | ||
|
|
dd8698c938 | ||
|
|
e8f0e45890 | ||
|
|
1a37a01897 | ||
|
|
9508fbf934 | ||
|
|
64a29d4a5c | ||
|
|
72a9a53426 | ||
|
|
c53ac3353b | ||
|
|
100883ea9a | ||
|
|
3236a32a2b | ||
|
|
f94219404e | ||
|
|
5ad8a06a44 | ||
|
|
e072e5bd85 | ||
|
|
f35af9725a | ||
|
|
d333bd2d2c | ||
|
|
212869679c | ||
|
|
b91a7380ea | ||
|
|
f2313b8dfe | ||
|
|
3f16de1e97 | ||
|
|
eb5ac014c2 | ||
|
|
a611f9eaa0 | ||
|
|
357c19a379 | ||
|
|
c91adadb3b | ||
|
|
b64c04df40 | ||
|
|
49b2e7d4e0 | ||
|
|
22ed81a65d | ||
|
|
75ed91a9a4 | ||
|
|
f901759834 | ||
|
|
dd2ada0651 | ||
|
|
7b97a5d43f | ||
|
|
0858a2b65f | ||
|
|
6609e9c998 | ||
|
|
9514542d44 | ||
|
|
c5312d6eda | ||
|
|
dca68e653a | ||
|
|
75bb3bebbe | ||
|
|
ab3d8478dd | ||
|
|
0d196ad5dc | ||
|
|
1148a56bc3 | ||
|
|
76aa3eb11c | ||
|
|
f9a2e54476 | ||
|
|
504d92efaa | ||
|
|
5e58e51f79 | ||
|
|
a2dfdc24b6 | ||
|
|
55da70e955 | ||
|
|
5606366d86 | ||
|
|
572ddae06d | ||
|
|
dbaf8cef60 | ||
|
|
f0e8680404 | ||
|
|
4be8d08251 | ||
|
|
73d6df3a2f | ||
|
|
44518801fa | ||
|
|
53f7643583 | ||
|
|
5b7ea44eb5 | ||
|
|
8d9b75c9a7 | ||
|
|
69c816d616 | ||
|
|
cd7fa6adca | ||
|
|
91e4d72e1b | ||
|
|
e1b51bbc34 | ||
|
|
227a8cf8a4 | ||
|
|
ce304abd2c | ||
|
|
ddc37e08ab | ||
|
|
c5b5feee47 | ||
|
|
252aff2a6b | ||
|
|
ced4be2e40 | ||
|
|
54d8470f90 | ||
|
|
46f70c174f | ||
|
|
3624e73d36 | ||
|
|
f23069dd2c | ||
|
|
83d69f59cc | ||
|
|
bc83e00273 | ||
|
|
5d6e46b87f | ||
|
|
72f88be5fe | ||
|
|
a921f82a17 | ||
|
|
dacb5794f5 | ||
|
|
50abe4ddaf | ||
|
|
122f8f6dd1 | ||
|
|
e6959e7e96 | ||
|
|
695b33f097 | ||
|
|
1b85f84943 | ||
|
|
1c0f68aa39 | ||
|
|
1ba41b6656 | ||
|
|
89a9362fa8 | ||
|
|
3aa5a3902f | ||
|
|
6d0f720574 | ||
|
|
fd2a386c71 | ||
|
|
5cae6af468 | ||
|
|
2616fc9610 | ||
|
|
ad1a6dfac1 | ||
|
|
1a5dca4871 | ||
|
|
9ce87e6d61 | ||
|
|
6ed9d2715a | ||
|
|
a779c5d89a | ||
|
|
bad4b84267 | ||
|
|
6802be48a4 | ||
|
|
b28aaa6c2c | ||
|
|
8e73ce9a2d | ||
|
|
baa08b7558 | ||
|
|
47553d5346 | ||
|
|
47d1a11c2d | ||
|
|
b5c4fd3dcf | ||
|
|
b47ee0fddc | ||
|
|
04f015bdf0 | ||
|
|
dc7ca44165 | ||
|
|
b829090e15 | ||
|
|
f99466293a | ||
|
|
5a95d972a8 | ||
|
|
f65d473171 | ||
|
|
c4bb774195 | ||
|
|
580751a051 | ||
|
|
7c8438a47f | ||
|
|
7872e7f967 | ||
|
|
0cb58db96b | ||
|
|
627acaf64e | ||
|
|
5bfa9803f1 | ||
|
|
bf6d7e4f94 | ||
|
|
703f355c09 | ||
|
|
0354fad37e | ||
|
|
b400666a17 | ||
|
|
977dd2bafd | ||
|
|
ab9a0a969b | ||
|
|
0a727de361 | ||
|
|
07b0938bf2 | ||
|
|
565001f56e | ||
|
|
da8ab3b302 | ||
|
|
f58d319aa1 | ||
|
|
fe4edf8f9b | ||
|
|
e218a503c3 | ||
|
|
82807110e4 | ||
|
|
dcb1f91938 | ||
|
|
575e09a797 | ||
|
|
c5b764abea | ||
|
|
7eae368b3c | ||
|
|
942650bb2f | ||
|
|
b42c3f8945 | ||
|
|
56c8843572 | ||
|
|
865b1513ee | ||
|
|
d64db46239 | ||
|
|
3142c39c84 | ||
|
|
2227aa57b2 | ||
|
|
76f372f8f8 | ||
|
|
f7a0711c87 | ||
|
|
e6ac194b61 | ||
|
|
effed76095 | ||
|
|
cb9d8d236a | ||
|
|
0ef0c79766 | ||
|
|
0aa34a4775 | ||
|
|
ed1e5e1236 | ||
|
|
7bb9bf0a91 | ||
|
|
71c0137446 | ||
|
|
b1fc7ed55c | ||
|
|
3f6c7062bc | ||
|
|
bd3fad6457 | ||
|
|
32ab48921b | ||
|
|
37c8c83a3f | ||
|
|
74fd3e7913 | ||
|
|
118b082ac0 | ||
|
|
bd1d4f45b9 | ||
|
|
66852ac6cb | ||
|
|
2ce3772958 | ||
|
|
25c1375c4c | ||
|
|
74abddb3aa | ||
|
|
c9fdb4c518 | ||
|
|
8fc557a428 | ||
|
|
34751d5898 | ||
|
|
3686895f42 | ||
|
|
3c25e1c9fa | ||
|
|
0a9eb50fcc | ||
|
|
3007706a20 | ||
|
|
8f97672930 | ||
|
|
58e040c5ac | ||
|
|
fc46808d03 | ||
|
|
0b0f312b3e | ||
|
|
954070871e | ||
|
|
829d4291fd | ||
|
|
f3deeee655 | ||
|
|
131f584b8e | ||
|
|
2b10245e50 | ||
|
|
e1fcbe024f | ||
|
|
864934d085 | ||
|
|
8b9d2e6459 | ||
|
|
5bc5d28b78 | ||
|
|
f55611762f | ||
|
|
e8473ae22a | ||
|
|
bce39eabfc | ||
|
|
6969e3e8a1 | ||
|
|
024a6727fe | ||
|
|
ef117ba842 | ||
|
|
e145ae359d | ||
|
|
064bd5051c | ||
|
|
143f91e1b4 | ||
|
|
864b8eadee | ||
|
|
4924114a53 | ||
|
|
c9dc431a71 | ||
|
|
3e87ad9809 | ||
|
|
a3c298f617 | ||
|
|
c0f02637a9 | ||
|
|
cfb3fd18c1 | ||
|
|
e6dd2020bb | ||
|
|
c5d17c579c | ||
|
|
92d21af697 | ||
|
|
958ea37fa0 | ||
|
|
cda6ecac83 | ||
|
|
054be35f92 | ||
|
|
5d587cbbf2 | ||
|
|
e1275c97a3 | ||
|
|
b28f55ff59 | ||
|
|
f26f6ecd17 | ||
|
|
b1822229ca | ||
|
|
1d216f2dfc | ||
|
|
1778c7e46c | ||
|
|
091cd19086 | ||
|
|
a8fcf7cca2 | ||
|
|
31312b3e93 | ||
|
|
e8ceba4e2f | ||
|
|
6e41c46db0 | ||
|
|
85a0543df5 | ||
|
|
ed2809b1e7 | ||
|
|
e0b4c5d136 | ||
|
|
4ab48cd461 | ||
|
|
670bc823c2 | ||
|
|
fde403e3e1 | ||
|
|
6373e487fc | ||
|
|
d36e83d2ef | ||
|
|
1273991a7d | ||
|
|
4215243ab6 | ||
|
|
7c2bb9bd30 | ||
|
|
01af8dd2ff | ||
|
|
e9c34f5f80 | ||
|
|
97ab742f6b | ||
|
|
683d1f90e8 | ||
|
|
132a12cae4 | ||
|
|
84cb9d9855 | ||
|
|
9d968ab357 | ||
|
|
f125bfd638 | ||
|
|
81b8ed8182 | ||
|
|
b46a6aef77 | ||
|
|
03ca4031a5 | ||
|
|
3563d3f13c | ||
|
|
0dbe118186 | ||
|
|
c9c50fd31e | ||
|
|
a8487bf793 | ||
|
|
db0c1a4c1d | ||
|
|
1117e0b1dc | ||
|
|
354414a5e1 | ||
|
|
77d6b7fe00 | ||
|
|
401d910b2f | ||
|
|
3efb69483e | ||
|
|
8571600a1b | ||
|
|
316cd2c919 | ||
|
|
87b63b71dc | ||
|
|
7d05767a8f | ||
|
|
9e888703c5 | ||
|
|
7e64ecb77a | ||
|
|
729b4c4bdb | ||
|
|
3bd17fb1a2 | ||
|
|
251a8dfd4a | ||
|
|
a302955c02 | ||
|
|
26b937d8b0 | ||
|
|
77c9959f12 | ||
|
|
62661f597f | ||
|
|
756c6fe9c1 | ||
|
|
d693e2235c | ||
|
|
81344c9ab1 | ||
|
|
5b83aea1f5 | ||
|
|
012a7605f5 | ||
|
|
73312ada41 | ||
|
|
5610f8fafb | ||
|
|
3b5d185e8c | ||
|
|
a59134ebd6 | ||
|
|
9b56b4ec01 | ||
|
|
22d8a63bfe | ||
|
|
87b540b438 | ||
|
|
ab60112f99 | ||
|
|
1eac265978 | ||
|
|
3693db0946 | ||
|
|
7fa6dfe0b5 | ||
|
|
9f22a2f73e | ||
|
|
4bbba226b7 | ||
|
|
0d27cee391 | ||
|
|
68e1ddcc89 | ||
|
|
3502251f7e | ||
|
|
698ef753e2 | ||
|
|
99c4c4bea6 | ||
|
|
221d3196f4 | ||
|
|
f5e233194f | ||
|
|
2ff6eae58a | ||
|
|
5989c3578d | ||
|
|
c71e4c8828 | ||
|
|
3b3a01317b | ||
|
|
8640e60c14 | ||
|
|
04dd4ba24d | ||
|
|
94f8a5f35d | ||
|
|
677e190b6e | ||
|
|
ea693e9ab7 | ||
|
|
00d41144a0 | ||
|
|
4b625d8217 | ||
|
|
dcd4e684ae | ||
|
|
240ee9f0ce | ||
|
|
e5dc335bcf | ||
|
|
79654170eb | ||
|
|
fba00a843c | ||
|
|
47b7a0faf7 | ||
|
|
a988459ef0 | ||
|
|
4275290f93 | ||
|
|
b71ec5bce1 | ||
|
|
133afda8ce | ||
|
|
17030940c8 | ||
|
|
875275828e | ||
|
|
6a84a2536e | ||
|
|
12df9cb954 | ||
|
|
ac9d33a1b0 | ||
|
|
28017c47c6 | ||
|
|
84b9f1bb1b | ||
|
|
f56dd6b197 | ||
|
|
8dd3197b8c | ||
|
|
d7ee54ec58 | ||
|
|
241f1df4c4 | ||
|
|
2cc0ef7eae | ||
|
|
c40bf0b47d | ||
|
|
dc9b8d78da | ||
|
|
b23fc123d7 | ||
|
|
006123c94c | ||
|
|
99e06f5f95 | ||
|
|
a6f153b065 | ||
|
|
30dfacaab7 | ||
|
|
8fdf405288 | ||
|
|
f7dff58f2e | ||
|
|
cdee55fdf8 | ||
|
|
dcb3dd6f18 | ||
|
|
d19d59632d | ||
|
|
9d81edcff7 | ||
|
|
c57cacb834 | ||
|
|
1d984fb8b0 | ||
|
|
6218c7dda6 | ||
|
|
5dda30e7e9 | ||
|
|
0893e1ac80 | ||
|
|
71f00e9f4f | ||
|
|
c22201331d | ||
|
|
51083caef8 | ||
|
|
7a5b623a83 | ||
|
|
cdea0e5664 | ||
|
|
59b54663d8 | ||
|
|
0ca3310f0a | ||
|
|
b00dd133db | ||
|
|
94b6631b3d | ||
|
|
c68493da8a | ||
|
|
54d5659a93 | ||
|
|
1aa6fe4f35 | ||
|
|
713beeff0f | ||
|
|
c57387d119 | ||
|
|
088bdff69d | ||
|
|
662d233fa3 | ||
|
|
470724f75a | ||
|
|
b2805a63a3 | ||
|
|
c81f9f4b3f | ||
|
|
746f26724c | ||
|
|
ac91c98ed0 | ||
|
|
fe0d51a5ac | ||
|
|
6cbc7aa20c | ||
|
|
858840c59a | ||
|
|
7dd3218493 | ||
|
|
8490e79a46 | ||
|
|
0eca39428f | ||
|
|
54d96f613b | ||
|
|
a49cecd5f7 | ||
|
|
6ddcc8a585 | ||
|
|
bd1be3346e | ||
|
|
9b5ee0513b | ||
|
|
b52c66624f | ||
|
|
6490d158be | ||
|
|
838adee3eb | ||
|
|
873454ddd2 | ||
|
|
07f1d2a434 | ||
|
|
9315e87d45 | ||
|
|
46ae2fa208 | ||
|
|
bb503a7322 | ||
|
|
983cbb50ff | ||
|
|
bbf6580512 | ||
|
|
ece066fb47 | ||
|
|
8c59d17993 | ||
|
|
6d551c5939 | ||
|
|
f49328345e | ||
|
|
e3925d779f | ||
|
|
52cc66af6d | ||
|
|
7de88e0ec9 | ||
|
|
fddd3c9626 | ||
|
|
4d4cac446e | ||
|
|
d782a43c2b | ||
|
|
0c9f82a641 | ||
|
|
3f8f39e117 | ||
|
|
47def3c791 | ||
|
|
70aced3b12 | ||
|
|
9c5abb05ad | ||
|
|
327e1d587e | ||
|
|
84e11829dc | ||
|
|
e21174c297 | ||
|
|
7ae7ce9edd | ||
|
|
ee46794509 | ||
|
|
114f4033e0 | ||
|
|
72de6c8db7 | ||
|
|
40c5c4d712 | ||
|
|
e4f78a19ac | ||
|
|
7cc758346f | ||
|
|
3f9d6863db | ||
|
|
3e14eed7d7 | ||
|
|
8a7c61f467 | ||
|
|
cf06f52025 | ||
|
|
a58fa36f34 | ||
|
|
7919b9ddc2 | ||
|
|
1e7786ad1c | ||
|
|
e888b0ddb1 | ||
|
|
44f561b7d6 | ||
|
|
cbda4abe7a | ||
|
|
a3dac7c707 | ||
|
|
4d91f5ffdf | ||
|
|
1b48cb2a25 | ||
|
|
58180accee | ||
|
|
52337eba27 | ||
|
|
90f62a732e | ||
|
|
bc6c34cb2b | ||
|
|
9f119a8cfa | ||
|
|
66e2027c10 | ||
|
|
bd66110c18 | ||
|
|
07658dac69 | ||
|
|
108b2c2df4 | ||
|
|
48a965a7cc | ||
|
|
32c054da7a | ||
|
|
566eed05e0 | ||
|
|
660c0a89db | ||
|
|
ebb0410b20 | ||
|
|
7e419f7419 | ||
|
|
633d4222ab | ||
|
|
bae8ceb3a7 | ||
|
|
4828c0423d | ||
|
|
cb81f9be12 | ||
|
|
4ea6e12a10 | ||
|
|
41a7045c26 | ||
|
|
c202a09241 | ||
|
|
61ced7119c | ||
|
|
3baabebf50 | ||
|
|
0a66f1476d | ||
|
|
59fb8e2b4c | ||
|
|
8930cb7b79 | ||
|
|
ade3b40a42 | ||
|
|
9ea5f0596c | ||
|
|
a22babe3d1 | ||
|
|
bfd26c55e3 | ||
|
|
578fbe4d10 | ||
|
|
c8964fdc6b | ||
|
|
eca06dcdfb | ||
|
|
38cdde5518 | ||
|
|
2a113f167d | ||
|
|
91804b9652 | ||
|
|
458a320bb8 | ||
|
|
c312c0d109 | ||
|
|
6e33575ba7 | ||
|
|
d6cb6b7a2e | ||
|
|
f1c57c72d8 | ||
|
|
25253afcf2 | ||
|
|
f878ca0cb0 | ||
|
|
93493aba28 | ||
|
|
6901225a2b | ||
|
|
ecdec6b408 | ||
|
|
f7fe6b569a | ||
|
|
5e84da55e5 | ||
|
|
d447adc59c | ||
|
|
41da164469 | ||
|
|
29ca2c1331 | ||
|
|
2fe48605a2 | ||
|
|
75af48c0c0 | ||
|
|
13e1c751d4 | ||
|
|
f6f4b85e66 | ||
|
|
eee1b3fbfc | ||
|
|
ce2d793a48 | ||
|
|
83a12fb58b | ||
|
|
1315df8c1f | ||
|
|
c9e6b7c22b | ||
|
|
518079450e | ||
|
|
aa5368e00a | ||
|
|
1c3009d9b5 | ||
|
|
2818a9e6a8 | ||
|
|
464a64339f | ||
|
|
b40e4c5597 | ||
|
|
887a39e7d9 | ||
|
|
2a116cffb3 | ||
|
|
1f10dcaf85 | ||
|
|
202d513019 | ||
|
|
e221a8ee73 | ||
|
|
fb27969e30 | ||
|
|
4a7c355d28 | ||
|
|
c7380111b2 | ||
|
|
40a4dbfe26 | ||
|
|
1ab4c32ee8 | ||
|
|
19b09ebf0b | ||
|
|
00088d66cd | ||
|
|
e04df34453 | ||
|
|
e1d031bea7 | ||
|
|
ec8ea96f31 | ||
|
|
b3fec4a2f5 | ||
|
|
0ce82056ca | ||
|
|
dbf1650c1c | ||
|
|
5db044284b | ||
|
|
3c821a3ea7 | ||
|
|
5a4e03eff0 | ||
|
|
a4cd1ac1fd | ||
|
|
ea8d413deb | ||
|
|
b5c9e9f160 | ||
|
|
d3775f02e6 | ||
|
|
efbcf34588 | ||
|
|
ced562dfb3 | ||
|
|
e639c962d7 | ||
|
|
efd55b50d9 | ||
|
|
8de7fa35af | ||
|
|
970a0a190e | ||
|
|
f0b9faac8b | ||
|
|
023fbe3a1d | ||
|
|
3f11165f61 | ||
|
|
c36e66c847 | ||
|
|
dbf0fa6c25 | ||
|
|
4ea628af5c | ||
|
|
cd81094d25 | ||
|
|
11c7d9f7af | ||
|
|
64da1d36ed | ||
|
|
e45a23f9a4 | ||
|
|
cc93144bcb | ||
|
|
7ff62e0194 | ||
|
|
ce6546c635 | ||
|
|
b894079f62 | ||
|
|
7bed1cd46a | ||
|
|
886794874d | ||
|
|
55755f6ede | ||
|
|
acdf91d668 | ||
|
|
f84bfbefaa | ||
|
|
9d79f448bd | ||
|
|
3f519b7a87 | ||
|
|
cdbd6a9fb6 | ||
|
|
aaf222e29b | ||
|
|
29dcf7070c | ||
|
|
9bb323f965 | ||
|
|
0d572032a9 | ||
|
|
68d387778e | ||
|
|
71f5bab407 | ||
|
|
08616ae426 | ||
|
|
5ee5974188 | ||
|
|
ea5dd3c002 | ||
|
|
28b9c39f1b | ||
|
|
f948cd4efb | ||
|
|
a806ef8d71 | ||
|
|
c27052a735 | ||
|
|
4f3b694164 | ||
|
|
634445fb97 | ||
|
|
6cdca39fad | ||
|
|
6a57daffb4 | ||
|
|
13730174fe | ||
|
|
632cc1f425 | ||
|
|
f0df9d2c88 | ||
|
|
5afc09ecaf | ||
|
|
cc0661eff6 | ||
|
|
a6f66127fb | ||
|
|
7d3978cfd4 | ||
|
|
e7d4bc509d | ||
|
|
d44b85a0df | ||
|
|
b0c3572432 | ||
|
|
cb9ada8478 | ||
|
|
95c6743b2c | ||
|
|
22863b8b0f | ||
|
|
351c3688b8 | ||
|
|
95ac440d28 | ||
|
|
2e3d187938 | ||
|
|
e7e49c3644 | ||
|
|
f2ec047c85 | ||
|
|
9545cd8a3e | ||
|
|
34c66ebfdd | ||
|
|
22d7e65f3f | ||
|
|
f5a4aacc5c | ||
|
|
c36bb566af | ||
|
|
a88580af7c | ||
|
|
9ea676c7e5 | ||
|
|
2dc82bfa48 | ||
|
|
ff2c3b9559 | ||
|
|
a0b44b2ca2 | ||
|
|
c3537b10e5 | ||
|
|
aa6c62abcb | ||
|
|
19fff8b0bf | ||
|
|
fccdc50e6e | ||
|
|
7de8ee88d8 | ||
|
|
2c17b21569 | ||
|
|
09e8a15a7f | ||
|
|
6c61eb5010 | ||
|
|
6766cc330d | ||
|
|
b887ef9aed | ||
|
|
de4b8b9539 | ||
|
|
8241f1c559 | ||
|
|
fd6216ad3a | ||
|
|
a8dd73737f | ||
|
|
619949ffc1 | ||
|
|
0357bc9abd | ||
|
|
68590ab408 | ||
|
|
27d6834a22 | ||
|
|
1b437c38f4 | ||
|
|
5b61fe3782 | ||
|
|
7bebf3bd60 | ||
|
|
0823dceab1 | ||
|
|
8337eb268c | ||
|
|
b1eda7abe1 | ||
|
|
cfe1bf62fd | ||
|
|
45e998d941 | ||
|
|
0cb4acbc20 | ||
|
|
a1ea21161b | ||
|
|
e9fca94656 | ||
|
|
2e15e1868f | ||
|
|
9980cf5bdc | ||
|
|
6e50ef0135 | ||
|
|
09ce6c77de | ||
|
|
16dc286976 | ||
|
|
46683a155c | ||
|
|
7470924a84 | ||
|
|
8a976825bf | ||
|
|
e80c1e1df7 | ||
|
|
c7e71bbbe2 | ||
|
|
37908ca3b5 | ||
|
|
2a8e991550 | ||
|
|
a55a4f8ae4 | ||
|
|
eba9e89380 | ||
|
|
589ed92904 | ||
|
|
41804a262b | ||
|
|
597593f4ee | ||
|
|
e3e034cc68 | ||
|
|
0bce60c046 | ||
|
|
13177b0c32 | ||
|
|
af7983b77c | ||
|
|
4da369d8b8 | ||
|
|
519a6ab34a | ||
|
|
2a7351ee9a | ||
|
|
ff00681137 | ||
|
|
21c8b18bf0 | ||
|
|
a7a41fe000 | ||
|
|
d47b38bc8b | ||
|
|
52204ee246 | ||
|
|
3d4e2bde49 | ||
|
|
05a550aa8a | ||
|
|
f55a7190fc | ||
|
|
0f999703c3 | ||
|
|
db3a2b0309 | ||
|
|
39be3d7122 | ||
|
|
db22069997 | ||
|
|
745a0a3661 | ||
|
|
242083080d | ||
|
|
e7db7efc58 | ||
|
|
dbfe4e5dc1 | ||
|
|
a890f8da16 | ||
|
|
c22c5c0151 | ||
|
|
6655a66e8f | ||
|
|
875880110b | ||
|
|
ab0bd1c732 | ||
|
|
2b48fe20dd | ||
|
|
ca8490d048 | ||
|
|
2b9a3c9924 | ||
|
|
3c84771c01 | ||
|
|
a6d840056c | ||
|
|
0d24ec5abb | ||
|
|
fb6d920b1b | ||
|
|
9c7c6c3d27 | ||
|
|
16ac7a9d11 | ||
|
|
9388cb7f66 | ||
|
|
29c70cb0a9 | ||
|
|
6a20ca45b5 | ||
|
|
34065a6bf8 | ||
|
|
b241fa621d | ||
|
|
b7dc81fe29 | ||
|
|
f83d77e40a | ||
|
|
3177a61f75 | ||
|
|
523605f7d7 | ||
|
|
10fe7d2b40 | ||
|
|
75785ff2f3 | ||
|
|
f6c922be00 | ||
|
|
a80bdf065f | ||
|
|
977d06b560 | ||
|
|
c2b4af2a3a | ||
|
|
fd3f6311d4 | ||
|
|
5246677ffa | ||
|
|
6e955523b6 | ||
|
|
1bd9bb9d0c | ||
|
|
98e9daf687 | ||
|
|
31901ff2e3 | ||
|
|
e5dcf23f0c | ||
|
|
0f5b774b06 | ||
|
|
34b71f800e | ||
|
|
2df90b45fa | ||
|
|
8ea7494456 | ||
|
|
96137a849a | ||
|
|
aeba5bfc4c | ||
|
|
eef76ded5f | ||
|
|
b4ac12c301 | ||
|
|
38cafb1c2b | ||
|
|
3b1e1bb32a | ||
|
|
e704ccfc47 | ||
|
|
fe7af9ec91 | ||
|
|
8149d4c63a | ||
|
|
fce72f01a2 | ||
|
|
d622c4d214 | ||
|
|
468080ec6d | ||
|
|
4c24973a24 | ||
|
|
9d5a5d848a | ||
|
|
5a7c5613b1 | ||
|
|
4b5e3b574a | ||
|
|
99159f072a | ||
|
|
f0939094fc | ||
|
|
a851e325dd | ||
|
|
0ff2d0df5e | ||
|
|
f6d9ff8e43 | ||
|
|
f1a33a5516 | ||
|
|
3dcc33260e | ||
|
|
7dd870fcf1 | ||
|
|
1afc7d955a | ||
|
|
b2d36b395b | ||
|
|
3448d1a635 | ||
|
|
02ab8caef1 | ||
|
|
da86263390 | ||
|
|
ae42af54d8 | ||
|
|
f67ba0e634 | ||
|
|
1912f17aaf | ||
|
|
6a803a8614 | ||
|
|
57f4e39b33 | ||
|
|
aa533ff7ef | ||
|
|
3ff0a30469 | ||
|
|
6cccef7ae8 | ||
|
|
c6f7a6f373 | ||
|
|
ddd343d528 | ||
|
|
c05fe19ba9 | ||
|
|
b608eae3e5 | ||
|
|
df61612d73 | ||
|
|
f7f403fef7 | ||
|
|
1c5cea7683 | ||
|
|
2a7e06e35f | ||
|
|
adc4dc0f74 | ||
|
|
4bc9cd6ca2 | ||
|
|
eb8d2062a5 | ||
|
|
4e6e0d287b | ||
|
|
546635f8b6 | ||
|
|
ff229e1bd0 | ||
|
|
e029a64632 | ||
|
|
e2763c4aee | ||
|
|
e24d8f532a | ||
|
|
2ad1466e06 | ||
|
|
a571a228e6 | ||
|
|
f7a6b0fa6c | ||
|
|
88126e3e48 | ||
|
|
66cd55461f | ||
|
|
65b8503f63 | ||
|
|
6e859ceecb | ||
|
|
2b4234da00 | ||
|
|
28873182be | ||
|
|
a910795525 | ||
|
|
d5816e0f9f | ||
|
|
f1cfe8d406 | ||
|
|
aca000854c | ||
|
|
312f8e10be | ||
|
|
1fa7b455a1 | ||
|
|
86401086ba | ||
|
|
342519a518 | ||
|
|
ad653db969 | ||
|
|
675c2a3f95 | ||
|
|
78f5a48b0b | ||
|
|
e6a1b54547 | ||
|
|
287b921d4f | ||
|
|
31614697a2 | ||
|
|
2229ee32fb | ||
|
|
41dc0febba | ||
|
|
50c345f0ad | ||
|
|
38da638f88 | ||
|
|
6bfbad40af | ||
|
|
02ef7dbdee | ||
|
|
845813d642 | ||
|
|
f99fee1fe7 | ||
|
|
ee443c066b | ||
|
|
02109cf4e6 | ||
|
|
38e331a48d | ||
|
|
61683015f2 | ||
|
|
9ad5a533af | ||
|
|
2481de49c4 | ||
|
|
004feeb708 | ||
|
|
d28b3101e0 | ||
|
|
8fcc2a232b | ||
|
|
5ad7f6318b | ||
|
|
cedc8799d3 | ||
|
|
5860b01248 | ||
|
|
f80ac62e6b | ||
|
|
57349bdb99 | ||
|
|
0fc3ec8183 | ||
|
|
b582133df7 | ||
|
|
037c0351d9 | ||
|
|
ff6151f84a | ||
|
|
3ff0ec01be | ||
|
|
595b116ae6 | ||
|
|
73374cb325 | ||
|
|
77ac3b545f | ||
|
|
c49ba11288 | ||
|
|
395ee8426e | ||
|
|
d43ec9492a | ||
|
|
20a82df0e8 | ||
|
|
55704fea58 | ||
|
|
02d8525ade | ||
|
|
4b1cc5d424 | ||
|
|
829611c37f | ||
|
|
cb208bc09f | ||
|
|
24b7b03f7b | ||
|
|
1b4b478067 | ||
|
|
76f6f2d52f | ||
|
|
5b152ac542 | ||
|
|
d7298eeb80 | ||
|
|
c18d04e104 | ||
|
|
8b5b06d116 | ||
|
|
7fb447897e | ||
|
|
9c5470744f | ||
|
|
bd4ca7b848 | ||
|
|
3a74db145a | ||
|
|
6bf5e03336 | ||
|
|
24025524ab | ||
|
|
80ba7e9934 | ||
|
|
a5c50b1301 | ||
|
|
318d38a1da | ||
|
|
08ae7b0229 | ||
|
|
ee0f104262 | ||
|
|
a30c04bab6 | ||
|
|
056c6f3917 | ||
|
|
10f15431ff | ||
|
|
1709f708ed | ||
|
|
4475a8d914 | ||
|
|
00d1cddf37 | ||
|
|
a39c1d3248 | ||
|
|
dec24ece73 | ||
|
|
fd33e54c20 | ||
|
|
af3357bfdc | ||
|
|
761cf6a47e | ||
|
|
7e2d55ece4 | ||
|
|
0e66db223c | ||
|
|
22e865c66a | ||
|
|
3679c11c34 | ||
|
|
55575623c5 | ||
|
|
40df1d71cf | ||
|
|
c2d981e4d1 | ||
|
|
aadde256eb | ||
|
|
60cb5684c2 | ||
|
|
8cef088bba | ||
|
|
7a2cb27c1f | ||
|
|
033cfc4922 | ||
|
|
bcbbbcd7b3 | ||
|
|
baa5f2d9a0 | ||
|
|
7d1c453960 | ||
|
|
4dc703c855 | ||
|
|
58ffaf1bfa | ||
|
|
d1c6efa2b6 | ||
|
|
595e528258 | ||
|
|
95cb881f56 | ||
|
|
702b83870f | ||
|
|
e201e27842 | ||
|
|
a965c32188 | ||
|
|
982f864cc0 | ||
|
|
b054a1e09a | ||
|
|
b3bdd5d8ce | ||
|
|
47f9a509b1 | ||
|
|
a49181f75d | ||
|
|
1d8fa4e3ea | ||
|
|
758d86f903 | ||
|
|
a82d657b6b | ||
|
|
985e2febf4 | ||
|
|
40be3cc290 | ||
|
|
087594161e | ||
|
|
a9d0f3e9a4 | ||
|
|
44c85a8a46 | ||
|
|
55b8042c98 | ||
|
|
2596fe0252 | ||
|
|
1e89fa5d32 | ||
|
|
7d05ecab9a | ||
|
|
f7218f67e2 | ||
|
|
cdcfc69e05 | ||
|
|
d57ee7b7ab | ||
|
|
fd056913d8 | ||
|
|
c8ce9ec772 | ||
|
|
6a65f86bf9 | ||
|
|
42a22f1377 | ||
|
|
86fe4404ef | ||
|
|
6fa0ab4734 | ||
|
|
7759aad68f | ||
|
|
47a4d1ab0a | ||
|
|
38c8fec985 | ||
|
|
e9a76efc3b | ||
|
|
cf7aaa5059 | ||
|
|
dc265085a8 | ||
|
|
03f5bb322d | ||
|
|
2e2ebab433 | ||
|
|
a45d9d30b9 | ||
|
|
7a1929797c | ||
|
|
1ac9a8a3bf | ||
|
|
f98f2bcc8e | ||
|
|
eda33e2032 | ||
|
|
cf9258949a | ||
|
|
ae530fec1b | ||
|
|
3bcc415c06 | ||
|
|
72fdd05358 | ||
|
|
798c77464e | ||
|
|
69600fdbe3 | ||
|
|
03dba1fe20 | ||
|
|
2499b13f51 | ||
|
|
c682a94a07 | ||
|
|
f28f3d1a07 | ||
|
|
af832247fc | ||
|
|
a5aef038ef | ||
|
|
fce886f077 | ||
|
|
7214479bc4 | ||
|
|
876a421ad7 | ||
|
|
8292f97469 | ||
|
|
f5ee512a70 | ||
|
|
0ecc08750b | ||
|
|
4326523194 | ||
|
|
465245eb85 | ||
|
|
7ab90720ff | ||
|
|
b642be2c91 | ||
|
|
cfc8bac26f | ||
|
|
e754af0e08 | ||
|
|
bf37bf44c7 | ||
|
|
9a39adebae | ||
|
|
bdaab4b412 | ||
|
|
e89efc9d39 | ||
|
|
05808241b9 | ||
|
|
38956e0f4a | ||
|
|
699cff429c | ||
|
|
f6908837ee | ||
|
|
9c16bb11b8 | ||
|
|
e02f543808 | ||
|
|
0e74afa358 | ||
|
|
53d43f7933 | ||
|
|
0597269fc4 | ||
|
|
1554d52b00 | ||
|
|
3c09bb9475 | ||
|
|
43238cf6e4 | ||
|
|
7958239f7e | ||
|
|
2eb731e721 | ||
|
|
ade2c5e269 | ||
|
|
2ddfa5c9a1 | ||
|
|
1a794da1fe | ||
|
|
dd1f3b820f | ||
|
|
39e8b5b9ad | ||
|
|
cccb0ca00a | ||
|
|
ade59eebf0 | ||
|
|
7b2a9a11c3 | ||
|
|
2e626b8221 | ||
|
|
4f04ffe133 | ||
|
|
b5d2d1c7fb | ||
|
|
d18be7e76c | ||
|
|
2787059411 | ||
|
|
5e4d258860 | ||
|
|
79b6a75703 | ||
|
|
723dee6620 | ||
|
|
cbcee62444 | ||
|
|
4349087272 | ||
|
|
83717bda02 | ||
|
|
333c54f3a2 | ||
|
|
80e6d02509 | ||
|
|
4484b885d4 | ||
|
|
2b788fd258 | ||
|
|
c4ddc4a119 | ||
|
|
3d325015af | ||
|
|
f50bae84b1 | ||
|
|
a55b3ecc9c | ||
|
|
6bd86d6032 | ||
|
|
ca843987f7 | ||
|
|
fdea09518c | ||
|
|
b6d031a4ba | ||
|
|
3d730884ce | ||
|
|
b20f9d6e50 | ||
|
|
5973aeca5f | ||
|
|
dd6e17e97e | ||
|
|
b423b1980b | ||
|
|
43ff8b2a8d | ||
|
|
c80f703ecd | ||
|
|
bd4b7b3ad3 | ||
|
|
6f3f1fd392 | ||
|
|
6b4a32a1b3 | ||
|
|
033a956e21 | ||
|
|
a23058ce4b | ||
|
|
b61f3063d9 | ||
|
|
d530ab4f23 | ||
|
|
4677579f9a | ||
|
|
4a992dc350 | ||
|
|
fb0c22fb4b | ||
|
|
607b285443 | ||
|
|
de14b30570 | ||
|
|
06529c3854 | ||
|
|
8faf3fc918 | ||
|
|
a7d927a83b | ||
|
|
060924c19a | ||
|
|
bb67dca507 | ||
|
|
9526f1d4dc | ||
|
|
8ce192ceba | ||
|
|
d0f7393ebe | ||
|
|
fe3071ba18 | ||
|
|
a64e2ea445 | ||
|
|
138cc3c458 | ||
|
|
aeaa39969b | ||
|
|
ba8d38a761 | ||
|
|
05b68db22d | ||
|
|
3f2f0a7e67 | ||
|
|
eb4fc032ff | ||
|
|
6565fb2d6f | ||
|
|
27ec7a1282 | ||
|
|
9ab1772b64 | ||
|
|
a3883c1cd4 | ||
|
|
591ec1fad7 | ||
|
|
a7ee4a6cff | ||
|
|
98f2cbd51b | ||
|
|
eb9c64772f | ||
|
|
8fbe03ee1b | ||
|
|
21ddba4595 | ||
|
|
cbc415d32b | ||
|
|
71a623b5e0 | ||
|
|
eddb096adb | ||
|
|
f73b703123 | ||
|
|
9e39b2f81d | ||
|
|
fed0cfff6a | ||
|
|
cc5a4a6fd8 | ||
|
|
7c7f89b2ac | ||
|
|
2a2a55b9fa | ||
|
|
451c172a70 | ||
|
|
5648469247 | ||
|
|
c6e571aab1 | ||
|
|
f2a89063c6 | ||
|
|
e59fdded1b | ||
|
|
56ba9f1ee5 | ||
|
|
5e77c6a3bb | ||
|
|
4c7ca93dcc | ||
|
|
947e7a0fb1 | ||
|
|
d96b8027bd | ||
|
|
8e17a8780b | ||
|
|
36afc4a215 | ||
|
|
c4d4b91488 | ||
|
|
b9dda9337a | ||
|
|
5cd2c25489 | ||
|
|
598be273aa | ||
|
|
2a9741e826 | ||
|
|
44a3a9dcba | ||
|
|
da7af617f7 | ||
|
|
4bd4d17c5c | ||
|
|
20036b5de0 | ||
|
|
582fc5d359 | ||
|
|
c9777b39ed | ||
|
|
3bf5e59c63 | ||
|
|
bb8d835034 | ||
|
|
f8563adbcc | ||
|
|
e616ced26e | ||
|
|
264a1d67f6 | ||
|
|
7d56a454dc | ||
|
|
a86d64b828 | ||
|
|
ddf5924917 | ||
|
|
f50d833a0e | ||
|
|
91ebcfab33 | ||
|
|
27b72aa1e9 | ||
|
|
e7bb9bfb56 | ||
|
|
bbac7b91f0 | ||
|
|
ecf8af193b | ||
|
|
ca1f5cf781 | ||
|
|
140dc7b23c | ||
|
|
f0629cb151 | ||
|
|
d60a4c5767 | ||
|
|
555936d939 | ||
|
|
79ceeb1ada | ||
|
|
e811422c44 | ||
|
|
4a0f285a2c | ||
|
|
a746cc1779 | ||
|
|
ac8ee9e4dd | ||
|
|
9e521b244d | ||
|
|
eb228b0e45 | ||
|
|
b64ba76bc5 | ||
|
|
bdf97fff58 | ||
|
|
fa3d7d831d | ||
|
|
da4e9d57c1 | ||
|
|
d7ea086c5d | ||
|
|
9e56672019 | ||
|
|
7dad78eb91 | ||
|
|
d15c6e59fa | ||
|
|
1c086455e2 | ||
|
|
9b78cc3406 | ||
|
|
c83d5f2f17 | ||
|
|
53c853dae5 | ||
|
|
b6423e5090 | ||
|
|
5877be38df | ||
|
|
7da6a97d15 | ||
|
|
2b66db8216 | ||
|
|
46e4810391 | ||
|
|
f7b80bf34d | ||
|
|
9c33235a83 | ||
|
|
04ac2a383e | ||
|
|
dff52f8ca0 | ||
|
|
23a1182d00 | ||
|
|
b3a38224af | ||
|
|
1b519fbc33 | ||
|
|
49e84c4a7f | ||
|
|
557a25a6b5 | ||
|
|
a440eb6bc7 | ||
|
|
5f32d75700 | ||
|
|
dddfee3920 | ||
|
|
e21bdc3b22 | ||
|
|
3f5e040a5a | ||
|
|
4096583b1c | ||
|
|
33afc04d86 | ||
|
|
d082929dee | ||
|
|
6ee74461ed | ||
|
|
a446218933 | ||
|
|
35e0e112bd | ||
|
|
f28aaac518 | ||
|
|
fbcd210578 | ||
|
|
fcd17f8859 | ||
|
|
af7c71e762 | ||
|
|
e1b9946448 | ||
|
|
7f4f63775d | ||
|
|
208ff18a5d | ||
|
|
c22b118dd6 | ||
|
|
96dbb5ccbc | ||
|
|
2c47644ea8 | ||
|
|
161b18e5e8 | ||
|
|
55394d4137 | ||
|
|
eca0bc5205 | ||
|
|
a89d386541 | ||
|
|
eb39662e36 | ||
|
|
b2a36c24dc | ||
|
|
0b390f356f | ||
|
|
61ceed0726 | ||
|
|
60e41b425b | ||
|
|
41d9dd7c21 | ||
|
|
c3741cb912 | ||
|
|
ac8db75a3f | ||
|
|
8d9a16cef6 | ||
|
|
65fcb25952 | ||
|
|
ab31f20508 | ||
|
|
38155190c5 | ||
|
|
66b7d83d7e | ||
|
|
d4becb575f | ||
|
|
bc4f1f3080 | ||
|
|
328938d268 | ||
|
|
f8bf1d45fc | ||
|
|
5521d06bc0 | ||
|
|
e55536e581 | ||
|
|
457a47b36f | ||
|
|
ad94d03576 | ||
|
|
d993eb2a85 | ||
|
|
f09aa7749b | ||
|
|
914476ffe7 | ||
|
|
41abde5db8 | ||
|
|
916276e36a | ||
|
|
8189503a69 | ||
|
|
e5916b98b9 | ||
|
|
1d77c2306f | ||
|
|
e6ec733303 | ||
|
|
6f3ad2dea3 | ||
|
|
377c7ed1d5 | ||
|
|
128df65f54 | ||
|
|
8068e471d1 | ||
|
|
494f75917c | ||
|
|
52cc9b1cd3 | ||
|
|
06de8e2b66 | ||
|
|
b03f06a1a2 | ||
|
|
1831261cfd | ||
|
|
43c794d242 | ||
|
|
7d39c51e31 | ||
|
|
d0a23491df | ||
|
|
36c5b7012f | ||
|
|
26b552bb58 | ||
|
|
285c0f4543 | ||
|
|
6d6671c356 | ||
|
|
6088ebd617 | ||
|
|
6c05e02077 | ||
|
|
0895a085a1 | ||
|
|
88508679b0 | ||
|
|
63fb46578a | ||
|
|
07e22b0c14 | ||
|
|
63d72ee867 | ||
|
|
8bc7121394 | ||
|
|
f2ffb0fdce | ||
|
|
7bcbaea492 | ||
|
|
d0f6d903e2 | ||
|
|
7925ab205d | ||
|
|
35bfe0694b | ||
|
|
bd634c828b | ||
|
|
720d83ef3a | ||
|
|
c14be8f57e | ||
|
|
76757811cb | ||
|
|
f80acab4c2 | ||
|
|
5b8be2f5d4 | ||
|
|
6fcce84623 | ||
|
|
068ee52301 | ||
|
|
627f4f8d21 | ||
|
|
0304ed37c3 | ||
|
|
190be2a1b5 | ||
|
|
caf3ae1ab5 | ||
|
|
ecef34a8da | ||
|
|
204ce2b100 | ||
|
|
eaea3a416d | ||
|
|
cf3b933e59 | ||
|
|
7f1041c434 | ||
|
|
42897bde35 | ||
|
|
0f76186663 | ||
|
|
d304509c0d | ||
|
|
2a6b9fb237 | ||
|
|
9d648f74dd | ||
|
|
f3e066af45 | ||
|
|
907850cb80 | ||
|
|
c6b6bfde70 | ||
|
|
ae735f6a1e | ||
|
|
fd0baeb5a4 | ||
|
|
bfdb839d01 | ||
|
|
35e9294d87 | ||
|
|
b791896fc6 | ||
|
|
043f6c2569 | ||
|
|
332e57d59f | ||
|
|
a3456637cd | ||
|
|
5650ea29b5 | ||
|
|
c9e305808b | ||
|
|
efe36603f8 | ||
|
|
96fdd1a41a | ||
|
|
0b9233f44b | ||
|
|
5a9e3a8645 | ||
|
|
3900573a7c | ||
|
|
d9c260b865 | ||
|
|
a97d66d6e4 | ||
|
|
5256a7f276 | ||
|
|
eed7bfff73 | ||
|
|
d6c215c9c6 | ||
|
|
b6ca5a1717 | ||
|
|
1350eff0f5 | ||
|
|
bf66a9e19a | ||
|
|
5a1ca738f6 | ||
|
|
63d6902605 | ||
|
|
de89979e45 | ||
|
|
fe424d8966 | ||
|
|
b0e42bebf1 | ||
|
|
cf3b7f8d18 | ||
|
|
83c30987eb | ||
|
|
1cf69e231f | ||
|
|
6d776c8a97 | ||
|
|
974369966a | ||
|
|
cdc1866720 | ||
|
|
4915840035 | ||
|
|
0ff942342f | ||
|
|
990a0a40ba | ||
|
|
405c9e7650 | ||
|
|
dc2370ebf3 | ||
|
|
439d683fdb | ||
|
|
15e6ea0a4d | ||
|
|
c9a8d8f89d | ||
|
|
e9a6973d16 | ||
|
|
8a537755a0 | ||
|
|
ff47ff7366 | ||
|
|
53feb26fa9 | ||
|
|
f8e32d260e | ||
|
|
bb60ea028e | ||
|
|
fb040de538 | ||
|
|
e76bf0c4da | ||
|
|
db77ddce0f | ||
|
|
1ed65ba8f6 | ||
|
|
0fc7aa3767 | ||
|
|
f8d2cfd1f2 | ||
|
|
252784c029 | ||
|
|
e6fecc5020 | ||
|
|
c973d4edd6 | ||
|
|
2dc1baf2e8 | ||
|
|
b0e3ff1231 | ||
|
|
17154e33d2 | ||
|
|
37d609c2bd | ||
|
|
e78414ac1e | ||
|
|
f3dddef6a4 | ||
|
|
3d66556acf | ||
|
|
433d726d75 | ||
|
|
6596474389 | ||
|
|
7b5f295a9b | ||
|
|
5ff21ad589 | ||
|
|
8cd1de6b64 | ||
|
|
f4fa80a8cf | ||
|
|
00e12b8bd8 | ||
|
|
083c59550a | ||
|
|
b5c1c6b974 | ||
|
|
0dd2639d97 | ||
|
|
e2d74220d5 | ||
|
|
f0959c2796 | ||
|
|
6b26974ce7 | ||
|
|
a6b4378533 | ||
|
|
512f044ec6 | ||
|
|
67c99fb322 | ||
|
|
57d0869e65 | ||
|
|
64f051ece3 | ||
|
|
eba878dea1 | ||
|
|
a2825be165 | ||
|
|
8f8d901787 | ||
|
|
80f93b471a | ||
|
|
36a359eb6f | ||
|
|
0dc3e1c8a4 | ||
|
|
17dbe15dc2 | ||
|
|
72435cd0e8 | ||
|
|
a12323cf2e | ||
|
|
ecbcb8f63c | ||
|
|
ebc013a204 | ||
|
|
f861bbece8 | ||
|
|
86113d1429 | ||
|
|
9f8c8b4c10 | ||
|
|
1ec6562799 | ||
|
|
b729f53d9d | ||
|
|
cd630536e2 | ||
|
|
cdbb4eefcc | ||
|
|
b015abf85f | ||
|
|
a9e6874fe0 | ||
|
|
47a5412eeb | ||
|
|
70402ba46f | ||
|
|
d3c8af196d | ||
|
|
955fd1d247 | ||
|
|
995da0f611 | ||
|
|
9c79f54994 | ||
|
|
5a3aa9db18 | ||
|
|
e637034a8c | ||
|
|
62987fbbe1 | ||
|
|
5dbbf340a0 | ||
|
|
31ae58435e | ||
|
|
1ff381d0b7 | ||
|
|
16777de1a9 | ||
|
|
24adfcb9f2 | ||
|
|
9e036d259f | ||
|
|
df5695a220 | ||
|
|
aa687ade0b | ||
|
|
422256122d | ||
|
|
2ebac920f2 | ||
|
|
b678bf384c | ||
|
|
9a4773610a | ||
|
|
d895affffa | ||
|
|
1a207e3543 | ||
|
|
7bc4417eff | ||
|
|
7afffe1809 | ||
|
|
4080901576 | ||
|
|
deeb8b987a | ||
|
|
f142a9d52c | ||
|
|
7bc9347909 | ||
|
|
c6176d0b1e | ||
|
|
cef91e442a | ||
|
|
45e0504dab | ||
|
|
ad5baf2823 | ||
|
|
a89f186f40 | ||
|
|
0951720512 | ||
|
|
0d251a9d43 | ||
|
|
e025f22553 | ||
|
|
a76bbba2a6 | ||
|
|
a24b385560 | ||
|
|
2934319591 | ||
|
|
ca708c3f56 | ||
|
|
15668ee7b5 | ||
|
|
47e740fd88 | ||
|
|
ae0b63eb50 | ||
|
|
9de641eb66 | ||
|
|
9aff925c94 | ||
|
|
02bc6b6bce | ||
|
|
5fe3c34167 | ||
|
|
4ea2ab0ddb | ||
|
|
ed06bbda9d | ||
|
|
7c70c247b9 | ||
|
|
0761be3258 | ||
|
|
4329b43b76 | ||
|
|
8836f90251 | ||
|
|
a36e8b19f8 | ||
|
|
0d487b6490 | ||
|
|
4ab9b14bcb | ||
|
|
fc0aac9877 | ||
|
|
3ec92af160 | ||
|
|
7fe8ad9b35 | ||
|
|
58d55f820f | ||
|
|
9927eb62eb | ||
|
|
8b89c60418 | ||
|
|
62eff7c4c3 | ||
|
|
858130da9c | ||
|
|
a62d3d0e57 | ||
|
|
2df077df26 | ||
|
|
4176303d6f | ||
|
|
dce754182e | ||
|
|
a2186f3fa4 | ||
|
|
dc15a4aabe | ||
|
|
b0eb7aacdd | ||
|
|
6f08d7f5b9 | ||
|
|
4996c2db0d | ||
|
|
9e95c7e71c | ||
|
|
1f36d35d23 | ||
|
|
3acd41027b | ||
|
|
ff5135c2a3 | ||
|
|
7de72bd99a | ||
|
|
b771e86f8d | ||
|
|
b25209f114 | ||
|
|
0a58484d6d | ||
|
|
c702699f45 | ||
|
|
99653613ee | ||
|
|
4acba7de18 | ||
|
|
8765cf4d3f | ||
|
|
c78b023675 | ||
|
|
c9f0c5f475 | ||
|
|
33867d4d1f | ||
|
|
6e07d42a1b | ||
|
|
67811d87fa | ||
|
|
d9924010d4 | ||
|
|
0ddc179737 | ||
|
|
a125219751 | ||
|
|
93b53214f6 | ||
|
|
50b0e8babf | ||
|
|
06d6a370b7 | ||
|
|
4890447787 | ||
|
|
0bf2c5c580 | ||
|
|
00359b1a4e | ||
|
|
c6225f7117 | ||
|
|
173fa526e9 | ||
|
|
555d5cdbbe | ||
|
|
4ed7c6c242 | ||
|
|
9a01ace34d | ||
|
|
6e20ad6edb | ||
|
|
68d1bbb359 | ||
|
|
c081155c4f | ||
|
|
0b02c5d17c | ||
|
|
cd577f5108 | ||
|
|
d3882edebc | ||
|
|
cf8fbf5870 | ||
|
|
3b6efc1786 | ||
|
|
cd427c66be | ||
|
|
9467dd89bf | ||
|
|
57590c48bb | ||
|
|
f4b3ed33a2 | ||
|
|
8af26827de |
9
.codespellrc
Normal file
9
.codespellrc
Normal file
@@ -0,0 +1,9 @@
|
||||
[codespell]
|
||||
# Ref: https://github.com/codespell-project/codespell#using-a-config-file
|
||||
skip = .git*,*.svg,go.sum,package-lock.json,*.css,.codespellrc,locales,stopwords.*,shortwords.*,countries.*,keywords.json,smallwords.*
|
||||
check-hidden = true
|
||||
# ACRONYMS and generally mixed case/Capitalized words
|
||||
# Also ignore some German
|
||||
ignore-regex = ^(SMethod=shal|biuld: build)$|https://\S+|\b([A-Z][a-zA-Z]+|ist auf)\b|"(datin|alis|hel)"|\bfixe == false\b
|
||||
# common variables or other tricky cases
|
||||
ignore-words-list = renderd,nd,folde,crate,ue,fo,ist,alo,mot,te,admiraal
|
||||
@@ -1,4 +1,4 @@
|
||||
# Local build files and directories
|
||||
# Local build files and directories:
|
||||
/photos/*
|
||||
/frontend/node_modules/*
|
||||
/node_modules
|
||||
@@ -7,32 +7,63 @@
|
||||
/assets/facenet
|
||||
/assets/nasnet
|
||||
/assets/nsfw
|
||||
/assets/efficientnet
|
||||
/assets/imagenet
|
||||
/assets/resnet
|
||||
/assets/vision
|
||||
/assets/models
|
||||
/storage
|
||||
/build
|
||||
/photoprism
|
||||
/photoprism-*
|
||||
/coverage.*
|
||||
/frontend/tests/acceptance/screenshots
|
||||
/test/
|
||||
/specs/
|
||||
/docs/
|
||||
/bin/
|
||||
|
||||
# Custom config, database, log, and temporary files
|
||||
/tmp/
|
||||
.env
|
||||
# Docker configuration files:
|
||||
.dockerignore
|
||||
*.log
|
||||
*.jsonl
|
||||
*.db
|
||||
*.db-journal
|
||||
Dockerfile
|
||||
docker-compose*
|
||||
compose.yaml
|
||||
compose.*.yaml
|
||||
*.override.yml
|
||||
*.override.yaml
|
||||
*.tmp.yml
|
||||
*.tmp.yaml
|
||||
|
||||
# Automatically generated files, e.g. by editors and operating systems
|
||||
# Customization, database, log, and temporary files:
|
||||
*.socket
|
||||
*.lock
|
||||
*.sock
|
||||
*.pid
|
||||
*.log
|
||||
*.jsonl
|
||||
*.db
|
||||
*.db-journal
|
||||
*.sqlite
|
||||
*.override.yml
|
||||
*.tmp.yml
|
||||
*.override.yaml
|
||||
*.tmp.yaml
|
||||
*.out
|
||||
*.test
|
||||
*.exe
|
||||
*.exe~
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
*.tmp
|
||||
*.img
|
||||
*.img.xz
|
||||
*.img.gz
|
||||
/*.zip
|
||||
/coverage.*
|
||||
__pycache__
|
||||
venv
|
||||
.venv
|
||||
.env
|
||||
.tmp
|
||||
.nv
|
||||
.eslintcache
|
||||
.gocache
|
||||
.DS_Store
|
||||
.DS_Store?
|
||||
._*
|
||||
@@ -42,10 +73,13 @@ ehthumbs.db
|
||||
Thumbs.db
|
||||
.heartbeat
|
||||
.idea
|
||||
.glide
|
||||
.codex
|
||||
.local
|
||||
*~
|
||||
.goutputstream*
|
||||
.c9revisions
|
||||
.settings
|
||||
.swp
|
||||
.tmp
|
||||
.glide
|
||||
/tmp/
|
||||
/internal/tmp/
|
||||
|
||||
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,5 +1,5 @@
|
||||
---
|
||||
name: Bug Report
|
||||
name: Bug Report 🐞
|
||||
about: Report a new and clearly identified bug that must be fixed directly in the application
|
||||
title: 'SHORT DESCRIPTION OF THE PROBLEM YOU ARE REPORTING'
|
||||
labels: bug
|
||||
|
||||
92
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
92
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
name: Bug Report 🐞
|
||||
description: Report a new and clearly identified bug that must be fixed directly in the application.
|
||||
title: "Category: Short bug description (PLEASE CHANGE)"
|
||||
labels:
|
||||
- bug
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
PLEASE ONLY PROCEED IF YOU ARE SURE THIS IS NOT A SUPPORT REQUEST, AND THE ISSUE IS NOT RELATED TO A CUSTOM SETUP OR OTHER SOFTWARE YOU ARE USING:
|
||||
1. Thoroughly review our [Getting Started](https://docs.photoprism.app/getting-started/) and [User Guides](https://docs.photoprism.app/user-guide/).
|
||||
2. Work through the [Troubleshooting Checklists](https://docs.photoprism.app/getting-started/troubleshooting/) we provide.
|
||||
3. Do not report [known issues](https://docs.photoprism.app/known-issues/) or [missing features](https://github.com/photoprism/photoprism/issues) as bugs.
|
||||
- type: checkboxes
|
||||
id: prerequisites
|
||||
attributes:
|
||||
label: Before You Continue
|
||||
description: Confirm that you reviewed the guidance above.
|
||||
options:
|
||||
- label: This is a new, confirmed bug that has not yet been reported or documented
|
||||
required: true
|
||||
- type: textarea
|
||||
id: documented-behavior
|
||||
attributes:
|
||||
label: What Is Not Working as Documented?
|
||||
description: Be specific and include links to the relevant documentation when possible.
|
||||
placeholder: Describe the incorrect behavior and link to the related documentation on https://docs.photoprism.app/.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: reproduction-steps
|
||||
attributes:
|
||||
label: How Can We Reproduce It?
|
||||
description: Provide numbered steps so we can reproduce the behavior reliably.
|
||||
placeholder: |
|
||||
1. Go to ...
|
||||
2. Click ...
|
||||
3. Scroll to ...
|
||||
4. Expected vs. actual result
|
||||
render: markdown
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected-behavior
|
||||
attributes:
|
||||
label: What Behavior Do You Expect?
|
||||
description: Share the correct outcome you expected to see.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: possible-cause
|
||||
attributes:
|
||||
label: What Could Be the Cause?
|
||||
description: Summarize any investigation you have already completed and the potential root cause.
|
||||
- type: textarea
|
||||
id: supporting-material
|
||||
attributes:
|
||||
label: Logs, Sample Files, or Screenshots
|
||||
description: Attach or link to files that help us reproduce the problem. Import and indexing issues require sample files and logs.
|
||||
placeholder: Provide links to archives, logs, or screenshots. See https://www.photoprism.app/contact for secure sharing options.
|
||||
- type: textarea
|
||||
id: software-versions
|
||||
attributes:
|
||||
label: Which Software Versions Do You Use?
|
||||
description: Include all relevant software versions so we can reproduce the environment.
|
||||
placeholder: |
|
||||
- PhotoPrism Architecture & Build Number (AMD64, ARM64, ARMv7, ...):
|
||||
- Database Type & Version (MariaDB, MySQL, SQLite, ...):
|
||||
- Operating System Types & Versions (Linux, Windows, Android, ...):
|
||||
- Browser Types & Versions (Firefox, Chrome, Safari on iPhone, ...):
|
||||
- Ad Blockers, Browser Plugins, or Firewall Software:
|
||||
render: markdown
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: installation-device
|
||||
attributes:
|
||||
label: On What Device Is PhotoPrism Installed?
|
||||
description: Provide hardware details, especially for performance, import, or indexing issues.
|
||||
placeholder: |
|
||||
- Device / Processor Type (Raspberry Pi 4, Intel Core i7-3770, AMD Ryzen 7 3800X, ...):
|
||||
- Physical Memory & Swap Space (GB):
|
||||
- Storage Type (HDD, SSD, RAID, USB, Network Storage, ...):
|
||||
- Additional Context:
|
||||
render: markdown
|
||||
- type: textarea
|
||||
id: networking-setup
|
||||
attributes:
|
||||
label: Do You Use a Reverse Proxy, Firewall, VPN, or CDN?
|
||||
description: Specify type and version if applicable; include NGINX configuration when relevant.
|
||||
placeholder: Describe proxies, VPNs, CDNs, or firewall software involved. Include versions and configuration snippets when helpful.
|
||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Ask a Question in GitHub Discussions
|
||||
url: https://github.com/photoprism/photoprism/discussions
|
||||
about: Use Discussions for general questions, community support, and troubleshooting help.
|
||||
- name: Read Our Support Guide
|
||||
url: https://www.photoprism.app/kb/getting-support
|
||||
about: Learn about official support options and how to get assistance with PhotoPrism.
|
||||
47
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
Normal file
47
.github/ISSUE_TEMPLATE/feature-request.yml
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
name: Feature Request
|
||||
description: Suggest a new feature or enhancement.
|
||||
title: "Category: Short feature description (PLEASE CHANGE)"
|
||||
labels:
|
||||
- idea
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Be sure to [check our roadmap](https://link.photoprism.app/roadmap) and [search GitHub for similar features](https://github.com/photoprism/photoprism/issues) before submitting a new request.
|
||||
- type: checkboxes
|
||||
id: request-prep
|
||||
attributes:
|
||||
label: Confirmation
|
||||
description: Make sure you completed these steps before opening a new request.
|
||||
options:
|
||||
- label: I checked this request against the roadmap and existing issues
|
||||
required: true
|
||||
- type: textarea
|
||||
id: problem-statement
|
||||
attributes:
|
||||
label: What Problem Does This Solve and Why Is It Valuable?
|
||||
description: Explain the underlying problem and why solving it matters to many users.
|
||||
placeholder: Describe the problem, why it is important, and who is affected.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: proposed-solution
|
||||
attributes:
|
||||
label: What Solution Would You Like?
|
||||
description: Provide a clear and concise description of the feature or enhancement you propose.
|
||||
placeholder: Outline the proposed solution or experience from the user's perspective.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: What Alternatives Have You Considered?
|
||||
description: Describe other options you explored and why they are less suitable.
|
||||
placeholder: Mention any alternative solutions, workarounds, or related features you evaluated.
|
||||
- type: textarea
|
||||
id: additional-context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: Share relevant context, references, or screenshots that illustrate the request.
|
||||
placeholder: Add links, references, or screenshots that help explain the request.
|
||||
18
.github/ISSUE_TEMPLATE/question.md
vendored
18
.github/ISSUE_TEMPLATE/question.md
vendored
@@ -1,18 +0,0 @@
|
||||
---
|
||||
name: Question
|
||||
about: You have a general question or need assistance
|
||||
title: 'STOP! DO NOT PROCEED, USE GITHUB DISCUSSIONS INSTEAD - THANK YOU'
|
||||
labels: technical-support
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
FOR GENERAL QUESTIONS, TECHNICAL SUPPORT, AND TO GET TO KNOW OTHER COMMUNITY MEMBERS:
|
||||
|
||||
<https://github.com/photoprism/photoprism/discussions>
|
||||
|
||||
OUR TROUBLESHOOTING CHECKLISTS HELP YOU QUICKLY DIAGNOSE AND FIX COMMON PROBLEMS:
|
||||
|
||||
<https://docs.photoprism.app/getting-started/troubleshooting/>
|
||||
|
||||
DO NOT PROCEED, THANK YOU!
|
||||
57
.github/PULL_REQUEST_TEMPLATE.md
vendored
57
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -1,33 +1,34 @@
|
||||
<!--
|
||||
|
||||
Thank you for your interest in contributing!
|
||||
|
||||
Because we want to create the best possible product for our users, we have a set of criteria to ensure that all submissions are acceptable, see https://docs.photoprism.app/developer-guide/pull-requests/ for details.
|
||||
|
||||
(1) Please provide a concise description of your pull request.
|
||||
|
||||
- What does it implement / fix / improve? Why?
|
||||
- Are the changes related to an existing issue?
|
||||
|
||||
(2) After you submit your first pull request, you will be asked to accept our CLA, see https://www.photoprism.app/cla.
|
||||
|
||||
(3) Finally, please confirm that the following criteria are met by replacing "[ ]" with "[x]" (also possible at a later time).
|
||||
|
||||
-->
|
||||
|
||||
Acceptance Criteria:
|
||||
|
||||
- [ ] Features and enhancements must be fully implemented so that they can be released at any time without additional work
|
||||
- [ ] Automated unit and/or acceptance tests are mandatory to ensure the changes work as expected and to reduce repetitive manual work
|
||||
- [ ] Frontend components must be responsive to work and look properly on phones, tablets, and desktop computers; you must have tested them on all major browsers and different devices
|
||||
- [ ] Documentation and translation updates should be provided if needed
|
||||
- [ ] In case you submit database-related changes, they must be tested and compatible with SQLite 3 and MariaDB 10.5.12+
|
||||
### Description
|
||||
|
||||
<!--
|
||||
We appreciate your interest in contributing! Please provide a brief description of your changes so that we know what is included in this pull request, and confirm that it meets the acceptance criteria:
|
||||
|
||||
Since reviewing, testing and finally merging pull requests requires significant resources on our side, this can take several months if it's not just a small fix, especially if extensive testing is required to prevent bugs from getting into our stable version.
|
||||
|
||||
We thank you for your patience! :)
|
||||
|
||||
What does it aim to implement, fix or improve? Why?
|
||||
-->
|
||||
|
||||
These changes implement/fix/improve...
|
||||
|
||||
#### Related Issues
|
||||
|
||||
- Links to issues that this PR fixes, implements, or is otherwise related to...
|
||||
|
||||
### Acceptance Criteria
|
||||
|
||||
<!-- You may add additional criteria and/or remove criteria that do not apply, e.g. because your PR does not include frontend changes: -->
|
||||
|
||||
- [ ] New features or enhancements are fully implemented and do not break existing functionality, so that they can be released at any time without requiring additional work
|
||||
- [ ] Automated unit and/or acceptance tests are included to ensure that changes work as expected and to reduce repetitive manual work
|
||||
- [ ] Documentation has been / will be updated, especially as it relates to new configuration options or potentially disruptive changes
|
||||
- [ ] The user interface has been tested on Chrome, Safari, and Firefox and is fully responsive for use on phones, tablets, and desktop computers
|
||||
- [ ] Database-related changes have been successfully tested with SQLite 3 and MariaDB 10.5.12+
|
||||
|
||||
<!--
|
||||
Contribution Agreement:
|
||||
|
||||
After submitting your first pull request, you will be asked to confirm our contribution agreement. This allows us to safely use your Contribution in all our projects without risking unexpected legal disputes or having to repeatedly ask for permission.
|
||||
The agreement is solely for our protection and that of our users. It does not grant us exclusive rights to your code.
|
||||
|
||||
PhotoPrism UG ("PhotoPrism", "we" or "us") hereby confirms to you that, to the fullest extent permitted by applicable law, this Contribution is provided "AS IS" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED WARRANTIES OR CONDITIONS OF NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. You have no obligation to provide support, maintenance, or other services for your Contribution.
|
||||
|
||||
Thank you very much! 🌈💎✨
|
||||
-->
|
||||
86
.github/copilot-instructions.md
vendored
Normal file
86
.github/copilot-instructions.md
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
# Instructions for GitHub Copilot
|
||||
|
||||
## Purpose
|
||||
|
||||
- Provide Copilot with the single sources of truth for building, testing, and contributing to PhotoPrism.
|
||||
- Improve PR reviews and code suggestions by aligning them with our documented workflows and style.
|
||||
|
||||
## Single Sources of Truth (SOT)
|
||||
|
||||
- Makefile targets (always prefer existing targets): https://github.com/photoprism/photoprism/blob/develop/Makefile
|
||||
- Developer Guide – Setup: https://docs.photoprism.app/developer-guide/setup/
|
||||
- Developer Guide – Tests: https://docs.photoprism.app/developer-guide/tests/
|
||||
- Contributing: https://github.com/photoprism/photoprism/blob/develop/CONTRIBUTING.md
|
||||
- Security: https://github.com/photoprism/photoprism/blob/develop/SECURITY.md
|
||||
- REST API (Swagger): https://docs.photoprism.dev/
|
||||
- REST API Guide: https://docs.photoprism.app/developer-guide/api/
|
||||
- Agents reference for tools/commands: https://github.com/photoprism/photoprism/blob/develop/AGENTS.md
|
||||
|
||||
## Build & Run (local dev; use Makefile first)
|
||||
|
||||
- Show tasks: `make help`
|
||||
- Build local image: `make docker-build`
|
||||
- Start dev env: `docker compose up` (add `-d` for detached)
|
||||
- Logs: `docker compose logs -f --tail=100 photoprism`
|
||||
- Open app: http://localhost:2342/ (HTTP) / https://app.localssl.dev/ (TLS via Traefik when enabled)
|
||||
- From the dev container:
|
||||
- Install deps: `make dep`
|
||||
- Build frontend: `make build-js` (or `cd frontend && npm run build`)
|
||||
- Build backend: `make build-go`
|
||||
- Watch frontend: `make watch-js` (stop with Ctrl+C)
|
||||
- Run server binary: `./photoprism start`
|
||||
|
||||
## Tests & Lint
|
||||
|
||||
- Full tests: `make test`
|
||||
- Frontend tests (Vitest): `make test-js` (watch: `make vitest-watch`, coverage: `make vitest-coverage`)
|
||||
- Backend tests: `make test-go`
|
||||
- Formatting:
|
||||
- Go: `go fmt`, `goimports` (see `make fmt`, `make fmt-go`)
|
||||
- JS/Vue: use scripts in `frontend/package.json` (ESLint + Prettier)
|
||||
|
||||
## Project Structure & Languages
|
||||
|
||||
- Backend: Go (`internal/`, `pkg/`, `cmd/`) + MariaDB/SQLite
|
||||
- Frontend: Vue 3 + Vuetify 3 (`frontend/`)
|
||||
- Docker/compose for dev/CI; Traefik used for local TLS in dev profile when enabled.
|
||||
|
||||
## Code Review Instructions (for Copilot)
|
||||
|
||||
- Respect SOT above; do not invent flags, env vars, or Compose options. If a command/env var is not in the docs/Makefile/CLI help, say “not documented” and suggest checking the SOT.
|
||||
- Prefer minimal, surgical diffs. Propose changes as concrete patches and reference the relevant Makefile target or doc section.
|
||||
- Before suggesting refactors, check tests and build tasks exist and can pass with the change. If tests are missing, suggest specific Vitest/Go test snippets.
|
||||
- Security: never suggest committing secrets; prefer env vars and `.env` in dev only. Point to SECURITY.md for disclosures.
|
||||
- Data safety: never run or recommend destructive CLI operations in examples without explicit backups and `--yes`. Avoid `photoprism reset`, `photoprism users reset`, `photoprism auth reset`, or `photoprism audit reset` in PR comments unless the change is specifically about those commands; if unavoidable, add bold warnings and backup steps.
|
||||
- Database/schema: if a change touches persistence, check for migrations and mention `photoprism migrate` / `migrations` commands.
|
||||
- API changes: align with the REST API docs/spec; include curl examples only if they match current endpoints and auth notes.
|
||||
- UX/i18n: keep UI strings concise, translatable, and consistent; avoid hard-coded language constructs; prefer existing patterns/components.
|
||||
|
||||
## Style & Patterns
|
||||
|
||||
- Go: idiomatic Go, clear error handling, small functions, packages with focused responsibilities. Keep public surface minimal. Add/adjust unit tests.
|
||||
- Vue/JS: options API, store patterns as in existing code, avoid breaking translations. Keep ESLint/Prettier clean.
|
||||
- Config & flags: suggest `photoprism --help`, `photoprism show config-options` or `photoprism show config-yaml` to verify names before using them.
|
||||
|
||||
## Performance & Reliability
|
||||
|
||||
- Prefer using existing caches, workers, and batching strategies referenced in code and Makefile. Consider memory/CPU impact; suggest benchmarks or profiling only when justified.
|
||||
|
||||
## When Unsure
|
||||
|
||||
- Ask for the exact Makefile target or doc link you need, then proceed. Defer to SOT if any conflict arises.
|
||||
|
||||
## References To Help Copilot Answer Questions
|
||||
|
||||
- Show supported formats/filters: run `photoprism show file-formats` and `photoprism show search-filters` (use results rather than guessing).
|
||||
- For CI/dev containers, assume Linux/Unix shell by default; link Windows specifics in Developer Guide FAQ.
|
||||
|
||||
## Output Expectations
|
||||
|
||||
- Prefer short, actionable comments with code blocks that pass tests locally: `make test-js` (frontend) / `make test-go` (backend)
|
||||
- If a suggestion requires additional context (e.g., DB access, external service), call it out explicitly.
|
||||
|
||||
## Safety Checklist Before Proposing a CLI Command
|
||||
|
||||
- Include a dry-run or non-destructive variant if possible.
|
||||
- Recommend creating/using backups before any reset/migrate.
|
||||
13
.github/instructions/backend.instructions.md
vendored
Normal file
13
.github/instructions/backend.instructions.md
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
applyTo:
|
||||
- "internal/**"
|
||||
- "pkg/**"
|
||||
- "cmd/**"
|
||||
---
|
||||
|
||||
For backend changes:
|
||||
|
||||
- Maintain Go style; keep functions small, errors wrapped with context.
|
||||
- Add/update unit tests; ensure `make test-go` passes.
|
||||
- Touching schema? Mention migrations and verify with `photoprism migrations ls`/`migrate`.
|
||||
- For CLI/config, confirm flags/envs via `photoprism --help` / `photoprism show config-options` before suggesting.
|
||||
12
.github/instructions/frontend.instructions.md
vendored
Normal file
12
.github/instructions/frontend.instructions.md
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
applyTo:
|
||||
- "frontend/**"
|
||||
---
|
||||
|
||||
For frontend changes:
|
||||
|
||||
- Keep Vue 3 idioms; prefer options API and existing components.
|
||||
- Run `make build-js` and `make test-js`; fix ESLint/Prettier before proposing changes.
|
||||
- Avoid introducing global state; follow existing store patterns.
|
||||
- Keep strings translatable; don’t hardcode locales.
|
||||
- For performance, avoid unnecessary reactivity and re-renders; justify new deps.
|
||||
25
.gitignore
vendored
25
.gitignore
vendored
@@ -18,6 +18,10 @@
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
*.tmp
|
||||
*.img
|
||||
*.img.xz
|
||||
*.img.gz
|
||||
/*.zip
|
||||
/coverage.*
|
||||
__pycache__
|
||||
@@ -25,8 +29,13 @@ venv
|
||||
.venv
|
||||
.env
|
||||
.tmp
|
||||
.nv
|
||||
.eslintcache
|
||||
.gocache
|
||||
/pro
|
||||
/plus
|
||||
/tmp/
|
||||
/internal/tmp/
|
||||
/test/
|
||||
*-lock.json
|
||||
/node_modules
|
||||
@@ -37,6 +46,7 @@ venv
|
||||
/frontend/src/locales/*.mo
|
||||
/frontend/tests_output
|
||||
frontend/coverage/
|
||||
**/__screenshots__/
|
||||
/photoprism
|
||||
/photoprism-*
|
||||
/photos/originals/*
|
||||
@@ -48,8 +58,12 @@ frontend/coverage/
|
||||
/assets/nasnet
|
||||
/assets/nsfw
|
||||
/assets/static/build/
|
||||
/pro
|
||||
/plus
|
||||
/assets/static/maps/
|
||||
/assets/*net
|
||||
/assets/vision
|
||||
/specs/
|
||||
/docs/
|
||||
/bin/
|
||||
|
||||
# Files created automatically by editors and/or operating systems:
|
||||
.DS_Store
|
||||
@@ -60,8 +74,13 @@ frontend/coverage/
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
.heartbeat
|
||||
.idea
|
||||
.glide
|
||||
.idea
|
||||
.codex
|
||||
.local
|
||||
.project
|
||||
.vscode
|
||||
*.tmproj
|
||||
*~
|
||||
.goutputstream*
|
||||
.c9revisions
|
||||
|
||||
335
.qdrant.yaml
Normal file
335
.qdrant.yaml
Normal file
@@ -0,0 +1,335 @@
|
||||
log_level: INFO
|
||||
|
||||
# Logging configuration
|
||||
# Qdrant logs to stdout. You may configure to also write logs to a file on disk.
|
||||
# Be aware that this file may grow indefinitely.
|
||||
# logger:
|
||||
# # Logging format, supports `text` and `json`
|
||||
# format: text
|
||||
# on_disk:
|
||||
# enabled: true
|
||||
# log_file: path/to/log/file.log
|
||||
# log_level: INFO
|
||||
# # Logging format, supports `text` and `json`
|
||||
# format: text
|
||||
|
||||
storage:
|
||||
# Where to store all the data
|
||||
storage_path: ./storage
|
||||
|
||||
# Where to store snapshots
|
||||
snapshots_path: ./snapshots
|
||||
|
||||
snapshots_config:
|
||||
# "local" or "s3" - where to store snapshots
|
||||
snapshots_storage: local
|
||||
# s3_config:
|
||||
# bucket: ""
|
||||
# region: ""
|
||||
# access_key: ""
|
||||
# secret_key: ""
|
||||
|
||||
# Where to store temporary files
|
||||
# If null, temporary snapshots are stored in: storage/snapshots_temp/
|
||||
temp_path: null
|
||||
|
||||
# If true - point payloads will not be stored in memory.
|
||||
# It will be read from the disk every time it is requested.
|
||||
# This setting saves RAM by (slightly) increasing the response time.
|
||||
# Note: those payload values that are involved in filtering and are indexed - remain in RAM.
|
||||
#
|
||||
# Default: true
|
||||
on_disk_payload: true
|
||||
|
||||
# Maximum number of concurrent updates to shard replicas
|
||||
# If `null` - maximum concurrency is used.
|
||||
update_concurrency: null
|
||||
|
||||
# Write-ahead-log related configuration
|
||||
wal:
|
||||
# Size of a single WAL segment
|
||||
wal_capacity_mb: 32
|
||||
|
||||
# Number of WAL segments to create ahead of actual data requirement
|
||||
wal_segments_ahead: 0
|
||||
|
||||
# Normal node - receives all updates and answers all queries
|
||||
node_type: "Normal"
|
||||
|
||||
# Listener node - receives all updates, but does not answer search/read queries
|
||||
# Useful for setting up a dedicated backup node
|
||||
# node_type: "Listener"
|
||||
|
||||
performance:
|
||||
# Number of parallel threads used for search operations. If 0 - auto selection.
|
||||
max_search_threads: 0
|
||||
|
||||
# Max number of threads (jobs) for running optimizations across all collections, each thread runs one job.
|
||||
# If 0 - have no limit and choose dynamically to saturate CPU.
|
||||
# Note: each optimization job will also use `max_indexing_threads` threads by itself for index building.
|
||||
max_optimization_threads: 0
|
||||
|
||||
# CPU budget, how many CPUs (threads) to allocate for an optimization job.
|
||||
# If 0 - auto selection, keep 1 or more CPUs unallocated depending on CPU size
|
||||
# If negative - subtract this number of CPUs from the available CPUs.
|
||||
# If positive - use this exact number of CPUs.
|
||||
optimizer_cpu_budget: 0
|
||||
|
||||
# Prevent DDoS of too many concurrent updates in distributed mode.
|
||||
# One external update usually triggers multiple internal updates, which breaks internal
|
||||
# timings. For example, the health check timing and consensus timing.
|
||||
# If null - auto selection.
|
||||
update_rate_limit: null
|
||||
|
||||
# Limit for number of incoming automatic shard transfers per collection on this node, does not affect user-requested transfers.
|
||||
# The same value should be used on all nodes in a cluster.
|
||||
# Default is to allow 1 transfer.
|
||||
# If null - allow unlimited transfers.
|
||||
#incoming_shard_transfers_limit: 1
|
||||
|
||||
# Limit for number of outgoing automatic shard transfers per collection on this node, does not affect user-requested transfers.
|
||||
# The same value should be used on all nodes in a cluster.
|
||||
# Default is to allow 1 transfer.
|
||||
# If null - allow unlimited transfers.
|
||||
#outgoing_shard_transfers_limit: 1
|
||||
|
||||
# Enable async scorer which uses io_uring when rescoring.
|
||||
# Only supported on Linux, must be enabled in your kernel.
|
||||
# See: <https://qdrant.tech/articles/io_uring/#and-what-about-qdrant>
|
||||
#async_scorer: false
|
||||
|
||||
optimizers:
|
||||
# The minimal fraction of deleted vectors in a segment, required to perform segment optimization
|
||||
deleted_threshold: 0.2
|
||||
|
||||
# The minimal number of vectors in a segment, required to perform segment optimization
|
||||
vacuum_min_vector_number: 1000
|
||||
|
||||
# Target amount of segments optimizer will try to keep.
|
||||
# Real amount of segments may vary depending on multiple parameters:
|
||||
# - Amount of stored points
|
||||
# - Current write RPS
|
||||
#
|
||||
# It is recommended to select default number of segments as a factor of the number of search threads,
|
||||
# so that each segment would be handled evenly by one of the threads.
|
||||
# If `default_segment_number = 0`, will be automatically selected by the number of available CPUs
|
||||
default_segment_number: 0
|
||||
|
||||
# Do not create segments larger this size (in KiloBytes).
|
||||
# Large segments might require disproportionately long indexation times,
|
||||
# therefore it makes sense to limit the size of segments.
|
||||
#
|
||||
# If indexation speed have more priority for your - make this parameter lower.
|
||||
# If search speed is more important - make this parameter higher.
|
||||
# Note: 1Kb = 1 vector of size 256
|
||||
# If not set, will be automatically selected considering the number of available CPUs.
|
||||
max_segment_size_kb: null
|
||||
|
||||
# Maximum size (in KiloBytes) of vectors to store in-memory per segment.
|
||||
# Segments larger than this threshold will be stored as read-only memmapped file.
|
||||
# To enable memmap storage, lower the threshold
|
||||
# Note: 1Kb = 1 vector of size 256
|
||||
# To explicitly disable mmap optimization, set to `0`.
|
||||
# If not set, will be disabled by default.
|
||||
memmap_threshold_kb: null
|
||||
|
||||
# Maximum size (in KiloBytes) of vectors allowed for plain index.
|
||||
# Default value based on https://github.com/google-research/google-research/blob/master/scann/docs/algorithms.md
|
||||
# Note: 1Kb = 1 vector of size 256
|
||||
# To explicitly disable vector indexing, set to `0`.
|
||||
# If not set, the default value will be used.
|
||||
indexing_threshold_kb: 20000
|
||||
|
||||
# Interval between forced flushes.
|
||||
flush_interval_sec: 5
|
||||
|
||||
# Max number of threads (jobs) for running optimizations per shard.
|
||||
# Note: each optimization job will also use `max_indexing_threads` threads by itself for index building.
|
||||
# If null - have no limit and choose dynamically to saturate CPU.
|
||||
# If 0 - no optimization threads, optimizations will be disabled.
|
||||
max_optimization_threads: null
|
||||
|
||||
# This section has the same options as 'optimizers' above. All values specified here will overwrite the collections
|
||||
# optimizers configs regardless of the config above and the options specified at collection creation.
|
||||
#optimizers_overwrite:
|
||||
# deleted_threshold: 0.2
|
||||
# vacuum_min_vector_number: 1000
|
||||
# default_segment_number: 0
|
||||
# max_segment_size_kb: null
|
||||
# memmap_threshold_kb: null
|
||||
# indexing_threshold_kb: 20000
|
||||
# flush_interval_sec: 5
|
||||
# max_optimization_threads: null
|
||||
|
||||
# Default parameters of HNSW Index. Could be overridden for each collection or named vector individually
|
||||
hnsw_index:
|
||||
# Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.
|
||||
m: 16
|
||||
|
||||
# Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build index.
|
||||
ef_construct: 100
|
||||
|
||||
# Minimal size (in KiloBytes) of vectors for additional payload-based indexing.
|
||||
# If payload chunk is smaller than `full_scan_threshold_kb` additional indexing won't be used -
|
||||
# in this case full-scan search should be preferred by query planner and additional indexing is not required.
|
||||
# Note: 1Kb = 1 vector of size 256
|
||||
full_scan_threshold_kb: 10000
|
||||
|
||||
# Number of parallel threads used for background index building.
|
||||
# If 0 - automatically select.
|
||||
# Best to keep between 8 and 16 to prevent likelihood of building broken/inefficient HNSW graphs.
|
||||
# On small CPUs, less threads are used.
|
||||
max_indexing_threads: 0
|
||||
|
||||
# Store HNSW index on disk. If set to false, index will be stored in RAM. Default: false
|
||||
on_disk: false
|
||||
|
||||
# Custom M param for hnsw graph built for payload index. If not set, default M will be used.
|
||||
payload_m: null
|
||||
|
||||
# Default shard transfer method to use if none is defined.
|
||||
# If null - don't have a shard transfer preference, choose automatically.
|
||||
# If stream_records, snapshot or wal_delta - prefer this specific method.
|
||||
# More info: https://qdrant.tech/documentation/guides/distributed_deployment/#shard-transfer-method
|
||||
shard_transfer_method: null
|
||||
|
||||
# Default parameters for collections
|
||||
collection:
|
||||
# Number of replicas of each shard that network tries to maintain
|
||||
replication_factor: 1
|
||||
|
||||
# How many replicas should apply the operation for us to consider it successful
|
||||
write_consistency_factor: 1
|
||||
|
||||
# Default parameters for vectors.
|
||||
vectors:
|
||||
# Whether vectors should be stored in memory or on disk.
|
||||
on_disk: null
|
||||
|
||||
# shard_number_per_node: 1
|
||||
|
||||
# Default quantization configuration.
|
||||
# More info: https://qdrant.tech/documentation/guides/quantization
|
||||
quantization: null
|
||||
|
||||
# Default strict mode parameters for newly created collections.
|
||||
strict_mode:
|
||||
# Whether strict mode is enabled for a collection or not.
|
||||
enabled: false
|
||||
|
||||
# Max allowed `limit` parameter for all APIs that don't have their own max limit.
|
||||
max_query_limit: null
|
||||
|
||||
# Max allowed `timeout` parameter.
|
||||
max_timeout: null
|
||||
|
||||
# Allow usage of unindexed fields in retrieval based (eg. search) filters.
|
||||
unindexed_filtering_retrieve: null
|
||||
|
||||
# Allow usage of unindexed fields in filtered updates (eg. delete by payload).
|
||||
unindexed_filtering_update: null
|
||||
|
||||
# Max HNSW value allowed in search parameters.
|
||||
search_max_hnsw_ef: null
|
||||
|
||||
# Whether exact search is allowed or not.
|
||||
search_allow_exact: null
|
||||
|
||||
# Max oversampling value allowed in search.
|
||||
search_max_oversampling: null
|
||||
|
||||
service:
|
||||
# Maximum size of POST data in a single request in megabytes
|
||||
max_request_size_mb: 32
|
||||
|
||||
# Number of parallel workers used for serving the api. If 0 - equal to the number of available cores.
|
||||
# If missing - Same as storage.max_search_threads
|
||||
max_workers: 0
|
||||
|
||||
# Host to bind the service on
|
||||
host: 0.0.0.0
|
||||
|
||||
# HTTP(S) port to bind the service on
|
||||
http_port: 6333
|
||||
|
||||
# gRPC port to bind the service on.
|
||||
# If `null` - gRPC is disabled. Default: null
|
||||
# Comment to disable gRPC:
|
||||
grpc_port: 6334
|
||||
|
||||
# Enable CORS headers in REST API.
|
||||
# If enabled, browsers would be allowed to query REST endpoints regardless of query origin.
|
||||
# More info: https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
|
||||
# Default: true
|
||||
enable_cors: true
|
||||
|
||||
# Enable HTTPS for the REST and gRPC API
|
||||
enable_tls: false
|
||||
|
||||
# Check user HTTPS client certificate against CA file specified in tls config
|
||||
verify_https_client_certificate: false
|
||||
|
||||
# Set an api-key.
|
||||
# If set, all requests must include a header with the api-key.
|
||||
# example header: `api-key: <API-KEY>`
|
||||
#
|
||||
# If you enable this you should also enable TLS.
|
||||
# (Either above or via an external service like nginx.)
|
||||
# Sending an api-key over an unencrypted channel is insecure.
|
||||
#
|
||||
# Uncomment to enable.
|
||||
# api_key: your_secret_api_key_here
|
||||
|
||||
# Set an api-key for read-only operations.
|
||||
# If set, all requests must include a header with the api-key.
|
||||
# example header: `api-key: <API-KEY>`
|
||||
#
|
||||
# If you enable this you should also enable TLS.
|
||||
# (Either above or via an external service like nginx.)
|
||||
# Sending an api-key over an unencrypted channel is insecure.
|
||||
#
|
||||
# Uncomment to enable.
|
||||
# read_only_api_key: your_secret_read_only_api_key_here
|
||||
|
||||
# Uncomment to enable JWT Role Based Access Control (RBAC).
|
||||
# If enabled, you can generate JWT tokens with fine-grained rules for access control.
|
||||
# Use generated token instead of API key.
|
||||
#
|
||||
# jwt_rbac: true
|
||||
|
||||
# Hardware reporting adds information to the API responses with a
|
||||
# hint on how many resources were used to execute the request.
|
||||
#
|
||||
# Uncomment to enable.
|
||||
# hardware_reporting: true
|
||||
|
||||
cluster:
|
||||
# Use `enabled: true` to run Qdrant in distributed deployment mode
|
||||
enabled: false
|
||||
|
||||
# Configuration of the inter-cluster communication
|
||||
p2p:
|
||||
# Port for internal communication between peers
|
||||
port: 6335
|
||||
|
||||
# Use TLS for communication between peers
|
||||
enable_tls: false
|
||||
|
||||
# Configuration related to distributed consensus algorithm
|
||||
consensus:
|
||||
# How frequently peers should ping each other.
|
||||
# Setting this parameter to lower value will allow consensus
|
||||
# to detect disconnected nodes earlier, but too frequent
|
||||
# tick period may create significant network and CPU overhead.
|
||||
# We encourage you NOT to change this parameter unless you know what you are doing.
|
||||
tick_period_ms: 100
|
||||
|
||||
# Compact consensus operations once we have this amount of applied
|
||||
# operations. Allows peers to join quickly with a consensus snapshot without
|
||||
# replaying a huge amount of operations.
|
||||
# If 0 - disable compaction
|
||||
compact_wal_entries: 128
|
||||
|
||||
# Set to true to prevent service from sending usage statistics to the developers.
|
||||
# Read more: https://qdrant.tech/documentation/guides/telemetry
|
||||
telemetry_disabled: true
|
||||
429
AGENTS.md
Normal file
429
AGENTS.md
Normal file
@@ -0,0 +1,429 @@
|
||||
# PhotoPrism® Repository Guidelines
|
||||
|
||||
**Last Updated:** October 21, 2025
|
||||
|
||||
## Purpose
|
||||
|
||||
This file tells automated coding agents (and humans) where to find the single sources of truth for building, testing, and contributing to PhotoPrism.
|
||||
Learn more: https://agents.md/
|
||||
|
||||
## Sources of Truth
|
||||
|
||||
- Makefile targets (always prefer existing targets): https://github.com/photoprism/photoprism/blob/develop/Makefile
|
||||
- Developer Guide – Setup: https://docs.photoprism.app/developer-guide/setup/
|
||||
- Developer Guide – Tests: https://docs.photoprism.app/developer-guide/tests/
|
||||
- Contributing: https://github.com/photoprism/photoprism/blob/develop/CONTRIBUTING.md
|
||||
- Security: https://github.com/photoprism/photoprism/blob/develop/SECURITY.md
|
||||
- REST API: https://docs.photoprism.dev/ (Swagger), https://docs.photoprism.app/developer-guide/api/ (Docs)
|
||||
- Code Maps: [`CODEMAP.md`](CODEMAP.md) (Backend/Go), [`frontend/CODEMAP.md`](frontend/CODEMAP.md) (Frontend/JS)
|
||||
- Face Detection & Embeddings Notes: [`internal/ai/face/README.md`](internal/ai/face/README.md)
|
||||
|
||||
> Quick Tip: to inspect GitHub issue details without leaving the terminal, run `curl -s https://api.github.com/repos/photoprism/photoprism/issues/<id>`.
|
||||
|
||||
### Specifications (Versioning & Usage)
|
||||
|
||||
- In the main repo, `specs/` appears ignored because it is managed as a nested Git repository; change into `specs/` before staging or committing spec updates.
|
||||
- Availability: The `specs/` repository is private and is not guaranteed to be present in every clone or environment. Do not add `Makefile` targets in the main project that depend on `specs/` paths. When `specs/` is available, run its tools directly (e.g., `bash specs/scripts/lint-status.sh`).
|
||||
- If available, always use the latest spec version for a topic (highest `-vN`), as linked from `specs/README.md`.
|
||||
- Testing Guides: `specs/dev/backend-testing.md` (Backend/Go), `specs/dev/frontend-testing.md` (Frontend/JS)
|
||||
- Whenever the Change Management instructions for a document require it, publish changes as a new file with an incremented version suffix (e.g., `*-v3.md`) rather than overwriting the original file.
|
||||
- Older spec versions remain in the repo for historical reference but are not linked from the main TOC. Do not base new work on superseded files (e.g., `*-v1.md` when `*-v2.md` exists).
|
||||
- Auto-generated configuration and command references live under `specs/generated/`. Agents MUST NOT read, analyse, or modify anything in this directory; refer humans to `specs/generated/README.md` if regeneration is required.
|
||||
- Regenerate NOTICE files with `make notice` when dependencies change. Do not edit `NOTICE` or `frontend/NOTICE` manually.
|
||||
|
||||
**Style note:** Document headings must use Title Case (capitalize words ≥4 letters in AP-style) across Markdown files to keep generated navigation and changelogs consistent.
|
||||
|
||||
**CLI note:** When writing CLI examples or scripts, place option flags before positional arguments unless the command requires a different order.
|
||||
|
||||
## Project Structure & Languages
|
||||
|
||||
- Backend: Go (`internal/`, `pkg/`, `cmd/`) + MariaDB/SQLite
|
||||
- Package boundaries: Code in `pkg/*` MUST NOT import from `internal/*`.
|
||||
- If you need access to config/entity/DB, put new code in a package under `internal/` instead of `pkg/`.
|
||||
- GORM field naming: When adding struct fields that include uppercase abbreviations (e.g., `LabelNSFW`), set an explicit `gorm:"column:<name>"` tag so column names stay consistent (`label_nsfw` instead of `label_n_s_f_w`).
|
||||
- Frontend: Vue 3 + Vuetify 3 (`frontend/`)
|
||||
- Docker/compose for dev/CI; Traefik is used for local TLS (`*.localssl.dev`)
|
||||
|
||||
### Web Templates & Shared Assets
|
||||
|
||||
- HTML entrypoints live under `assets/templates/`; key files are `index.gohtml`, `app.gohtml`, `app.js.gohtml`, and `splash.gohtml`. The browser check logic resides in `assets/static/js/browser-check.js` and is included via `app.js.gohtml`; it performs capability checks (Promise, fetch, AbortController, `script.noModule`, etc.) before the main bundle executes.
|
||||
- To preserve the fallback messaging, keep the `<script>` order in `app.js.gohtml` so `browser-check.js` loads before `{{ .config.JsUri }}`. Do not add `defer` or `async` to the bundle tag unless you reintroduce a guarded loader.
|
||||
- The same loader partial is reused in private packages (`pro/assets/templates/index.gohtml`, `plus/assets/templates/index.gohtml`). Whenever you touch `app.js.gohtml` or change how we load the bundle, mirror the update by running commands such as `cd pro && sed -n '1,160p' assets/templates/index.gohtml` (and similarly for `plus`) to confirm they include the shared partial instead of hard-coding `<script src="{{ .config.JsUri }}">`.
|
||||
- Splash styles are defined in `frontend/src/css/splash.css`. Add new splash elements (for example `.splash-warning`) there so both public and private editions remain visually consistent.
|
||||
- Browser baseline: PhotoPrism requires Safari 13 / iOS 13 or current Chrome, Edge, or Firefox. Update the message in `assets/templates/app.js.gohtml` (and the matching CSS) if support changes.
|
||||
|
||||
## Agent Runtime (Host vs Container)
|
||||
|
||||
Agents MAY run either:
|
||||
|
||||
- **Inside the Development Environment container** (recommended for least privilege).
|
||||
- **On the host** (outside Docker), in which case the agent MAY start/stop the Dev Environment as needed.
|
||||
|
||||
### Detecting the environment (agent logic)
|
||||
|
||||
Agents SHOULD detect the runtime and choose commands accordingly:
|
||||
|
||||
- **Inside container if** one of the following is true:
|
||||
- File exists: `/.dockerenv`
|
||||
- Project path equals (or is a direct child of): `/go/src/github.com/photoprism/photoprism`
|
||||
|
||||
#### Examples
|
||||
|
||||
Bash:
|
||||
|
||||
```bash
|
||||
if [ -f "/.dockerenv" ] || [ -d "/go/src/github.com/photoprism/photoprism/.git" ]; then
|
||||
echo "container"
|
||||
else
|
||||
echo "host"
|
||||
fi
|
||||
```
|
||||
|
||||
Node.js:
|
||||
|
||||
```js
|
||||
const fs = require("fs");
|
||||
const inContainer = fs.existsSync("/.dockerenv");
|
||||
const inDevPath = fs.existsSync("/go/src/github.com/photoprism/photoprism/.git");
|
||||
console.log(inContainer || inDevPath ? "container" : "host");
|
||||
```
|
||||
|
||||
### Agent installation and invocation
|
||||
|
||||
- **Inside container**: Prefer running agents via `npm exec` (no global install), for example:
|
||||
- `npm exec --yes <agent-binary> -- --help`
|
||||
- Or use `npx <agent-binary> ...`
|
||||
- If the agent is distributed via npm and must be global, install inside the container only:
|
||||
- `npm install -g <agent-npm-package>`
|
||||
- Replace `<agent-binary>` / `<agent-npm-package>` with the names from the agent’s official docs.
|
||||
|
||||
- **On host**: Use the vendor’s recommended install for your OS. Ensure your agent runs from the repository root so it can discover `AGENTS.md` and project files.
|
||||
|
||||
## Build & Run (local)
|
||||
|
||||
- Run `make help` to see common targets (or open the `Makefile`).
|
||||
|
||||
- **Host mode** (agent runs on the host; agent MAY manage Docker lifecycle):
|
||||
- Build local dev image (once): `make docker-build`
|
||||
- Start services: `docker compose up` (add `-d` to start in the background)
|
||||
- Follow live app logs: `docker compose logs -f --tail=100 photoprism` (Ctrl+C to stop)
|
||||
- All services: `docker compose logs -f --tail=100`
|
||||
- Last 10 minutes only: `docker compose logs -f --since=10m photoprism`
|
||||
- Plain output (easier to copy): `docker compose logs -f --no-log-prefix --no-color photoprism`
|
||||
- Execute a single command in the app container: `docker compose exec photoprism <command>`
|
||||
- Example: `docker compose exec photoprism ./photoprism help`
|
||||
- Why `./photoprism`? It runs the locally built binary in the project directory.
|
||||
- Run as non-root to avoid root-owned files on bind mounts:
|
||||
`docker compose exec -u "$(id -u):$(id -g)" photoprism <command>`
|
||||
- Durable alternative: set the service user or `PHOTOPRISM_UID`/`PHOTOPRISM_GID` in `compose.yaml`; if you hit issues, run `make fix-permissions`.
|
||||
- Open a terminal session in the app container: `make terminal`
|
||||
- Stop everything when done: `docker compose --profile=all down --remove-orphans` (`make down` does the same)
|
||||
|
||||
- **Container mode** (agent runs inside the app container):
|
||||
- Install deps: `make dep`
|
||||
- Build frontend/backend: `make build-js` and `make build-go`
|
||||
- Watch frontend changes (auto-rebuild): `make watch-js`
|
||||
- Or run directly: `cd frontend && npm run watch`
|
||||
- Tips: refresh the browser to see changes; running the watcher outside the container can be faster on non-Linux hosts; stop with Ctrl+C
|
||||
- Start the PhotoPrism server: `./photoprism start`
|
||||
- Open http://localhost:2342/ (HTTP)
|
||||
- Or https://app.localssl.dev/ (HTTPS via Traefik reverse proxy)
|
||||
- Only if Traefik is running and the dev compose labels are active
|
||||
- Labels for `*.localssl.dev` are defined in the dev compose files, e.g. https://github.com/photoprism/photoprism/blob/develop/compose.yaml
|
||||
- Admin Login: Local compose files set `PHOTOPRISM_ADMIN_USER=admin` and `PHOTOPRISM_ADMIN_PASSWORD=photoprism`; if the credentials differ, inspect `compose.yaml` (or the active environment) for these variables before logging in.
|
||||
- Do not use the Docker CLI inside the container; starting/stopping services requires host Docker access.
|
||||
|
||||
Note: Across our public documentation, official images, and in production, the command-line interface (CLI) name is `photoprism`. Other PhotoPrism binary names are only used in development builds for side-by-side comparisons of the Community Edition (CE) with PhotoPrism Plus (`photoprism-plus`) and PhotoPrism Pro (`photoprism-pro`).
|
||||
|
||||
## Tests
|
||||
|
||||
- From within the Development Environment:
|
||||
- Full unit test suite: `make test` (runs backend and frontend tests)
|
||||
- Test frontend/backend: `make test-js` and `make test-go`
|
||||
- Go packages: `go test` (all tests) or `go test -run <name>` (specific tests only)
|
||||
- Need to inspect the MariaDB data while iterating? Connect directly inside the dev shell with `mariadb -D photoprism` and run SQL without rebuilding Go code.
|
||||
- Go tests live beside sources: for `path/to/pkg/<file>.go`, add tests in `path/to/pkg/<file>_test.go` (create if missing). For the same function, group related cases as `t.Run(...)` sub-tests (table-driven where helpful) and use **PascalCase** for subtest names (for example, `t.Run("Success", ...)`).
|
||||
- Frontend unit tests use **Vitest**; see scripts in `frontend/package.json`.
|
||||
- Vitest watch/coverage: `make vitest-watch` and `make vitest-coverage`
|
||||
- Acceptance tests: use the `acceptance-*` targets in the `Makefile`
|
||||
|
||||
### Playwright MCP Usage
|
||||
|
||||
- **Endpoint & Navigation** — Playwright MCP is preconfigured to reach the dev server at `http://localhost:2342/`.
|
||||
Use `playwright__browser_navigate` to open `/library/login`, sign in, and then call `playwright__browser_take_screenshot` to capture the page state.
|
||||
- **Viewport Defaults** — Desktop sessions open with a `1280×900` viewport by default.
|
||||
Use `playwright__browser_resize` if the viewport is not preconfigured or you need to adjust it mid-run.
|
||||
- **Mobile Workflows** — When testing responsive layouts, use the `playwright_mobile` server (for example, `playwright_mobile__browser_navigate`).
|
||||
It launches with a `375×667` viewport, matching a typical smartphone display, so you can capture mobile layouts without manual resizing.
|
||||
- **Authentication** — Default admin credentials are `admin` / `photoprism`:
|
||||
- If login fails, check your active Compose file or container environment for `PHOTOPRISM_ADMIN_USER` and `PHOTOPRISM_ADMIN_PASSWORD`.
|
||||
- Tip: if your MCP supports it, persist a storage state after login and reuse it in later steps to skip re-authentication.
|
||||
- **Sidebar Navigation** — The sidebar nests items such as `Library → Errors`:
|
||||
- Expand a parent entry by clicking its chevron before selecting links inside.
|
||||
- **Session Cleanup** — After scripted interactions, close the browser tab with `playwright__browser_close` (or `playwright_mobile__browser_close`) to keep the MCP session tidy for subsequent runs.
|
||||
- **Stability / Waiting** — Prefer robust waits over sleeps:
|
||||
- After navigation: `waitUntil: 'networkidle'` (or wait for a key locator).
|
||||
- Before clicking: ensure the locator is `visible` and `enabled`.
|
||||
- Use role/label/text selectors over brittle XPaths.
|
||||
- **Screenshot Format & Size** — Keep artifacts small and reproducible:
|
||||
- Prefer **JPEG** with quality (e.g., `quality: 80`) instead of PNG.
|
||||
- Limit to the visible viewport (`fullPage: false`), unless explicitly required.
|
||||
- Name files deterministically, e.g., `.local/screenshots/<case>/<step>__<viewport>.jpg` (create the folder if it doesn’t exist).
|
||||
- Avoid embedding large screenshots in chat history—reference the file path instead.
|
||||
- **Desktop example** (if your MCP tool exposes Playwright options 1:1):
|
||||
```json
|
||||
{
|
||||
"path": ".local/screenshots/fix-event-leaks/login__desktop.jpg",
|
||||
"type": "jpeg",
|
||||
"quality": 80,
|
||||
"fullPage": false
|
||||
}
|
||||
```
|
||||
- **Non-interactive runs** — If `npx` is fetching the MCP server at runtime, add `--yes` to its args (or preinstall and use `--no-install`) to avoid prompts in CI.
|
||||
|
||||
### FFmpeg Tests & Hardware Gating
|
||||
|
||||
- By default, do not run GPU/HW encoder integrations in CI. Gate with `PHOTOPRISM_FFMPEG_ENCODER` (one of: `vaapi`, `intel`, `nvidia`).
|
||||
- Negative-path tests should remain fast and always run:
|
||||
- Missing ffmpeg binary → immediate exec error.
|
||||
- Unwritable destination → command fails without creating files.
|
||||
- Prefer command-string assertions when hardware is unavailable; enable HW runs locally only when a device is configured.
|
||||
|
||||
### Fast, Focused Test Recipes
|
||||
|
||||
- Filesystem + archives (fast): `go test ./pkg/fs -run 'Copy|Move|Unzip' -count=1`
|
||||
- Media helpers (fast): `go test ./pkg/media/... -count=1`
|
||||
- Thumbnails (libvips, moderate): `go test ./internal/thumb/... -count=1`
|
||||
- FFmpeg command builders (moderate): `go test ./internal/ffmpeg -run 'Remux|Transcode|Extract' -count=1`
|
||||
|
||||
### CLI Testing Gotchas (Go)
|
||||
|
||||
- Exit codes and `os.Exit`:
|
||||
- `urfave/cli` calls `os.Exit(code)` when a command returns `cli.Exit(...)`, which will terminate `go test` abruptly (often after logs like `http 401:`).
|
||||
- Use the test helper `RunWithTestContext` (in `internal/commands/commands_test.go`) which temporarily overrides `cli.OsExiter` so the process doesn’t exit; you still receive the error to assert `ExitCoder`.
|
||||
- If you only need to assert the exit code and don’t need printed output, you can invoke `cmd.Action(ctx)` directly and check `err.(cli.ExitCoder).ExitCode()`.
|
||||
- Non‑interactive mode: set `PHOTOPRISM_CLI=noninteractive` and/or pass `--yes` to avoid prompts that block tests and CI.
|
||||
- SQLite DSN in tests:
|
||||
- `config.NewTestConfig("<pkg>")` defaults to SQLite with a per‑suite DSN like `.<pkg>.db`. Don’t assert an empty DSN for SQLite.
|
||||
- Clean up any per‑suite SQLite files in tests with `t.Cleanup(func(){ _ = os.Remove(dsn) })` if you capture the DSN.
|
||||
|
||||
## Code Style & Lint
|
||||
|
||||
- Go: run `make fmt-go swag-fmt` to reformat the backend code + Swagger annotations (see `Makefile` for additional targets)
|
||||
- Doc comments for packages and exported identifiers must be complete sentences that begin with the name of the thing being described and end with a period.
|
||||
- All newly added functions, including unexported helpers, must have a concise doc comment that explains their behavior.
|
||||
- For short examples inside comments, indent code rather than using backticks; godoc treats indented blocks as preformatted.
|
||||
- Branding: Always spell the product name as `PhotoPrism`; this proper noun is an exception to generic naming rules.
|
||||
- Every Go package must contain a `<package>.go` file in its root (for example, `internal/auth/jwt/jwt.go`) with the standard license header and a short package description comment explaining its purpose.
|
||||
- JS/Vue: use the lint/format scripts in `frontend/package.json` (ESLint + Prettier)
|
||||
- All added code and tests **must** be formatted according to our standards.
|
||||
|
||||
> Remember to update the `**Last Updated:**` line at the top whenever you edit these guidelines or other files containing a timestamp.
|
||||
|
||||
## Safety & Data
|
||||
|
||||
- Never commit secrets, local configurations, or cache files. Use environment variables or a local `.env`.
|
||||
- Ensure `.env` and `.local` are ignored in `.gitignore` and `.dockerignore`.
|
||||
- Prefer using existing caches, workers, and batching strategies referenced in code and `Makefile`. Consider memory/CPU impact; suggest benchmarks or profiling only when justified.
|
||||
- Do not run destructive commands against production data. Prefer ephemeral volumes and test fixtures when running acceptance tests.
|
||||
|
||||
> If anything in this file conflicts with the `Makefile` or the Developer Guide, the `Makefile` and the documentation win. When unsure, **ask** for clarification before proceeding.
|
||||
|
||||
### Filesystem Permissions & io/fs Aliasing (Go)
|
||||
|
||||
- Always use our shared permission variables from `pkg/fs` when creating files/directories:
|
||||
- Directories: `fs.ModeDir` (0o755 with umask)
|
||||
- Regular files: `fs.ModeFile` (0o644 with umask)
|
||||
- Config files: `fs.ModeConfigFile` (default 0o664)
|
||||
- Secrets/tokens: `fs.ModeSecretFile` (default 0o600)
|
||||
- Backups: `fs.ModeBackupFile` (default 0o600)
|
||||
- Do not pass stdlib `io/fs` flags (e.g., `fs.ModeDir`) to functions expecting permission bits.
|
||||
- When importing the stdlib package, alias it to avoid collisions: `iofs "io/fs"` or `gofs "io/fs"`.
|
||||
- Our package is `github.com/photoprism/photoprism/pkg/fs` and provides the only approved permission constants for `os.MkdirAll`, `os.WriteFile`, `os.OpenFile`, and `os.Chmod`.
|
||||
- Prefer `filepath.Join` for filesystem paths; reserve `path.Join` for URL paths.
|
||||
|
||||
### File I/O — Overwrite Policy (force semantics)
|
||||
|
||||
- Default is safety-first: callers must not overwrite non-empty destination files unless they opt-in with a `force` flag.
|
||||
- Replacing empty destination files is allowed without `force=true` (useful for placeholder files).
|
||||
- Open destinations with `O_WRONLY|O_CREATE|O_TRUNC` to avoid trailing bytes when overwriting; use `O_EXCL` when the caller must detect collisions.
|
||||
- Where this lives:
|
||||
- App-level helpers: `internal/photoprism/mediafile.go` (`MediaFile.Copy/Move`).
|
||||
- Reusable utils: `pkg/fs/copy.go`, `pkg/fs/move.go`.
|
||||
- When to set `force=true`:
|
||||
- Explicit “replace” actions or admin tools where the user confirmed overwrite.
|
||||
- Not for import/index flows; Originals must not be clobbered.
|
||||
|
||||
### Archive Extraction — Security Checklist
|
||||
|
||||
- Always validate ZIP entry names with a safe join; reject:
|
||||
- absolute paths (e.g., `/etc/passwd`).
|
||||
- Windows drive/volume paths (e.g., `C:\\…` or `C:/…`).
|
||||
- any entry that escapes the target directory after cleaning (path traversal via `..`).
|
||||
- Enforce per-file and total size budgets to prevent resource exhaustion.
|
||||
- Skip OS metadata directories (e.g., `__MACOSX`) and reject suspicious names.
|
||||
- Where this lives: `pkg/fs/zip.go` (`Unzip`, `UnzipFile`, `safeJoin`).
|
||||
- Tests to keep:
|
||||
- Absolute/volume paths rejected (Windows-specific backslash path covered on Windows).
|
||||
- `..` traversal skipped; `__MACOSX` skipped.
|
||||
- Per-file and total size limits enforced; directory entries created; nested paths extracted safely.
|
||||
|
||||
- Examples assume a Linux/Unix shell. For Windows specifics, see the Developer Guide FAQ:
|
||||
https://docs.photoprism.app/developer-guide/faq/#can-your-development-environment-be-used-under-windows
|
||||
|
||||
### HTTP Download — Security Checklist
|
||||
|
||||
- Use the shared safe HTTP helper instead of ad‑hoc `net/http` code:
|
||||
- Package: `pkg/http/safe` → `safe.Download(destPath, url, *safe.Options)`.
|
||||
- Default policy in this repo: allow only `http/https`, enforce timeouts and max size, write to a `0600` temp file then rename.
|
||||
- SSRF protection (mandatory unless explicitly needed for tests):
|
||||
- Set `AllowPrivate=false` to block private/loopback/multicast/link‑local ranges.
|
||||
- All redirect targets are validated; the final connected peer IP is also checked.
|
||||
- Prefer an image‑focused `Accept` header for image downloads: `"image/jpeg, image/png, */*;q=0.1"`.
|
||||
- Avatars and small images: use the thin wrapper in `internal/thumb/avatar.SafeDownload` which applies stricter defaults (15s timeout, 10 MiB, `AllowPrivate=false`).
|
||||
- Tests using `httptest.Server` on 127.0.0.1 must pass `AllowPrivate=true` explicitly to succeed.
|
||||
- Keep per‑resource size budgets small; rely on `io.LimitReader` + `Content-Length` prechecks.
|
||||
|
||||
## Agent Quick Tips (Do This)
|
||||
|
||||
### Testing & Fixtures
|
||||
|
||||
- Go tests live next to their sources (`path/to/pkg/<file>_test.go`); group related cases as `t.Run(...)` sub-tests to keep table-driven coverage readable, and name each subtest with a PascalCase string.
|
||||
- Keep Go scratch work inside `internal/...`; Go refuses to import `internal/` packages from directories like `/tmp`, so create temporary helpers under a throwaway folder such as `internal/tmp/` instead of using external paths.
|
||||
- Prefer focused `go test` runs for speed (`go test ./internal/<pkg> -run <Name> -count=1`, `go test ./internal/commands -run <Name> -count=1`) and avoid `./...` unless you need the entire suite.
|
||||
- Heavy packages such as `internal/entity` and `internal/photoprism` run migrations and fixtures; expect 30–120s on first run and narrow with `-run` to keep iterations low.
|
||||
- For CLI-driven tests, wrap commands with `RunWithTestContext(cmd, args)` so `urfave/cli` cannot exit the process, and assert CLI output with `assert.Contains`/regex because `show` reports quote strings.
|
||||
- In `internal/photoprism` tests, rely on `photoprism.Config()` for runtime-accurate behavior; only build a new config if you replace it via `photoprism.SetConfig`.
|
||||
- Generate identifiers with `rnd.GenerateUID(entity.ClientUID)` for OAuth client IDs and `rnd.UUIDv7()` for node UUIDs; treat `node.uuid` as required in responses.
|
||||
- When adding persistent fixtures (photos, files, labels, etc.), always obtain new IDs via `rnd.GenerateUID(...)` with the matching prefix (`entity.PhotoUID`, `entity.FileUID`, `entity.LabelUID`, …) instead of inventing manual strings so the search helpers recognize them.
|
||||
- For database updates, prefer the `entity.Values` type alias over raw `map[string]interface{}` so helpers stay type-safe and consistent with existing code.
|
||||
- Reach for `config.NewMinimalTestConfig(t.TempDir())` when a test only needs filesystem/config scaffolding, and use `config.NewMinimalTestConfigWithDb("<name>", t.TempDir())` when you need a fresh SQLite schema without the cached fixture snapshot.
|
||||
- Config test helpers now auto-discover the repo `assets/` directory; you should not set `PHOTOPRISM_ASSETS_PATH` manually in package `init()` functions unless you have a non-standard layout.
|
||||
- Hub API traffic is disabled in tests by default via `hub.ApplyTestConfig()`; opt back in with `PHOTOPRISM_TEST_HUB=test`.
|
||||
- Avoid `config.TestConfig()` in new tests unless you truly need the fully seeded fixture set: it shares a singleton instance that runs `InitializeTestData()` and wipes `storage/testdata`. Tests that write to Originals/Import (e.g. WebDAV helpers) should instead call `config.NewMinimalTestConfig(t.TempDir())` (or the DB variant) and follow up with `conf.CreateDirectories()` so they operate on an isolated sandbox.
|
||||
- Shared fixtures live under `storage/testdata`; `NewTestConfig("<pkg>")` already calls `InitializeTestData()`, but call `c.InitializeTestData()` (and optionally `c.AssertTestData(t)`) when you construct custom configs so originals/import/cache/temp exist. `InitializeTestData()` clears old data, downloads fixtures if needed, then calls `CreateDirectories()`.
|
||||
- `PhotoFixtures.Get()` and similar helpers return value copies; when a test needs the database-backed row (with associations preloaded), re-query by UID/ID using helpers like `entity.FindPhoto(fixture)` so updates observe persisted IDs and in-memory caches stay coherent.
|
||||
- For slimmer tests that only need config objects, prefer the new helpers in `internal/config/test.go`: `NewMinimalTestConfig(t.TempDir())` when no database is needed, or `NewMinimalTestConfigWithDb("<pkg>", t.TempDir())` to spin up an isolated SQLite schema without seeding all fixtures.
|
||||
- When you need illustrative credentials (join tokens, client IDs/secrets, etc.), reuse the shared `Example*` constants (see `internal/service/cluster/examples.go`) so tests, docs, and examples stay consistent.
|
||||
|
||||
### Roles & ACL
|
||||
|
||||
- Map roles via the shared tables: users through `acl.ParseRole(s)` / `acl.UserRoles[...]`, clients through `acl.ClientRoles[...]`.
|
||||
- Treat `RoleAliasNone` ("none") and an empty string as `RoleNone`; no caller-specific overrides.
|
||||
- Default unknown client roles to `RoleClient`; `acl.ParseRole` already handles `0/false/nil` as none for users.
|
||||
- Build CLI role help from `Roles.CliUsageString()` (e.g., `acl.ClientRoles.CliUsageString()`); never hand-maintain role lists.
|
||||
- When checking JWT/client scopes, use the shared helpers (`acl.ScopePermits` / `acl.ScopeAttrPermits`) instead of hand-written parsing.
|
||||
|
||||
### Import/Index
|
||||
|
||||
- ImportWorker may skip files if an identical file already exists (duplicate detection). Use unique copies or assert DB rows after ensuring a non‑duplicate destination.
|
||||
- Mixed roots: when testing related files, keep `ExamplesPath()/ImportPath()/OriginalsPath()` consistent so `RelatedFiles` and `AllowExt` behave as expected.
|
||||
- `IndexOptions*` helpers now require a `*config.Config`; pass the active config (or `config.NewMinimalTestConfig(t.TempDir())` in unit tests) so face/label/NSFW scheduling matches the current run.
|
||||
|
||||
### CLI Usage & Assertions
|
||||
|
||||
- Prefer the shared helpers like `DryRunFlag(...)` and `YesFlag()` when adding new CLI flags so behaviour stays consistent across commands.
|
||||
- Wrap CLI tests in `RunWithTestContext(cmd, args)` so `urfave/cli` cannot exit the process; assert quoted `show` output with `assert.Contains`/regex for the trailing ", or <last>" rule.
|
||||
- Prefer `--json` responses for automation. `photoprism show commands --json [--nested]` exposes the tree view (add `--all` for hidden entries).
|
||||
- Use `internal/commands/catalog` to inspect commands/flags without running the binary; when validating large JSON docs, marshal DTOs via `catalog.BuildFlat/BuildNode` instead of parsing CLI stdout.
|
||||
- Expect `show` commands to return arrays of snake_case rows, except `photoprism show config`, which yields `{ sections: [...] }`, and the `config-options`/`config-yaml` variants, which flatten to a top-level array.
|
||||
|
||||
### API & Config Changes
|
||||
|
||||
- Respect precedence: `options.yml` overrides CLI/env values, which override defaults. When adding a new option, update `internal/config/options.go` (yaml/flag tags), register it in `internal/config/flags.go`, expose a getter, surface it in `*config.Report()`, and write generated values back to `options.yml` by setting `c.options.OptionsYaml` before persisting. Use `CliTestContext` in `internal/config/test.go` to exercise new flags.
|
||||
- When touching configuration in Go code, use the public accessors on `*config.Config` (e.g. `Config.JWKSUrl()`, `Config.SetJWKSUrl()`, `Config.ClusterUUID()`) instead of mutating `Config.Options()` directly; reserve raw option tweaks for test fixtures only.
|
||||
- When introducing new metadata sources (e.g., `SrcOllama`, `SrcOpenAI`), define them in both `internal/entity/src.go` and the frontend lookup tables (`frontend/src/common/util.js`) so UI badges and server priorities stay aligned.
|
||||
- Vision worker scheduling is controlled via `VisionSchedule` / `VisionFilter` and the `Run` property set in `vision.yml`. Utilities like `vision.FilterModels` and `entity.Photo.ShouldGenerateLabels/Caption` help decide when work is required before loading media files.
|
||||
- Logging: use the shared logger (`event.Log`) via the package-level `log` variable (see `internal/auth/jwt/logger.go`) instead of direct `fmt.Print*` or ad-hoc loggers.
|
||||
- Audit outcomes: import `github.com/photoprism/photoprism/pkg/log/status` and end every `event.Audit*` slice with a single outcome token such as `status.Succeeded`, `status.Failed`, `status.Denied`, or other constants defined there (no additional segments afterwards).
|
||||
- Error outcomes: when a sanitized error string should be the outcome, call `status.Error(err)` instead of adding a placeholder and passing `clean.Error(err)` manually.
|
||||
- Cluster registry tests (`internal/service/cluster/registry`) currently rely on a full test config because they persist `entity.Client` rows. They run migrations and seed the SQLite DB, so they are intentionally slow. If you refactor them, consider sharing a single `config.TestConfig()` across subtests or building a lightweight schema harness; do not swap to the minimal config helper unless the tests stop touching the database.
|
||||
- Favor explicit CLI flags: check `c.cliCtx.IsSet("<flag>")` before overriding user-supplied values, and follow the `ClusterUUID` pattern (`options.yml` → CLI/env → generated UUIDv4 persisted).
|
||||
- Database helpers: reuse `conf.Db()` / `conf.Database*()`, avoid GORM `WithContext`, quote MySQL identifiers, and reject unsupported drivers early.
|
||||
- Handler conventions: reuse limiter stacks (`limiter.Auth`, `limiter.Login`) and `limiter.AbortJSON` for 429s, lean on `api.ClientIP`, `header.BearerToken`, and `Abort*` helpers, compare secrets with constant time checks, set `Cache-Control: no-store` on sensitive responses, and register routes in `internal/server/routes.go`. For new list endpoints default `count=100` (max 1000) and `offset≥0`, document parameters explicitly, and set portal mode via `PHOTOPRISM_NODE_ROLE=portal` plus `PHOTOPRISM_JOIN_TOKEN` when needed.
|
||||
- Swagger & docs: annotate only routed handlers in `internal/api/*.go`, use full `/api/v1/...` paths, skip helpers, and regenerate docs with `make fmt-go swag-fmt swag` or `make swag-json` (which also strips duplicate `time.Duration` enums). When iterating, target packages with `go test ./internal/api -run Cluster -count=1` or similarly scoped runs.
|
||||
- Testing helpers: isolate config paths with `t.TempDir()`, reuse `NewConfig`, `CliTestContext`, and `NewApiTest()` harnesses, authenticate via `AuthenticateAdmin`, `AuthenticateUser`, or `OAuthToken`, toggle auth with `conf.SetAuthMode(config.AuthModePasswd)`, and prefer OAuth client tokens over non-admin fixtures for negative permission checks.
|
||||
- Registry data and secrets: store portal/node registry files under `conf.PortalConfigPath()/nodes/` with mode `0600`, keep secrets out of logs, and only return them on creation/rotation flows.
|
||||
|
||||
### Formatting (Go)
|
||||
|
||||
- Go is formatted by `gofmt` and uses tabs. Do not hand-format indentation.
|
||||
- Always run after edits: `make fmt-go` (gofmt + goimports).
|
||||
|
||||
### API Shape Checklist
|
||||
|
||||
- When renaming or adding fields:
|
||||
- Update DTOs in `internal/service/cluster/response.go` and any mappers.
|
||||
- Update handlers and regenerate Swagger: `make fmt-go swag-fmt swag`.
|
||||
- Update tests (search/replace old field names) and examples in `specs/`.
|
||||
- Quick grep: `rg -n 'oldField|newField' -S` across code, tests, and specs.
|
||||
|
||||
### API/CLI Tests: Known Pitfalls
|
||||
|
||||
- Gin routes: Register `CreateSession(router)` once per test router; reusing it twice panics on duplicate route.
|
||||
- CLI commands: Some commands defer `conf.Shutdown()` or emit signals that close the DB. The harness re‑opens DB before each run, but avoid invoking `start` or emitting signals in unit tests.
|
||||
- Signals: `internal/commands/start.go` waits on `process.Signal`; calling `process.Shutdown()/Restart()` can close DB. Prefer not to trigger signals in tests.
|
||||
|
||||
### Download CLI Workbench (yt-dlp, remux, importer)
|
||||
|
||||
- Code anchors
|
||||
- CLI flags and examples: `internal/commands/download.go`
|
||||
- Core implementation (testable): `internal/commands/download_impl.go`
|
||||
- yt-dlp helpers and arg wiring: `internal/photoprism/dl/*` (`options.go`, `info.go`, `file.go`, `meta.go`)
|
||||
- Importer entry point: `internal/photoprism/get/import.go`; options: `internal/photoprism/import_options.go`
|
||||
|
||||
- Quick test runs (fast feedback)
|
||||
- yt-dlp package: `go test ./internal/photoprism/dl -run 'Options|Created|PostprocessorArgs' -count=1`
|
||||
- CLI command: `go test ./internal/commands -run 'DownloadImpl|HelpFlags' -count=1`
|
||||
|
||||
- FFmpeg-less tests
|
||||
- In tests: set `c.Options().FFmpegBin = "/bin/false"` and `c.Settings().Index.Convert = false` to avoid ffmpeg dependencies when not validating remux.
|
||||
|
||||
- Stubbing yt-dlp (no network)
|
||||
- Use a tiny shell script that:
|
||||
- prints minimal JSON for `--dump-single-json`
|
||||
- creates a file and prints its path when `--print` is requested
|
||||
- Harness env vars (supported by our tests):
|
||||
- `YTDLP_ARGS_LOG` — append final args for assertion
|
||||
- `YTDLP_OUTPUT_FILE` — absolute file path to create for `--print`
|
||||
- `YTDLP_DUMMY_CONTENT` — file contents to avoid importer duplicate detection between tests
|
||||
|
||||
- Remux policy and metadata
|
||||
- Pipe method: PhotoPrism remux (ffmpeg) always embeds title/description/created.
|
||||
- File method: yt‑dlp writes files; we pass `--postprocessor-args 'ffmpeg:-metadata creation_time=<RFC3339>'` so imports get `Created` even without local remux (fallback from `upload_date`/`release_date`).
|
||||
- Default remux policy: `auto`; use `always` for the most complete metadata (chapters, extended tags).
|
||||
- CLI defaults: `photoprism dl` now defaults to `--method pipe` and `--impersonate firefox`; pass `-i none` to disable impersonation. Pipe mode streams raw media and PhotoPrism handles the final FFmpeg remux so metadata (title, description, author, creation time) still comes from `RemuxOptionsFromInfo`.
|
||||
|
||||
- Testing workflow: lean on the focused commands above; if importer dedupe kicks in, vary bytes with `YTDLP_DUMMY_CONTENT` or adjust `dest`, and remember `internal/photoprism` is heavy so validate downstream packages first.
|
||||
|
||||
### Sessions & Redaction (building sessions in tests)
|
||||
|
||||
- Admin session (full view): `AuthenticateAdmin(app, router)`.
|
||||
- User session: Create a non‑admin test user (role=guest), set a password, then `AuthenticateUser`.
|
||||
- Client session (redacted internal fields; `SiteUrl` visible):
|
||||
```go
|
||||
s, _ := entity.AddClientSession("test-client", conf.SessionMaxAge(), "cluster", authn.GrantClientCredentials, nil)
|
||||
token := s.AuthToken()
|
||||
r := AuthenticatedRequest(app, http.MethodGet, "/api/v1/cluster/nodes", token)
|
||||
```
|
||||
Admins see `AdvertiseUrl` and `Database`; client/user sessions don’t. `SiteUrl` is safe to show to all roles.
|
||||
|
||||
### Preflight Checklist
|
||||
|
||||
- `go build ./...`
|
||||
- `make fmt-go swag-fmt swag`
|
||||
- `go test ./internal/service/cluster/registry -count=1`
|
||||
- `go test ./internal/api -run 'Cluster' -count=1`
|
||||
- `go test ./internal/commands -run 'ClusterRegister|ClusterNodesRotate' -count=1`
|
||||
- Tooling constraints: `make swag` may fetch modules, so confirm network access before running it.
|
||||
|
||||
### Cluster Operations
|
||||
|
||||
- Keep bootstrap code decoupled: avoid importing `internal/service/cluster/node/*` from `internal/config` or the cluster root, let nodes talk to the Portal over HTTP(S), and rely on constants from `internal/service/cluster/const.go`.
|
||||
- Config init order: load `options.yml` (`c.initSettings()`), run `EarlyExt().InitEarly(c)`, connect/register the DB, then invoke `Ext().Init(c)`.
|
||||
- Theme endpoint: `GET /api/v1/cluster/theme` streams a zip from `conf.ThemePath()`; only reinstall when `app.js` is missing and always use the header helpers in `pkg/http/header`.
|
||||
- Registration flow: send `rotate=true` only for MySQL/MariaDB nodes without credentials, treat 401/403/404 as terminal, include `ClientID` + `ClientSecret` when renaming an existing node, and persist only newly generated secrets or DB settings.
|
||||
- Registry & DTOs: use the client-backed registry (`NewClientRegistryWithConfig`)—the file-backed version is legacy—and treat migration as complete only after swapping callsites, building, and running focused API/CLI tests. Nodes are keyed by UUID v7 (`/api/v1/cluster/nodes/{uuid}`), the registry interface stays UUID-first (`Get`, `FindByNodeUUID`, `FindByClientID`, `RotateSecret`, `DeleteAllByUUID`), CLI lookups resolve `uuid → ClientID → name`, and DTOs normalize `Database.{Name,User,Driver,RotatedAt}` while exposing `ClientSecret` only during creation/rotation. `nodes rm --all-ids` cleans duplicate client rows, admin responses may include `AdvertiseUrl`/`Database`, client/user sessions stay redacted, registry files live under `conf.PortalConfigPath()/nodes/` (mode 0600), and `ClientData` no longer stores `NodeUUID`.
|
||||
- Provisioner & DSN: database/user names use UUID-based HMACs (`photoprism_d<hmac11>`, `photoprism_u<hmac11>`); `BuildDSN` accepts a `driver` but falls back to MySQL format with a warning when unsupported.
|
||||
- If we add Postgres provisioning support, extend `BuildDSN` and `provisioner.DatabaseDriver` handling, add validations, and return `driver=postgres` consistently in API/CLI.
|
||||
- Testing: exercise Portal endpoints with `httptest`, guard extraction paths with `pkg/fs.Unzip` size caps, and expect admin-only fields to disappear when authenticated as a client/user session.
|
||||
266
CODEMAP.md
Normal file
266
CODEMAP.md
Normal file
@@ -0,0 +1,266 @@
|
||||
PhotoPrism — Backend CODEMAP
|
||||
|
||||
**Last Updated:** October 21, 2025
|
||||
|
||||
Purpose
|
||||
- Give agents and contributors a fast, reliable map of where things live and how they fit together, so you can add features, fix bugs, and write tests without spelunking.
|
||||
- Sources of truth: prefer Makefile targets and the Developer Guide linked in AGENTS.md.
|
||||
|
||||
Quick Start
|
||||
- Inside dev container (recommended):
|
||||
- Install deps: `make dep`
|
||||
- Build backend: `make build-go`
|
||||
- Run server: `./photoprism start`
|
||||
- Open: http://localhost:2342/ or https://app.localssl.dev/ (Traefik required)
|
||||
- On host (manages Docker):
|
||||
- Build image: `make docker-build`
|
||||
- Start services: `docker compose up -d`
|
||||
- Logs: `docker compose logs -f --tail=100 photoprism`
|
||||
|
||||
Executables & Entry Points
|
||||
- CLI app (binary name across docs/images is `photoprism`):
|
||||
- Main: `cmd/photoprism/photoprism.go`
|
||||
- Commands registry: `internal/commands/commands.go` (array `commands.PhotoPrism`)
|
||||
- Catalog helpers: `internal/commands/catalog` (DTOs and builders to enumerate commands/flags; Markdown renderer)
|
||||
- Web server:
|
||||
- Startup: `internal/commands/start.go` → `server.Start` (starts HTTP(S), workers, session cleanup)
|
||||
- HTTP server: `internal/server/start.go` (compression, security, healthz, readiness, TLS/AutoTLS/unix socket)
|
||||
- Routes: `internal/server/routes.go` (registers all v1 API groups + UI, WebDAV, sharing, .well-known)
|
||||
- API group: `APIv1 = router.Group(conf.BaseUri("/api/v1"), Api(conf))`
|
||||
|
||||
High-Level Package Map (Go)
|
||||
- `internal/api` — Gin handlers and Swagger annotations; only glue, no business logic
|
||||
- `internal/commands` — CLI command definitions and orchestration (`start`, `index`, `import`, `migrate`, etc.); `commands.go` wires them into the app and subpackages like `catalog` emit CLI documentation.
|
||||
- `internal/server` — HTTP server, middleware, routing, static/ui/webdav
|
||||
- `internal/config` — configuration, flags/env/options, client config, DB init/migrate
|
||||
- `internal/entity` — GORM v1 models, queries, search helpers, migrations
|
||||
- `internal/photoprism` — core domain logic (indexing, import, faces, thumbnails, cleanup)
|
||||
- `internal/workers` — background schedulers (index, vision, sync, meta, backup)
|
||||
- `internal/auth` — ACL, sessions, OIDC
|
||||
- `internal/service` — cluster/portal, maps, hub, webdav
|
||||
- `internal/event` — logging, pub/sub, audit; canonical outcome tokens live in `pkg/log/status` (use helpers like `status.Error(err)` when the sanitized message should be the outcome)
|
||||
- `internal/ffmpeg`, `internal/thumb`, `internal/meta`, `internal/form`, `internal/mutex` — media, thumbs, metadata, forms, coordination
|
||||
- `pkg/*` — reusable utilities (must never import from `internal/*`), e.g. `pkg/clean`, `pkg/enum`, `pkg/fs`, `pkg/txt`, `pkg/http/header`
|
||||
|
||||
Templates & Static Assets
|
||||
- Entry HTML lives in `assets/templates/index.gohtml`, which includes the splash markup from `app.gohtml` and the SPA loader from `app.js.gohtml`.
|
||||
- The browser check logic resides in `assets/static/js/browser-check.js` and is included via `app.js.gohtml`; it performs capability checks (Promise, fetch, AbortController, `script.noModule`, etc.) before the main bundle runs. Update this file (and the partial) in lockstep with the templates in private repos (`pro/assets/templates/index.gohtml`, `plus/assets/templates/index.gohtml`) because they import the same partial, and keep the `<script>` order so the check is executed first.
|
||||
- `splash.gohtml` renders the loading screen text while the bundle loads; styles are in `frontend/src/css/splash.css`.
|
||||
- When adjusting browser support messaging, update both the loader partial and splash styles so the warning message stays consistent across editions.
|
||||
- Service worker routes live in `internal/server/routes_webapp.go`. The helper that serves Workbox runtime files (`/workbox-:hash`) sits there as well so service workers run under both the site root and a base URI; remember Gin’s `:hash` parameter excludes the `.js` suffix, so the handler/test matches the full filename manually.
|
||||
|
||||
HTTP API
|
||||
- Handlers live in `internal/api/*.go` and are registered in `internal/server/routes.go`.
|
||||
- Annotate new endpoints in handler files; generate docs with: `make fmt-go swag-fmt && make swag`.
|
||||
- Do not edit `internal/api/swagger.json` by hand.
|
||||
- Swagger notes:
|
||||
- Use full `/api/v1/...` in every `@Router` annotation (match the group prefix).
|
||||
- Annotate only public handlers; skip internal helpers to avoid stray generic paths.
|
||||
- `make swag-json` runs a stabilization step (`swaggerfix`) removing duplicated enums for `time.Duration`; API uses integer nanoseconds for durations.
|
||||
- Common groups in `routes.go`: sessions, OAuth/OIDC, config, users, services, thumbnails, video, downloads/zip, index/import, photos/files/labels/subjects/faces, batch ops, cluster, technical (metrics, status, echo).
|
||||
|
||||
Configuration & Flags
|
||||
- Options struct: `internal/config/options.go` with `yaml:"…"` (for `defaults.yml`/`options.yml`), `json:"…"` (clients/API), and `flag:"…"` (CLI flags/env) tags.
|
||||
- For secrets/internals: `json:"-"` disables JSON processing to prevent values from being exposed through the API (see `internal/api/config_options.go`).
|
||||
- If needed: `yaml:"-"` disables YAML processing; `flag:"-"` prevents `ApplyCliContext()` from assigning CLI values (flags/env variables) to a field, without affecting the flags in `internal/config/flags.go`.
|
||||
- Annotations may include edition tags like `tags:"plus,pro"` to control visibility (see `internal/config/options_report.go` logic).
|
||||
- Global flags/env: `internal/config/flags.go` (`EnvVars(...)`)
|
||||
- Available flags/env: `internal/config/cli_flags_report.go` + `internal/config/report_sections.go` → surfaced by `photoprism show config-options --md/--json`
|
||||
- YAML options mapping: `internal/config/options_report.go` + `internal/config/report_sections.go` → surfaced by `photoprism show config-yaml --md/--json`
|
||||
- Report current values: `internal/config/report.go` → surfaced by `photoprism show config` (alias `photoprism config --md`).
|
||||
- CLI commands catalog: `internal/commands/show_commands.go` → surfaced by `photoprism show commands` (Markdown by default; `--json` alternative; `--nested` optional tree; `--all` includes hidden commands/flags; nested `help` subcommands omitted).
|
||||
- Precedence: `defaults.yml` < CLI/env < `options.yml` (global options rule). See Agent Tips in `AGENTS.md`.
|
||||
- Getters are grouped by topic, e.g. DB in `internal/config/config_db.go`, server in `config_server.go`, TLS in `config_tls.go`, etc.
|
||||
- Client Config (read-only)
|
||||
- Endpoint: GET `/api/v1/config` (see `internal/api/api_client_config.go`).
|
||||
- Assembly: Built from `internal/config/client_config.go` (not a direct serialization of Options) plus extension values registered via `config.Register` in `internal/config/extensions.go`.
|
||||
- Updates: Back-end calls `UpdateClientConfig()` to publish "config.updated" over websockets after changes (see `internal/api/config_options.go` and `internal/api/config_settings.go`).
|
||||
- ACL/mode aware: Values are filtered by user/session and may differ for public vs. authenticated users.
|
||||
- Don’t expose secrets: Treat it as client-visible; avoid sensitive data. To add fields, extend client values via `config.Register` rather than exposing Options directly.
|
||||
- Refresh cadence: The web UI (non‑mobile) also polls for updates every 10 minutes via `$config.update()` in `frontend/src/app.js`, complementing the websocket push.
|
||||
|
||||
Database & Migrations
|
||||
- Driver: GORM v1 (`github.com/jinzhu/gorm`). No `WithContext`. Use `db.Raw(stmt).Scan(&nop)` for raw SQL.
|
||||
- Entities and helpers: `internal/entity/*.go` and subpackages (`query`, `search`, `sortby`).
|
||||
- Migrations engine: `internal/entity/migrate/*` — run via `config.MigrateDb()`; CLI: `photoprism migrate` / `photoprism migrations`.
|
||||
- DB init/migrate flow: `internal/config/config_db.go` chooses driver/DSN, sets `gorm:table_options`, then `entity.InitDb(migrate.Opt(...))`.
|
||||
|
||||
AuthN/Z & Sessions
|
||||
- Session model and cache: `internal/entity/auth_session*` and `internal/auth/session/*` (cleanup worker).
|
||||
- ACL: `internal/auth/acl/*` — roles, grants, scopes; use constants; avoid logging secrets, compare tokens constant‑time; for scope checks use `acl.ScopePermits` / `ScopeAttrPermits` instead of rolling your own parsing.
|
||||
- OIDC: `internal/auth/oidc/*`.
|
||||
|
||||
Media Processing
|
||||
- Thumbnails: `internal/thumb/*` and helpers in `internal/photoprism/mediafile_thumbs.go`.
|
||||
- Metadata: `internal/meta/*`.
|
||||
- FFmpeg integration: `internal/ffmpeg/*`.
|
||||
- HEIF tooling: distribution binaries live under `scripts/dist/install-libheif.sh`; regenerate archives with `make build-libheif-*` (wraps `scripts/dist/build-libheif.sh` for each supported distro/arch) before publishing to `dl.photoprism.app/dist/libheif/`.
|
||||
|
||||
Background Workers
|
||||
- Scheduler and workers: `internal/workers/*.go` (index, vision, meta, sync, backup, share); started from `internal/commands/start.go`.
|
||||
- Auto indexer: `internal/workers/auto/*`.
|
||||
|
||||
Cluster / Portal
|
||||
- Node types: `internal/service/cluster/const.go` (`cluster.RoleInstance`, `cluster.RolePortal`, `cluster.RoleService`).
|
||||
- Node bootstrap & registration: `internal/service/cluster/node/*` (HTTP to Portal; do not import Portal internals).
|
||||
- Registry/provisioner: `internal/service/cluster/registry/*`, `internal/service/cluster/provisioner/*`.
|
||||
- Theme endpoint (server): GET `/api/v1/cluster/theme`; client/CLI installs theme only if missing or no `app.js`.
|
||||
- See specs cheat sheet: `specs/portal/README.md`.
|
||||
|
||||
Logging & Events
|
||||
- Logger and event hub: `internal/event/*`; `event.Log` is the shared logger.
|
||||
- HTTP headers/constants: `pkg/http/header/*` — always prefer these in handlers and tests.
|
||||
|
||||
Server Startup Flow (happy path)
|
||||
1) `photoprism start` (CLI) → `internal/commands/start.go`
|
||||
2) Config init, DB init/migrate, session cleanup worker
|
||||
3) `internal/server/start.go` builds Gin engine, middleware, API group, templates
|
||||
4) `internal/server/routes.go` registers UI, WebDAV, sharing, well‑known, and all `/api/v1/*` routes
|
||||
5) Workers and auto‑index start; health endpoints `/livez`, `/readyz` available
|
||||
|
||||
Common How‑Tos
|
||||
- Add a CLI command
|
||||
- Create `internal/commands/<name>.go` with a `*cli.Command`
|
||||
- Add it to `PhotoPrism` in `internal/commands/commands.go`
|
||||
- Tests: prefer `RunWithTestContext` from `internal/commands/commands_test.go` to avoid `os.Exit`
|
||||
|
||||
- Add a REST endpoint
|
||||
- Create handler in `internal/api/<area>.go` with Swagger annotations
|
||||
- Register it in `internal/server/routes.go`
|
||||
- Use helpers: `api.ClientIP(c)`, `header.BearerToken(c)`, `Abort*` functions
|
||||
- Validate pagination bounds (default `count=100`, max `1000`, `offset>=0`) for list endpoints
|
||||
- Run `make fmt-go swag-fmt && make swag`; keep docs accurate
|
||||
- Tests: `go test ./internal/api -run <Name>` and focused helpers (`NewApiTest()`, `PerformRequest*`)
|
||||
|
||||
- Add a config option
|
||||
- Add field with tags to `internal/config/options.go`
|
||||
- Register CLI flag/env in `internal/config/flags.go` via `EnvVars(...)`
|
||||
- Expose a getter (e.g., in `config_server.go` or topic file)
|
||||
- Append to `rows` in `*config.Report()` after the same option as in `options.go`
|
||||
- If value must persist, write back to `options.yml` and reload into memory
|
||||
- Tests: cover CLI/env/file precedence (see `internal/config/test.go` helpers)
|
||||
|
||||
- Touch the DB schema
|
||||
- Use GORM auto-migration, or add a custom migration in `internal/entity/migrate/<dialect>/...` and run `go generate` or `make generate` (runs `go generate` for all packages)
|
||||
- Bump/review version gates in `migrate.Version` usage via `config_db.go`
|
||||
- Tests: run against SQLite by default; for MySQL cases, gate appropriately
|
||||
|
||||
Testing
|
||||
- Full suite: `make test` (frontend + backend). Backend only: `make test-go`.
|
||||
- Focused packages: `go test ./internal/<pkg> -run <Name>`.
|
||||
- CLI tests: `PHOTOPRISM_CLI=noninteractive` or pass `--yes` to avoid prompts; use `RunWithTestContext` to prevent `os.Exit`.
|
||||
- SQLite DSN in tests is per‑suite (not empty). Clean up files if you capture the DSN.
|
||||
- Frontend unit tests via Vitest are separate; see `frontend/CODEMAP.md`.
|
||||
- Config helpers automatically disable Hub service calls for tests (`hub.ApplyTestConfig()`).
|
||||
- Test configs auto-discover the repo `assets/` folder, so avoid adding per-package `PHOTOPRISM_ASSETS_PATH` shims unless you have an unusual layout.
|
||||
|
||||
Security & Hot Spots (Where to Look)
|
||||
- Zip extraction (path traversal prevention): `pkg/fs/zip.go`
|
||||
- Uses `safeJoin` to reject absolute/volume paths and `..` traversal; enforces per-file and total size limits.
|
||||
- Tests: `pkg/fs/zip_extra_test.go` cover abs/volume/.. cases and limits.
|
||||
- Force-aware Copy/Move and truncation-safe writes:
|
||||
- App helpers: `internal/photoprism/mediafile.go` (`MediaFile.Copy/Move` with `force`).
|
||||
- Utils: `pkg/fs/copy.go`, `pkg/fs/move.go` (use `O_TRUNC` to avoid trailing bytes).
|
||||
- FFmpeg command builders and encoders:
|
||||
- Core: `internal/ffmpeg/transcode_cmd.go`, `internal/ffmpeg/remux.go`.
|
||||
- Encoders (string builders only): `internal/ffmpeg/{apple,intel,nvidia,vaapi,v4l}/avc.go`.
|
||||
- Tests guard HW runs with `PHOTOPRISM_FFMPEG_ENCODER`; otherwise assert command strings and negative paths.
|
||||
- libvips thumbnails:
|
||||
- Pipeline: `internal/thumb/vips.go` (VipsInit, VipsRotate, export params).
|
||||
- Sizes & names: `internal/thumb/sizes.go`, `internal/thumb/names.go`, `internal/thumb/filter.go`; face/marker crop helpers live in `internal/thumb/crop` (e.g., `ParseThumb`, `IsCroppedThumb`).
|
||||
|
||||
- Safe HTTP downloader:
|
||||
- Shared utility: `pkg/http/safe` (`Download`, `Options`).
|
||||
- Protections: scheme allow‑list (http/https), pre‑DNS + per‑redirect hostname/IP validation, final peer IP check, size and timeout enforcement, temp file `0600` + rename.
|
||||
- Avatars: wrapper `internal/thumb/avatar.SafeDownload` applies stricter defaults (15s, 10 MiB, `AllowPrivate=false`, image‑focused `Accept`).
|
||||
- Tests: `go test ./pkg/http/safe -count=1` (includes redirect SSRF cases); avatars: `go test ./internal/thumb/avatar -count=1`.
|
||||
|
||||
Performance & Limits
|
||||
- Prefer existing caches/workers/batching as per Makefile and code.
|
||||
- When adding list endpoints, default `count=100` (max `1000`); set `Cache-Control: no-store` for secrets.
|
||||
|
||||
Conventions & Rules of Thumb
|
||||
- Respect package boundaries: code in `pkg/*` must not import `internal/*`.
|
||||
- Prefer constants/helpers from `pkg/http/header` over string literals.
|
||||
- Never log secrets; compare tokens constant‑time.
|
||||
- Don’t import Portal internals from cluster instance/service bootstraps; use HTTP.
|
||||
- Prefer small, hermetic unit tests; isolate filesystem paths with `t.TempDir()` and env like `PHOTOPRISM_STORAGE_PATH`.
|
||||
- Cluster nodes: identify by UUID v7 (internally stored as `NodeUUID`; exposed as `UUID` in API/CLI). The OAuth client ID (`NodeClientID`, exposed as `ClientID`) is for OAuth only. Registry lookups and CLI commands accept UUID, ClientID, or DNS-label name (priority in that order).
|
||||
|
||||
Filesystem Permissions & io/fs Aliasing
|
||||
- Use `github.com/photoprism/photoprism/pkg/fs` permission variables when creating files/dirs:
|
||||
- `fs.ModeDir` (0o755 with umask), `fs.ModeFile` (0o644 with umask), `fs.ModeConfigFile` (0o664), `fs.ModeSecretFile` (0o600), `fs.ModeBackupFile` (0o600).
|
||||
- Do not use stdlib `io/fs` mode bits as permission arguments. When importing stdlib `io/fs`, alias it (`iofs`/`gofs`) to avoid `fs.*` collisions with our package.
|
||||
- Prefer `filepath.Join` for filesystem paths across platforms; use `path.Join` for URLs only.
|
||||
|
||||
Cluster Registry & Provisioner Cheatsheet
|
||||
- UUID‑first everywhere: API paths `{uuid}`, Registry `Get/Delete/RotateSecret` by UUID; explicit `FindByClientID` exists for OAuth.
|
||||
- Node/DTO fields: `uuid` required; `clientId` optional; database metadata includes `driver`.
|
||||
- Provisioner naming (no slugs):
|
||||
- database: `photoprism_d<hmac11>`
|
||||
- username: `photoprism_u<hmac11>`
|
||||
HMAC is base32 of ClusterUUID+NodeUUID; drivers currently `mysql|mariadb`.
|
||||
- DSN builder: `BuildDSN(driver, host, port, user, pass, name)`; warns and falls back to MySQL format for unsupported drivers.
|
||||
- Go tests live beside sources: for `path/to/pkg/<file>.go`, add tests in `path/to/pkg/<file>_test.go` (create if missing). For the same function, group related cases as `t.Run(...)` sub-tests (table-driven where helpful) and name each subtest string in PascalCase.
|
||||
- Public API and internal registry DTOs use normalized field names:
|
||||
- `Database` (not `db`) with `Name`, `User`, `Driver`, `RotatedAt`.
|
||||
- Node-level rotation timestamps use `RotatedAt`.
|
||||
- Registration returns `Secrets.ClientSecret`; the CLI persists it under config `NodeClientSecret`.
|
||||
- Admin responses may include `AdvertiseUrl` and `Database`; non-admin responses are redacted by default.
|
||||
- Cluster CLI highlights:
|
||||
- `photoprism cluster register` supports `--site-url` and `--advertise-url`. Both values are always forwarded to the Portal; `SiteUrl` no longer depends on being different from the advertised URL.
|
||||
- Automatic MariaDB credential rotation logic now lives in `config.ShouldAutoRotateDatabase()` and is shared by both the CLI and node bootstrap.
|
||||
|
||||
Frequently Touched Files (by topic)
|
||||
- CLI wiring: `cmd/photoprism/photoprism.go`, `internal/commands/commands.go`
|
||||
- Server: `internal/server/start.go`, `internal/server/routes.go`, middleware in `internal/server/*.go`
|
||||
- API handlers: `internal/api/*.go` (plus `docs.go` for package docs)
|
||||
- Config: `internal/config/*` (`flags.go`, `config_db.go`, `config_server.go`, `options.go`)
|
||||
- Entities & queries: `internal/entity/*.go`, `internal/entity/query/*`
|
||||
- Migrations: `internal/entity/migrate/*`
|
||||
- Workers: `internal/workers/*`
|
||||
- Cluster: `internal/service/cluster/*`
|
||||
- Theme support: `internal/service/cluster/theme/version.go` exposes `DetectVersion`, used by bootstrap, CLI, and API handlers to compare portal vs node theme revisions (prefers `fs.VersionTxtFile`, falls back to `app.js` mtime).
|
||||
- Registration sanitizes `AppName`, `AppVersion`, and `Theme` with `clean.TypeUnicode`; defaults for app metadata come from `config.About()` / `config.Version()`. `cluster.RegisterResponse` now includes a `Theme` hint when the portal has a newer bundle so nodes can decide whether to download immediately.
|
||||
- Headers: `pkg/http/header/*`
|
||||
|
||||
Downloads (CLI) & yt-dlp helpers
|
||||
- CLI command & core:
|
||||
- `internal/commands/download.go` (flags, defaults, examples)
|
||||
- `internal/commands/download_impl.go` (testable implementation used by CLI)
|
||||
- yt-dlp wrappers:
|
||||
- `internal/photoprism/dl/options.go` (arg wiring; `FFmpegPostArgs` hook for `--postprocessor-args`)
|
||||
- `internal/photoprism/dl/info.go` (metadata discovery)
|
||||
- `internal/photoprism/dl/file.go` (file method with `--output`/`--print`)
|
||||
- `internal/photoprism/dl/meta.go` (`CreatedFromInfo` fallback; `RemuxOptionsFromInfo`)
|
||||
- Importer:
|
||||
- `internal/photoprism/get/import.go` (work pool)
|
||||
- `internal/photoprism/import_options.go` (`ImportOptionsMove/Copy`)
|
||||
- Testing hints:
|
||||
- Fast loops: `go test ./internal/photoprism/dl -run 'Options|Created|PostprocessorArgs' -count=1`
|
||||
- CLI only: `go test ./internal/commands -run 'DownloadImpl|HelpFlags' -count=1`
|
||||
- Disable ffmpeg when not needed: set `FFmpegBin = "/bin/false"`, `Settings.Index.Convert=false` in tests.
|
||||
- Stub yt-dlp: shell script that prints JSON for `--dump-single-json`, creates a file and prints path for `--print`.
|
||||
- Avoid importer dedup: vary file bytes (e.g., `YTDLP_DUMMY_CONTENT`) or dest.
|
||||
|
||||
Useful Make Targets (selection)
|
||||
- `make help` — list targets
|
||||
- `make dep` — install Go/JS deps in container
|
||||
- `make build-go` — build backend
|
||||
- `make test-go` — backend tests (SQLite)
|
||||
- `make swag` — generate Swagger JSON in `internal/api/swagger.json`
|
||||
- `make fmt-go swag-fmt` — format Go code and Swagger annotations
|
||||
|
||||
See Also
|
||||
- AGENTS.md (repository rules and tips for agents)
|
||||
- Developer Guide (Setup/Tests/API) — links in AGENTS.md → Sources of Truth
|
||||
- Specs: `specs/dev/backend-testing.md`, `specs/dev/api-docs-swagger.md`, `specs/portal/README.md`
|
||||
|
||||
Go Internal Import Rule
|
||||
- Keep temporary Go helpers inside `internal/...`; the Go toolchain blocks importing `internal/` packages from directories such as `/tmp`, so use a disposable path like `internal/tmp/` when you need scratch space.
|
||||
|
||||
Fast Test Recipes
|
||||
- Filesystem + archives (fast): `go test ./pkg/fs -run 'Copy|Move|Unzip' -count=1`
|
||||
- Media helpers (fast): `go test ./pkg/media/... -count=1`
|
||||
- Thumbnails (libvips, moderate): `go test ./internal/thumb/... -count=1`
|
||||
- FFmpeg command builders (moderate): `go test ./internal/ffmpeg -run 'Remux|Transcode|Extract' -count=1`
|
||||
10
Dockerfile
10
Dockerfile
@@ -1,7 +1,11 @@
|
||||
# Ubuntu 24.10 (Oracular Oriole)
|
||||
FROM photoprism/develop:250317-oracular
|
||||
# Ubuntu 25.10 (Questing Quokka)
|
||||
FROM photoprism/develop:251018-questing
|
||||
|
||||
# Harden npm usage by default (applies to npm ci / install in dev container)
|
||||
ENV NPM_CONFIG_IGNORE_SCRIPTS=true
|
||||
|
||||
## Alternative Environments:
|
||||
# FROM photoprism/develop:plucky # Ubuntu 25.04 (Plucky Puffin)
|
||||
# FROM photoprism/develop:armv7 # ARMv7 (32bit)
|
||||
# FROM photoprism/develop:oracular # Ubuntu 24.10 (Oracular Oriole)
|
||||
# FROM photoprism/develop:noble # Ubuntu 24.04 LTS (Noble Numbat)
|
||||
@@ -19,3 +23,5 @@ WORKDIR "/go/src/github.com/photoprism/photoprism"
|
||||
# Copy source to image.
|
||||
COPY . .
|
||||
COPY --chown=root:root /scripts/dist/ /scripts/
|
||||
|
||||
RUN sudo /scripts/install-yt-dlp.sh
|
||||
|
||||
298
Makefile
298
Makefile
@@ -4,20 +4,23 @@
|
||||
# more about our team, products and services: https://www.photoprism.app/
|
||||
|
||||
export GO111MODULE=on
|
||||
export NPM_CONFIG_IGNORE_SCRIPTS ?= true
|
||||
|
||||
-include .semver
|
||||
-include .env
|
||||
export
|
||||
|
||||
# Binary file names.
|
||||
BINARY_NAME=photoprism
|
||||
GOIMPORTS=goimports
|
||||
|
||||
# Build version.
|
||||
SEMVER_MAJOR ?= 0
|
||||
# Build version string.
|
||||
SEMVER_MAJOR ?= 1
|
||||
export SEMVER_MAJOR
|
||||
SEMVER_MINOR ?= $(shell date -u +%y%m)
|
||||
export SEMVER_MINOR
|
||||
SEMVER_PATCH ?= $(shell date -u +%d)
|
||||
SEMVER_VERSION ?= $(SEMVER_MAJOR).$(SEMVER_MINOR).$(SEMVER_PATCH)
|
||||
export SEMVER_VERSION
|
||||
|
||||
# Build parameters.
|
||||
BUILD_PATH ?= $(shell realpath "./build")
|
||||
@@ -25,9 +28,12 @@ BUILD_DATE ?= $(shell date -u +%y%m%d)
|
||||
REPORT_DATE ?= $(shell date -u +%Y-%m-%d)
|
||||
BUILD_VERSION ?= $(shell git describe --always)
|
||||
BUILD_TAG ?= $(BUILD_DATE)-$(BUILD_VERSION)
|
||||
export BUILD_TAG
|
||||
BUILD_OS ?= $(shell uname -s)
|
||||
BUILD_ARCH ?= $(shell scripts/dist/arch.sh)
|
||||
BUILD_ARCH ?= $(shell ./scripts/dist/arch.sh)
|
||||
export BUILD_ARCH
|
||||
JS_BUILD_PATH ?= $(shell realpath "./assets/static/build")
|
||||
TF_VERSION ?= 2.18.0
|
||||
|
||||
# Install parameters.
|
||||
INSTALL_PATH ?= $(BUILD_PATH)/photoprism-ce_$(BUILD_TAG)-$(shell echo $(BUILD_OS) | tr '[:upper:]' '[:lower:]')-$(BUILD_ARCH)
|
||||
@@ -59,25 +65,31 @@ endif
|
||||
|
||||
# Declare "make" targets.
|
||||
all: dep build-js
|
||||
dep: dep-tensorflow dep-js
|
||||
dep: dep-tensorflow dep-onnx dep-js
|
||||
biuld: build
|
||||
build: build-go
|
||||
watch: watch-js
|
||||
build-all: build-go build-js
|
||||
pull: docker-pull
|
||||
test: test-js test-go
|
||||
test-go: reset-sqlite run-test-go
|
||||
test-pkg: reset-sqlite run-test-pkg
|
||||
test-api: reset-sqlite run-test-api
|
||||
test-entity: reset-sqlite run-test-entity
|
||||
test-commands: reset-sqlite run-test-commands
|
||||
test-photoprism: reset-sqlite run-test-photoprism
|
||||
test-short: reset-sqlite run-test-short
|
||||
test-go: run-test-go
|
||||
test-hub: run-test-hub
|
||||
test-pkg: run-test-pkg
|
||||
test-ai: run-test-ai
|
||||
test-api: run-test-api
|
||||
test-video: run-test-video
|
||||
test-entity: run-test-entity
|
||||
test-commands: run-test-commands
|
||||
test-photoprism: run-test-photoprism
|
||||
test-short: run-test-short
|
||||
test-mariadb: reset-acceptance run-test-mariadb
|
||||
acceptance-run-chromium: storage/acceptance acceptance-auth-sqlite-restart wait acceptance-auth acceptance-auth-sqlite-stop acceptance-sqlite-restart wait-2 acceptance acceptance-sqlite-stop
|
||||
acceptance-run-chromium-short: storage/acceptance acceptance-auth-sqlite-restart wait acceptance-auth-short acceptance-auth-sqlite-stop acceptance-sqlite-restart wait-2 acceptance-short acceptance-sqlite-stop
|
||||
acceptance-auth-run-chromium: storage/acceptance acceptance-auth-sqlite-restart wait acceptance-auth acceptance-auth-sqlite-stop
|
||||
acceptance-public-run-chromium: storage/acceptance acceptance-sqlite-restart wait acceptance acceptance-sqlite-stop
|
||||
help: list
|
||||
list:
|
||||
@awk '/^[[:alnum:]]+[^[:space:]]+:/ {printf "%s",substr($$1,1,length($$1)-1); if (match($$0,/#/)) {desc=substr($$0,RSTART+1); sub(/^[[:space:]]+/,"",desc); printf " - %s\n",desc} else printf "\n" }' "$(firstword $(MAKEFILE_LIST))"
|
||||
wait:
|
||||
sleep 20
|
||||
wait-2:
|
||||
@@ -94,13 +106,15 @@ devtools: install-go dep-npm
|
||||
.SILENT: help;
|
||||
logs:
|
||||
$(DOCKER_COMPOSE) logs -f
|
||||
help:
|
||||
@echo "For build instructions, visit <https://docs.photoprism.app/developer-guide/>."
|
||||
down:
|
||||
$(DOCKER_COMPOSE) --profile=all down --remove-orphans
|
||||
docs: swag
|
||||
swag: swag-json
|
||||
swag-json:
|
||||
@echo "Generating ./internal/api/swagger.json..."
|
||||
swag init --ot json --parseDependency --parseDepth 1 --dir internal/api -g api.go -o ./internal/api
|
||||
@echo "Fixing unstable time.Duration enums in swagger.json..."
|
||||
@GO111MODULE=on go run scripts/tools/swaggerfix/main.go internal/api/swagger.json || { echo "swaggerfix failed"; exit 1; }
|
||||
swag-yaml:
|
||||
@echo "Generating ./internal/api/swagger.yaml..."
|
||||
swag init --ot yaml --parseDependency --parseDepth 1 --dir internal/api -g api.go -o ./internal/api
|
||||
@@ -146,10 +160,12 @@ clean:
|
||||
[ ! -d "frontend/node_modules" ] || rm -rf frontend/node_modules
|
||||
[ ! -d "$(BUILD_PATH)" ] || rm -rf --preserve-root $(BUILD_PATH)
|
||||
[ ! -d "$(JS_BUILD_PATH)" ] || rm -rf --preserve-root $(JS_BUILD_PATH)
|
||||
clean-build:
|
||||
[ ! -d "$(BUILD_PATH)" ] || rm -rf --preserve-root $(BUILD_PATH)
|
||||
tar.gz:
|
||||
$(info Creating tar.gz archives from the directories in "$(BUILD_PATH)"...)
|
||||
find "$(BUILD_PATH)" -maxdepth 1 -mindepth 1 -type d -name "photoprism*" -exec tar --exclude='.[^/]*' -C {} -czf {}.tar.gz . \;
|
||||
pkg: pkg-amd64 pkg-arm64 pkg-armv7
|
||||
pkg: pkg-amd64 pkg-arm64
|
||||
pkg-amd64:
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" photoprism/develop:jammy make all install tar.gz
|
||||
pkg-arm64:
|
||||
@@ -161,6 +177,7 @@ install:
|
||||
@[ ! -d "$(DESTDIR)" ] || (echo "ERROR: Install path '$(DESTDIR)' already exists!"; exit 1)
|
||||
mkdir --mode=$(INSTALL_MODE) -p $(DESTDIR)
|
||||
env TMPDIR="$(BUILD_PATH)" ./scripts/dist/install-tensorflow.sh $(DESTDIR)
|
||||
env TMPDIR="$(BUILD_PATH)" ./scripts/dist/install-onnx.sh $(DESTDIR)
|
||||
rm -rf --preserve-root $(DESTDIR)/include
|
||||
(cd $(DESTDIR) && mkdir -p bin lib assets)
|
||||
./scripts/build.sh prod "$(DESTDIR)/bin/$(BINARY_NAME)"
|
||||
@@ -176,6 +193,8 @@ install-go:
|
||||
go build -v ./...
|
||||
install-tensorflow:
|
||||
sudo scripts/dist/install-tensorflow.sh
|
||||
install-onnx:
|
||||
sudo scripts/dist/install-onnx.sh
|
||||
install-darktable:
|
||||
sudo scripts/dist/install-darktable.sh
|
||||
acceptance-sqlite-restart:
|
||||
@@ -188,15 +207,15 @@ acceptance-sqlite-restart:
|
||||
rm -rf storage/acceptance/originals/2011
|
||||
rm -rf storage/acceptance/originals/2013
|
||||
rm -rf storage/acceptance/originals/2017
|
||||
./photoprism --auth-mode="public" -c "./storage/acceptance/config-sqlite" --test start -d
|
||||
./photoprism --auth-mode="public" -c "./storage/acceptance/config-sqlite" start -d
|
||||
acceptance-sqlite-stop:
|
||||
./photoprism --auth-mode="public" -c "./storage/acceptance/config-sqlite" --test stop
|
||||
./photoprism --auth-mode="public" -c "./storage/acceptance/config-sqlite" stop
|
||||
acceptance-auth-sqlite-restart:
|
||||
cp -f storage/acceptance/backup.db storage/acceptance/index.db
|
||||
cp -f storage/acceptance/config-sqlite/settingsBackup.yml storage/acceptance/config-sqlite/settings.yml
|
||||
./photoprism --auth-mode="password" -c "./storage/acceptance/config-sqlite" --test start -d
|
||||
./photoprism --auth-mode="password" -c "./storage/acceptance/config-sqlite" start -d
|
||||
acceptance-auth-sqlite-stop:
|
||||
./photoprism --auth-mode="password" -c "./storage/acceptance/config-sqlite" --test stop
|
||||
./photoprism --auth-mode="password" -c "./storage/acceptance/config-sqlite" stop
|
||||
start:
|
||||
./photoprism start -d
|
||||
stop:
|
||||
@@ -228,20 +247,44 @@ clean-local-config:
|
||||
rm -f $(BUILD_PATH)/config/*
|
||||
dep-list:
|
||||
go list -u -m -json all | go-mod-outdated -direct
|
||||
dep-list-all:
|
||||
go list -u -m -json all | go-mod-outdated
|
||||
npm: dep-npm npm-version
|
||||
npm-version:
|
||||
@echo "📦 Installed npm $$(npm --version)."
|
||||
dep-npm:
|
||||
sudo npm install -g npm
|
||||
@echo "Installing NPM package manager..."
|
||||
@if command -v sudo >/dev/null 2>&1; then \
|
||||
sudo npm install -g --location=global --no-fund --no-audit "npm@latest"; \
|
||||
else \
|
||||
npm install -g --location=global --no-fund --no-audit "npm@latest"; \
|
||||
fi
|
||||
dep-js:
|
||||
(cd frontend && npm ci --no-update-notifier --no-audit)
|
||||
(cd frontend && npm ci --ignore-scripts --no-update-notifier --no-audit)
|
||||
codex: dep-codex codex-version
|
||||
codex-version:
|
||||
@echo "🤖 Installed $$(codex --version)."
|
||||
dep-codex:
|
||||
@echo "Installing Codex CLI..."
|
||||
@[ -n "$(CODEX_HOME)" ] && [ "$(CODEX_HOME)" != "/" ] && install -d -m 700 -- "$(CODEX_HOME)" || true
|
||||
@if command -v sudo >/dev/null 2>&1; then \
|
||||
sudo npm install -g --location=global --no-fund --no-audit "@openai/codex@latest"; \
|
||||
else \
|
||||
npm install -g --location=global --no-fund --no-audit "@openai/codex@latest"; \
|
||||
fi
|
||||
dep-go:
|
||||
go build -v ./...
|
||||
dep-upgrade:
|
||||
go get -u -t ./...
|
||||
dep-upgrade-js:
|
||||
(cd frontend && npm update --legacy-peer-deps)
|
||||
frontend-update:
|
||||
make -C frontend update
|
||||
dep-upgrade-js: frontend-update
|
||||
dep-tensorflow:
|
||||
scripts/download-facenet.sh
|
||||
scripts/download-nasnet.sh
|
||||
scripts/download-nsfw.sh
|
||||
dep-onnx:
|
||||
scripts/download-scrfd.sh
|
||||
dep-acceptance: storage/acceptance
|
||||
storage/acceptance:
|
||||
[ -f "./storage/acceptance/index.db" ] || (cd storage && rm -rf acceptance && wget -c https://dl.photoprism.app/qa/acceptance.tar.gz -O - | tar -xz)
|
||||
@@ -271,59 +314,75 @@ build-static:
|
||||
scripts/build.sh static $(BINARY_NAME)
|
||||
build-libheif: build-libheif-amd64 build-libheif-arm64 build-libheif-armv7
|
||||
build-libheif-amd64:
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:oracular ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:noble ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:bookworm ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:questing ./scripts/dist/build-libheif.sh v1.20.2
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:plucky ./scripts/dist/build-libheif.sh v1.20.2
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:noble ./scripts/dist/build-libheif.sh v1.20.2
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.20.2
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:bookworm ./scripts/dist/build-libheif.sh v1.20.2
|
||||
build-libheif-arm64:
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:oracular ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:noble ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:bookworm ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:questing ./scripts/dist/build-libheif.sh v1.20.2
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:plucky ./scripts/dist/build-libheif.sh v1.20.2
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:noble ./scripts/dist/build-libheif.sh v1.20.2
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.20.2
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:bookworm ./scripts/dist/build-libheif.sh v1.20.2
|
||||
build-libheif-armv7:
|
||||
docker run --rm -u $(UID) --platform=arm --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm -e SYSTEM_ARCH=arm photoprism/develop:armv7 ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=arm --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm -e SYSTEM_ARCH=arm photoprism/develop:jammy ./scripts/dist/build-libheif.sh v1.19.5
|
||||
docker run --rm -u $(UID) --platform=arm --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm -e SYSTEM_ARCH=arm photoprism/develop:armv7 ./scripts/dist/build-libheif.sh v1.20.2
|
||||
build-libheif-latest: build-libheif-amd64-latest build-libheif-arm64-latest build-libheif-armv7-latest
|
||||
build-libheif-amd64-latest:
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:oracular ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:questing ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:plucky ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:noble ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=amd64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh
|
||||
build-libheif-arm64-latest:
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:oracular ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:questing ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:plucky ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:noble ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=arm64 --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/develop:jammy ./scripts/dist/build-libheif.sh
|
||||
build-libheif-armv7-latest:
|
||||
docker run --rm -u $(UID) --platform=arm --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm -e SYSTEM_ARCH=arm photoprism/develop:armv7 ./scripts/dist/build-libheif.sh
|
||||
docker run --rm -u $(UID) --platform=arm --pull=always -v ".:/go/src/github.com/photoprism/photoprism" -e BUILD_ARCH=arm -e SYSTEM_ARCH=arm photoprism/develop:jammy ./scripts/dist/build-libheif.sh
|
||||
build-tensorflow:
|
||||
docker build -t photoprism/tensorflow:build docker/tensorflow
|
||||
docker run -ti photoprism/tensorflow:build bash
|
||||
build-tensorflow-arm64:
|
||||
docker build -t photoprism/tensorflow:arm64 docker/tensorflow/arm64
|
||||
docker run -ti photoprism/tensorflow:arm64 bash
|
||||
build-tensorflow: docker-tensorflow-amd64
|
||||
docker-tensorflow: docker-tensorflow-amd64
|
||||
docker-tensorflow-amd64:
|
||||
docker build --pull --no-cache -t photoprism/tensorflow:latest -t photoprism/tensorflow:amd64 -t photoprism/tensorflow:$(TF_VERSION)-amd64 --build-arg TF_VERSION=$(TF_VERSION) docker/tensorflow
|
||||
terminal-tensorflow: terminal-tensorflow-amd64
|
||||
terminal-tensorflow-amd64:
|
||||
mkdir -p ./build
|
||||
docker run --rm --pull missing -ti --platform=amd64 -v "./build:/build" -e BUILD_ARCH=amd64 -e SYSTEM_ARCH=amd64 photoprism/tensorflow:amd64 bash
|
||||
build-tensorflow-arm64: docker-tensorflow-arm64
|
||||
docker-tensorflow-arm64:
|
||||
docker build --pull --no-cache -t photoprism/tensorflow:arm64 -t photoprism/tensorflow:$(TF_VERSION)-arm64 --build-arg TF_VERSION=$(TF_VERSION) docker/tensorflow/arm64
|
||||
terminal-tensorflow-arm64:
|
||||
mkdir -p ./build
|
||||
docker run --rm --pull missing -ti --platform=arm64 -v "./build:/build" -e BUILD_ARCH=arm64 -e SYSTEM_ARCH=arm64 photoprism/tensorflow:arm64 bash
|
||||
build-setup: build-setup-nas-raspberry-pi
|
||||
build-setup-nas-raspberry-pi:
|
||||
./scripts/setup/nas/raspberry-pi/build.sh
|
||||
watch-js:
|
||||
(cd frontend && env BUILD_ENV=development NODE_ENV=production npm run watch)
|
||||
test-js:
|
||||
$(info Running JS unit tests...)
|
||||
(cd frontend && env TZ=UTC BUILD_ENV=development NODE_ENV=development BABEL_ENV=test npm run test)
|
||||
(cd frontend && npm run test)
|
||||
acceptance:
|
||||
$(info Running public-mode tests in Chrome...)
|
||||
(cd frontend && npm run testcafe -- "chrome --headless=new" --test-grep "^(Multi-Window)\:*" --test-meta mode=public --config-file ./testcaferc.json --experimental-multiple-windows "tests/acceptance" && npm run testcafe -- "chrome --headless=new" --test-grep "^(Common|Core)\:*" --test-meta mode=public --config-file ./testcaferc.json "tests/acceptance")
|
||||
acceptance-short:
|
||||
$(info Running JS acceptance tests in Chrome...)
|
||||
(cd frontend && npm run testcafe -- "chrome --headless=new" --test-grep "^(Multi-Window)\:*" --test-meta mode=public --config-file ./testcaferc.json --experimental-multiple-windows "tests/acceptance" && npm run testcafe -- "chrome --headless=new" --test-grep "^(Common|Core)\:*" --test-meta mode=public,type=short --config-file ./testcaferc.json "tests/acceptance")
|
||||
acceptance-firefox:
|
||||
$(info Running JS acceptance tests in Firefox...)
|
||||
(cd frontend && npm run testcafe -- firefox:headless --test-grep "^(Common|Core)\:*" --test-meta mode=public --config-file ./testcaferc.json --disable-native-automation "tests/acceptance")
|
||||
acceptance-auth:
|
||||
$(info Running JS acceptance-auth tests in Chrome...)
|
||||
(cd frontend && npm run testcafe -- "chrome --headless=new" --test-grep "^(Multi-Window)\:*" --test-meta mode=auth --config-file ./testcaferc.json --experimental-multiple-windows "tests/acceptance" && npm run testcafe -- "chrome --headless=new" --test-grep "^(Common|Core)\:*" --test-meta mode=auth --config-file ./testcaferc.json "tests/acceptance")
|
||||
acceptance-auth-short:
|
||||
$(info Running JS acceptance-auth tests in Chrome...)
|
||||
(cd frontend && npm run testcafe -- "chrome --headless=new" --test-grep "^(Multi-Window)\:*" --test-meta mode=auth --config-file ./testcaferc.json --experimental-multiple-windows "tests/acceptance" && npm run testcafe -- "chrome --headless=new" --test-grep "^(Common|Core)\:*" --test-meta mode=auth,type=short --config-file ./testcaferc.json "tests/acceptance")
|
||||
acceptance-auth-firefox:
|
||||
$(info Running JS acceptance-auth tests in Firefox...)
|
||||
(cd frontend && npm run testcafe -- firefox:headless --test-grep "^(Common|Core)\:*" --test-meta mode=auth --config-file ./testcaferc.json --disable-native-automation "tests/acceptance")
|
||||
vitest-watch:
|
||||
$(info Running Vitest unit tests in watch mode...)
|
||||
(cd frontend && npm run test-watch)
|
||||
vitest-coverage:
|
||||
$(info Running Vitest unit tests with coverage...)
|
||||
(cd frontend && npm run test-coverage)
|
||||
vitest-component:
|
||||
$(info Running Vitest component tests...)
|
||||
(cd frontend && npm run test-component)
|
||||
reset-mariadb:
|
||||
$(info Resetting photoprism database...)
|
||||
mysql < scripts/sql/reset-photoprism.sql
|
||||
@@ -336,27 +395,36 @@ reset-mariadb-local:
|
||||
reset-mariadb-acceptance:
|
||||
$(info Resetting acceptance database...)
|
||||
mysql < scripts/sql/reset-acceptance.sql
|
||||
reset-mariadb-all: reset-mariadb-testdb reset-mariadb-local reset-mariadb-acceptance reset-mariadb-photoprism
|
||||
reset-mariadb-all: reset-mariadb-testdb reset-mariadb-local reset-mariadb-acceptance
|
||||
reset-testdb: reset-sqlite reset-mariadb-testdb
|
||||
reset-acceptance: reset-mariadb-acceptance
|
||||
reset-sqlite:
|
||||
$(info Removing test database files...)
|
||||
find ./internal -type f -name ".test.*" -delete
|
||||
find ./internal -type f \( -iname '.*.db' -o -iname '.*.db-journal' -o -iname '.test.*' \) -delete
|
||||
run-test-short:
|
||||
$(info Running short Go tests in parallel mode...)
|
||||
$(GOTEST) -parallel 2 -count 1 -cpu 2 -short -timeout 5m ./pkg/... ./internal/...
|
||||
run-test-go:
|
||||
$(info Running all Go tests...)
|
||||
$(GOTEST) -parallel 1 -count 1 -cpu 1 -tags="slow,develop" -timeout 20m ./pkg/... ./internal/...
|
||||
run-test-hub:
|
||||
$(info Running all Go tests with hub requests...)
|
||||
env PHOTOPRISM_TEST_HUB="true" $(GOTEST) -parallel 1 -count 1 -cpu 1 -tags="slow,develop,debug" -timeout 20m ./pkg/... ./internal/...
|
||||
run-test-mariadb:
|
||||
$(info Running all Go tests on MariaDB...)
|
||||
PHOTOPRISM_TEST_DRIVER="mysql" PHOTOPRISM_TEST_DSN="root:photoprism@tcp(mariadb:4001)/acceptance?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true" $(GOTEST) -parallel 1 -count 1 -cpu 1 -tags="slow,develop" -timeout 20m ./pkg/... ./internal/...
|
||||
run-test-pkg:
|
||||
$(info Running all Go tests in "/pkg"...)
|
||||
$(GOTEST) -parallel 2 -count 1 -cpu 2 -tags="slow,develop" -timeout 20m ./pkg/...
|
||||
run-test-ai:
|
||||
$(info Running all AI tests...)
|
||||
$(GOTEST) -parallel 2 -count 1 -cpu 2 -tags="slow,develop" -timeout 20m ./internal/ai/...
|
||||
run-test-api:
|
||||
$(info Running all API tests...)
|
||||
$(GOTEST) -parallel 2 -count 1 -cpu 2 -tags="slow,develop" -timeout 20m ./internal/api/...
|
||||
run-test-video:
|
||||
$(info Running all video tests...)
|
||||
$(GOTEST) -parallel 2 -count 1 -cpu 2 -tags="slow,develop" -timeout 20m ./internal/ffmpeg/... ./internal/photoprism/dl/... ./pkg/media/...
|
||||
run-test-entity:
|
||||
$(info Running all Entity tests...)
|
||||
$(GOTEST) -parallel 2 -count 1 -cpu 2 -tags="slow,develop" -timeout 20m ./internal/entity/...
|
||||
@@ -380,31 +448,58 @@ test-coverage:
|
||||
go test -parallel 1 -count 1 -cpu 1 -failfast -tags="slow,develop" -timeout 30m -coverprofile coverage.txt -covermode atomic ./pkg/... ./internal/...
|
||||
go tool cover -html=coverage.txt -o coverage.html
|
||||
go tool cover -func coverage.txt | grep total:
|
||||
git-pull:
|
||||
@echo "Pulling changes from remote repositories..."; \
|
||||
if [ -d .git ]; then \
|
||||
echo "Updating photoprism"; \
|
||||
git pull --ff-only || echo "Warning: git pull failed in root"; \
|
||||
else \
|
||||
echo "Skipping: current directory is not a Git repo"; \
|
||||
fi; \
|
||||
for d in */ ; do \
|
||||
[ -d "$$d" ] || continue; \
|
||||
[ -d "$$d/.git" ] || continue; \
|
||||
echo "Updating photoprism/$$d"; \
|
||||
git -C "$$d" pull --ff-only || echo "Warning: git pull failed in $$d"; \
|
||||
done;
|
||||
docker-pull:
|
||||
$(DOCKER_COMPOSE) --profile=all pull --ignore-pull-failures
|
||||
$(DOCKER_COMPOSE) -f compose.latest.yaml pull --ignore-pull-failures
|
||||
build-docker: docker-build
|
||||
docker-build:
|
||||
$(DOCKER_COMPOSE) --profile=all pull --ignore-pull-failures
|
||||
$(DOCKER_COMPOSE) down --remove-orphans
|
||||
$(DOCKER_COMPOSE) build --pull
|
||||
docker-nvidia: docker-nvidia-up
|
||||
docker-nvidia-up:
|
||||
docker compose -f compose.nvidia.yaml up
|
||||
docker-local-up:
|
||||
$(DOCKER_COMPOSE) -f compose.local.yaml up --force-recreate
|
||||
docker-local-down:
|
||||
$(DOCKER_COMPOSE) -f compose.local.yaml down -V
|
||||
nvidia: nvidia-up
|
||||
nvidia-build:
|
||||
$(DOCKER_COMPOSE) --profile=qdrant -f compose.nvidia.yaml pull --ignore-pull-failures
|
||||
$(DOCKER_COMPOSE) --profile=qdrant -f compose.nvidia.yaml build
|
||||
nvidia-up:
|
||||
$(DOCKER_COMPOSE) --profile=qdrant -f compose.nvidia.yaml pull --ignore-pull-failures
|
||||
$(DOCKER_COMPOSE) --profile=qdrant -f compose.nvidia.yaml up --remove-orphans
|
||||
nvidia-down:
|
||||
$(DOCKER_COMPOSE) --profile=qdrant -f compose.nvidia.yaml down --remove-orphans
|
||||
intel: intel-up
|
||||
intel-build:
|
||||
$(DOCKER_COMPOSE) -f compose.intel.yaml pull --ignore-pull-failures
|
||||
$(DOCKER_COMPOSE) -f compose.intel.yaml build
|
||||
intel-up:
|
||||
$(DOCKER_COMPOSE) -f compose.intel.yaml pull --ignore-pull-failures
|
||||
$(DOCKER_COMPOSE) -f compose.intel.yaml up --remove-orphans
|
||||
intel-down:
|
||||
$(DOCKER_COMPOSE) -f compose.intel.yaml down --remove-orphans
|
||||
develop: docker-develop
|
||||
docker-develop: docker-develop-latest
|
||||
docker-develop-all: docker-develop-latest docker-develop-other
|
||||
docker-develop-latest: docker-develop-ubuntu
|
||||
docker-develop-debian: docker-develop-bookworm docker-develop-bookworm-slim
|
||||
docker-develop-ubuntu: docker-develop-oracular docker-develop-oracular-slim
|
||||
docker-develop-ubuntu: docker-develop-questing docker-develop-questing-slim
|
||||
docker-develop-other: docker-develop-debian docker-develop-bullseye docker-develop-bullseye-slim docker-develop-buster
|
||||
docker-develop-bookworm:
|
||||
docker pull --platform=amd64 debian:bookworm-slim
|
||||
docker pull --platform=arm64 debian:bookworm-slim
|
||||
docker pull --platform=arm debian:bookworm-slim
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64,linux/arm bookworm /bookworm "-t photoprism/develop:debian"
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 bookworm /bookworm "-t photoprism/develop:debian"
|
||||
docker-develop-bookworm-slim:
|
||||
docker pull --platform=amd64 debian:bookworm-slim
|
||||
docker pull --platform=arm64 debian:bookworm-slim
|
||||
@@ -413,7 +508,7 @@ docker-develop-bullseye:
|
||||
docker pull --platform=amd64 golang:1-bullseye
|
||||
docker pull --platform=arm64 golang:1-bullseye
|
||||
docker pull --platform=arm golang:1-bullseye
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64,linux/arm bullseye /bullseye
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 bullseye /bullseye
|
||||
docker-develop-bullseye-slim:
|
||||
docker pull --platform=amd64 debian:bullseye-slim
|
||||
docker pull --platform=arm64 debian:bullseye-slim
|
||||
@@ -433,8 +528,7 @@ docker-develop-impish:
|
||||
docker-develop-jammy:
|
||||
docker pull --platform=amd64 ubuntu:jammy
|
||||
docker pull --platform=arm64 ubuntu:jammy
|
||||
docker pull --platform=arm ubuntu:jammy
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64,linux/arm jammy /jammy
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 jammy /jammy
|
||||
docker-develop-jammy-slim:
|
||||
docker pull --platform=amd64 ubuntu:jammy
|
||||
docker pull --platform=arm64 ubuntu:jammy
|
||||
@@ -466,11 +560,27 @@ docker-develop-noble-slim:
|
||||
docker-develop-oracular:
|
||||
docker pull --platform=amd64 ubuntu:oracular
|
||||
docker pull --platform=arm64 ubuntu:oracular
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 oracular /oracular "-t photoprism/develop:latest -t photoprism/develop:ubuntu"
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 oracular /oracular
|
||||
docker-develop-oracular-slim:
|
||||
docker pull --platform=amd64 ubuntu:oracular
|
||||
docker pull --platform=arm64 ubuntu:oracular
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 oracular-slim /oracular-slim
|
||||
docker-develop-plucky:
|
||||
docker pull --platform=amd64 ubuntu:plucky
|
||||
docker pull --platform=arm64 ubuntu:plucky
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 plucky /plucky
|
||||
docker-develop-plucky-slim:
|
||||
docker pull --platform=amd64 ubuntu:plucky
|
||||
docker pull --platform=arm64 ubuntu:plucky
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 plucky-slim /plucky-slim
|
||||
docker-develop-questing:
|
||||
docker pull --platform=amd64 ubuntu:questing
|
||||
docker pull --platform=arm64 ubuntu:questing
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 questing /questing "-t photoprism/develop:latest -t photoprism/develop:ubuntu"
|
||||
docker-develop-questing-slim:
|
||||
docker pull --platform=amd64 ubuntu:questing
|
||||
docker pull --platform=arm64 ubuntu:questing
|
||||
scripts/docker/buildx-multi.sh develop linux/amd64,linux/arm64 questing-slim /questing-slim
|
||||
unstable: docker-unstable
|
||||
docker-unstable: docker-unstable-mantic
|
||||
docker-unstable-jammy:
|
||||
@@ -488,10 +598,10 @@ docker-unstable-mantic:
|
||||
preview: docker-preview-ce
|
||||
docker-preview: docker-preview-ce
|
||||
docker-preview-all: docker-preview-latest docker-preview-other
|
||||
docker-preview-ce: docker-preview-oracular
|
||||
docker-preview-ce: docker-preview-questing
|
||||
docker-preview-latest: docker-preview-ubuntu
|
||||
docker-preview-debian: docker-preview-bookworm
|
||||
docker-preview-ubuntu: docker-preview-oracular
|
||||
docker-preview-ubuntu: docker-preview-questing
|
||||
docker-preview-other: docker-preview-debian docker-preview-bullseye
|
||||
docker-preview-arm: docker-preview-arm64 docker-preview-armv7
|
||||
docker-preview-bookworm:
|
||||
@@ -556,12 +666,24 @@ docker-preview-oracular:
|
||||
docker pull --platform=arm64 photoprism/develop:oracular
|
||||
docker pull --platform=arm64 photoprism/develop:oracular-slim
|
||||
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-ce /oracular
|
||||
docker-preview-questing:
|
||||
docker pull --platform=amd64 photoprism/develop:questing
|
||||
docker pull --platform=amd64 photoprism/develop:questing-slim
|
||||
docker pull --platform=arm64 photoprism/develop:questing
|
||||
docker pull --platform=arm64 photoprism/develop:questing-slim
|
||||
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-ce /questing "-t photoprism/photoprism:preview -t photoprism/photoprism:ubuntu"
|
||||
docker-preview-plucky:
|
||||
docker pull --platform=amd64 photoprism/develop:plucky
|
||||
docker pull --platform=amd64 photoprism/develop:plucky-slim
|
||||
docker pull --platform=arm64 photoprism/develop:plucky
|
||||
docker pull --platform=arm64 photoprism/develop:plucky-slim
|
||||
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 preview-ce /plucky
|
||||
release: docker-release
|
||||
docker-release: docker-release-latest
|
||||
docker-release-all: docker-release-latest docker-release-other
|
||||
docker-release-latest: docker-release-ubuntu
|
||||
docker-release-debian: docker-release-bookworm
|
||||
docker-release-ubuntu: docker-release-oracular
|
||||
docker-release-ubuntu: docker-release-questing
|
||||
docker-release-other: docker-release-debian docker-release-bullseye
|
||||
docker-release-arm: docker-release-arm64 docker-release-armv7
|
||||
docker-release-bookworm:
|
||||
@@ -626,6 +748,22 @@ docker-release-oracular:
|
||||
docker pull --platform=arm64 photoprism/develop:oracular
|
||||
docker pull --platform=arm64 photoprism/develop:oracular-slim
|
||||
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce /oracular
|
||||
docker-release-questing:
|
||||
docker pull --platform=amd64 photoprism/develop:questing
|
||||
docker pull --platform=amd64 photoprism/develop:questing-slim
|
||||
docker pull --platform=arm64 photoprism/develop:questing
|
||||
docker pull --platform=arm64 photoprism/develop:questing-slim
|
||||
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce /questing "-t photoprism/photoprism:latest -t photoprism/photoprism:ubuntu"
|
||||
docker-release-plucky:
|
||||
docker pull --platform=amd64 photoprism/develop:plucky
|
||||
docker pull --platform=amd64 photoprism/develop:plucky-slim
|
||||
docker pull --platform=arm64 photoprism/develop:plucky
|
||||
docker pull --platform=arm64 photoprism/develop:plucky-slim
|
||||
scripts/docker/buildx-multi.sh photoprism linux/amd64,linux/arm64 ce /plucky
|
||||
start-traefik:
|
||||
$(DOCKER_COMPOSE) up -d --wait traefik
|
||||
stop-traefik:
|
||||
$(DOCKER_COMPOSE) down traefik
|
||||
start-local:
|
||||
$(DOCKER_COMPOSE) -f compose.local.yaml up -d --wait
|
||||
stop-local:
|
||||
@@ -668,8 +806,12 @@ terminal-preview:
|
||||
$(DOCKER_COMPOSE) -f compose.preview.yaml exec photoprism-preview bash
|
||||
logs-preview:
|
||||
$(DOCKER_COMPOSE) -f compose.preview.yaml logs -f photoprism-preview
|
||||
docker-local: docker-local-oracular
|
||||
docker-local-all: docker-local-oracular docker-local-noble docker-local-mantic docker-local-lunar docker-local-jammy docker-local-bookworm docker-local-bullseye docker-local-buster
|
||||
docker-local: docker-local-questing
|
||||
docker-local-up:
|
||||
$(DOCKER_COMPOSE) -f compose.local.yaml up --force-recreate
|
||||
docker-local-down:
|
||||
$(DOCKER_COMPOSE) -f compose.local.yaml down --remove-orphans
|
||||
docker-local-all: docker-local-questing docker-local-plucky docker-local-oracular docker-local-noble docker-local-mantic docker-local-lunar docker-local-jammy docker-local-bookworm docker-local-bullseye docker-local-buster
|
||||
docker-local-bookworm:
|
||||
docker pull photoprism/develop:bookworm
|
||||
docker pull photoprism/develop:bookworm-slim
|
||||
@@ -706,9 +848,17 @@ docker-local-oracular:
|
||||
docker pull photoprism/develop:oracular
|
||||
docker pull ubuntu:oracular
|
||||
scripts/docker/build.sh photoprism ce-oracular /oracular "-t photoprism/photoprism:local"
|
||||
docker-local-questing:
|
||||
docker pull photoprism/develop:questing
|
||||
docker pull ubuntu:questing
|
||||
scripts/docker/build.sh photoprism ce-questing /questing "-t photoprism/photoprism:local"
|
||||
docker-local-plucky:
|
||||
docker pull photoprism/develop:plucky
|
||||
docker pull ubuntu:plucky
|
||||
scripts/docker/build.sh photoprism ce-plucky /plucky "-t photoprism/photoprism:local"
|
||||
local-develop: docker-local-develop
|
||||
docker-local-develop: docker-local-develop-oracular
|
||||
docker-local-develop-all: docker-local-develop-oracular docker-local-develop-noble docker-local-develop-mantic docker-local-develop-lunar docker-local-develop-jammy docker-local-develop-bookworm docker-local-develop-bullseye docker-local-develop-buster docker-local-develop-impish
|
||||
docker-local-develop: docker-local-develop-questing
|
||||
docker-local-develop-all: docker-local-develop-questing docker-local-develop-oracular docker-local-develop-noble docker-local-develop-mantic docker-local-develop-lunar docker-local-develop-jammy docker-local-develop-bookworm docker-local-develop-bullseye docker-local-develop-buster docker-local-develop-impish
|
||||
docker-local-develop-bookworm:
|
||||
docker pull debian:bookworm-slim
|
||||
scripts/docker/build.sh develop bookworm /bookworm
|
||||
@@ -736,6 +886,12 @@ docker-local-develop-noble:
|
||||
docker-local-develop-oracular:
|
||||
docker pull ubuntu:oracular
|
||||
scripts/docker/build.sh develop oracular /oracular
|
||||
docker-local-develop-questing:
|
||||
docker pull ubuntu:questing
|
||||
scripts/docker/build.sh develop questing /questing
|
||||
docker-local-develop-plucky:
|
||||
docker pull ubuntu:plucky
|
||||
scripts/docker/build.sh develop plucky /plucky
|
||||
docker-ddns:
|
||||
docker pull golang:alpine
|
||||
scripts/docker/buildx-multi.sh ddns linux/amd64,linux/arm64 $(BUILD_DATE)
|
||||
|
||||
34
README.md
34
README.md
@@ -12,7 +12,7 @@ PhotoPrism® is an AI-Powered Photos App for the [Decentralized Web](https://en.
|
||||
It makes use of the latest technologies to tag and find pictures automatically without getting in your way.
|
||||
You can run it at home, on a private server, or in the cloud.
|
||||
|
||||

|
||||

|
||||
|
||||
To get a first impression, you are welcome to play with our [public demo](https://try.photoprism.app/). Please be careful not to upload any private, unlawful or offensive pictures.
|
||||
|
||||
@@ -20,23 +20,21 @@ To get a first impression, you are welcome to play with our [public demo](https:
|
||||
|
||||
**Our mission is to provide the most user- and privacy-friendly solution to keep your pictures organized and accessible.** That's why PhotoPrism was built from the ground up to run wherever you need it, without compromising freedom, privacy, or functionality:
|
||||
|
||||
* Browse [all your photos](https://docs.photoprism.app/user-guide/organize/browse/) and [videos](https://try.photoprism.app/library/videos) without worrying about [RAW conversion, duplicates or video formats](https://docs.photoprism.app/user-guide/settings/library/)
|
||||
* Easily find specific pictures using [powerful search filters](https://try.photoprism.app/library/browse?view=cards&q=flower%20color%3Ared)
|
||||
* Recognizes [the faces of your family and friends](https://try.photoprism.app/library/people)
|
||||
* [Automatic classification](https://try.photoprism.app/library/labels) of pictures based on their content and location
|
||||
* [Play Live Photos](https://try.photoprism.app/library/live) by hovering over them in [albums](https://try.photoprism.app/library/albums) and [search results](https://try.photoprism.app/library/browse?view=cards&q=type%3Alive)
|
||||
* Since the [User Interface](https://try.photoprism.app/) is a [Progressive Web App](https://developer.mozilla.org/en-US/docs/Web/Progressive_web_apps),
|
||||
it provides a native app-like experience, and you can conveniently install it on the home screen of all major operating systems and mobile devices
|
||||
* Includes four high-resolution [World Maps](https://try.photoprism.app/library/places) to bring back the memories of your favorite trips
|
||||
* Metadata is extracted and merged from Exif, XMP, and other sources such as Google Photos
|
||||
* Many more image properties like [Colors](https://try.photoprism.app/library/browse?view=cards&q=color:red), [Chroma](https://try.photoprism.app/library/browse?view=cards&q=mono%3Atrue), and [Quality](https://try.photoprism.app/library/review) can be searched as well
|
||||
* Use [PhotoSync](https://link.photoprism.app/photosync) to securely backup iOS and Android phones in the background
|
||||
* WebDAV clients such as Microsoft's Windows Explorer and Apple's Finder [can connect directly](https://docs.photoprism.app/user-guide/sync/webdav/) to PhotoPrism, allowing you to open, edit, and delete files from your computer as if they were local
|
||||
<img align="right" height="270" src="https://dl.photoprism.app/img/ui/2025/iphone-crocus-540px.png">
|
||||
|
||||
* Browse [all your pictures](https://docs.photoprism.app/user-guide/organize/browse/) without worrying about [RAW images](https://www.photoprism.app/kb/file-formats) or [video formats](https://docs.photoprism.app/user-guide/organize/video/)
|
||||
* Whether you're using a phone, tablet, or desktop computer, our [intuitive PWA](https://try.photoprism.app/) provides a native app-like experience and can be [easily installed](https://docs.photoprism.app/user-guide/pwa/) on your home screen
|
||||
* Quickly find specific photos and videos with [powerful search filters](https://docs.photoprism.app/user-guide/search/filters/) that can be combined and are available for [many different properties](https://docs.photoprism.app/user-guide/search/filters/#filter-reference), including [labels](https://try.photoprism.app/library/labels), [location](https://try.photoprism.app/library/places?q=s2:47a85a63f764), [resolution](https://try.photoprism.app/library/browse?view=cards&q=mp:4), [color](https://try.photoprism.app/library/browse?view=cards&q=color:red), [chroma](https://try.photoprism.app/library/browse?view=cards&q=mono%3Atrue), and [quality](https://try.photoprism.app/library/review)
|
||||
* [Automatically labels your pictures](https://try.photoprism.app/library/labels) based on content and location, and recognizes the faces of [your family and friends](https://try.photoprism.app/library/people/new)
|
||||
* [Live Photos](https://try.photoprism.app/library/live) start playing when you [hover over them](https://try.photoprism.app/library/browse?view=cards&q=type%3Alive) and when viewing a slideshow
|
||||
* Six high-resolution [World Maps](https://try.photoprism.app/library/places) and our [privacy-preserving geocoding service](https://docs.photoprism.app/getting-started/#maps-places) help bring back memories of your favorite trips and let you explore the world
|
||||
* Metadata can be extracted and merged from Exif, XMP, and other sources like Google Photos
|
||||
* [Use compatible apps](https://docs.photoprism.app/user-guide/native-apps/) like [PhotoSync](https://link.photoprism.app/photosync) to back up iOS and Android phones in the background
|
||||
* WebDAV clients such as [Microsoft's Windows Explorer](https://docs.photoprism.app/user-guide/sync/webdav/#__tabbed_1_2) and [Apple's Finder](https://docs.photoprism.app/user-guide/sync/webdav/#connect-to-a-webdav-server) can [connect directly to PhotoPrism](https://docs.photoprism.app/user-guide/sync/webdav/), allowing you to open, edit, and delete files from your computer as if they were local
|
||||
|
||||
Being completely [**self-funded and independent**](https://link.photoprism.app/membership), we can promise you that we will [never sell your data](https://www.photoprism.app/privacy) and that we will [always be transparent](https://www.photoprism.app/terms) about our software and services. Your data will never be shared with Google, Amazon, Microsoft or Apple unless you intentionally upload files to one of their services. 🔒
|
||||
|
||||
## Getting Started ##
|
||||
<img align="right" width="25%" src="https://www.photoprism.app/user/pages/01.home/03._screenshots/iphone-maps-hybrid-540px.png">
|
||||
|
||||
Step-by-step [installation instructions](https://docs.photoprism.app/getting-started/) for our self-hosted [community edition](https://link.photoprism.app/personal-editions) can be found on [docs.photoprism.app](https://docs.photoprism.app/getting-started/) - all you need is a Web browser and [Docker](https://docs.docker.com/get-docker/) to run the server. It is available for Mac, Linux, and Windows.
|
||||
|
||||
@@ -79,11 +77,15 @@ Common problems can be quickly diagnosed and solved using our [Troubleshooting C
|
||||
|
||||
## Upcoming Features and Enhancements ##
|
||||
|
||||
<a href="https://github.com/orgs/photoprism/projects/5"><img align="right" height="240" src="https://dl.photoprism.app/img/ui/2025/upcoming-features-240px.png"></a>
|
||||
|
||||
Our [Project Roadmap](https://link.photoprism.app/roadmap) shows what tasks are in progress and what features will be implemented next. You are invited to give ideas you like a thumbs-up, so we know what's most popular.
|
||||
|
||||
Be aware that we have a zero-bug policy and do our best to help users when they need support or have other questions. This comes at a price though, as we can't give exact release dates for new features. Our team receives many more requests than can be implemented, so we want to emphasize that we are in no way obligated to implement the features, enhancements, or other changes you request. We do, however, appreciate your feedback and carefully consider all requests.
|
||||
|
||||
**Because sustained funding is key to quickly releasing new features, we encourage you to support our mission by [signing up as a sponsor](https://link.photoprism.app/sponsor) or purchasing a [commercial license](https://www.photoprism.app/teams). Ultimately, that's what's best for the product and the community.**
|
||||
**Because sustained funding is key to quickly releasing new features, we encourage you to support our mission by [signing up for a personal membership](https://link.photoprism.app/membership) or [purchasing a commercial license](https://www.photoprism.app/teams#compare).**
|
||||
|
||||
[Become a Member ›](https://link.photoprism.app/membership)
|
||||
|
||||
## GitHub Issues ⚠️ ##
|
||||
|
||||
@@ -96,6 +98,8 @@ We kindly ask you not to report bugs via GitHub Issues **unless you are certain
|
||||
|
||||
## Connect with the Community ##
|
||||
|
||||
<a href="https://link.photoprism.app/chat"><img align="right" width="144" height="144" src="https://dl.photoprism.app/img/brands/element-logo.svg"></a>
|
||||
|
||||
Follow us on [Mastodon](https://floss.social/@photoprism), [Bluesky](https://bsky.app/profile/photoprism.app), or join the [Community Chat](https://link.photoprism.app/chat) to get regular updates, connect with other users, and discuss your ideas. Our [Code of Conduct](https://www.photoprism.app/code-of-conduct) explains the "dos and don’ts" when interacting with other community members.
|
||||
|
||||
As a [contributor](CONTRIBUTING.md), you are also welcome to [contact us directly](https://www.photoprism.app/contact) if you have something on your mind that you don't want to discuss publicly. Please note, however, that due to the high volume of emails we receive, our team may be unable to get back to you immediately. We do our best to respond within five business days or less.
|
||||
|
||||
@@ -30,6 +30,8 @@ You are [welcome to contact us](https://www.photoprism.app/contact) for change r
|
||||
|
||||
**[Andreas Krizek](https://github.com/Cosmic314)** (January 2025)
|
||||
|
||||
**[Jason Grim](https://github.com/jgrim)** (June 2025)
|
||||
|
||||
## Gold Sponsors ##
|
||||
|
||||
[**Simen Eriksen**](https://github.com/dennorske) (GitHub Sponsors, December 2019)
|
||||
@@ -86,6 +88,8 @@ You are [welcome to contact us](https://www.photoprism.app/contact) for change r
|
||||
|
||||
[**Kevin "BentoFox" Gelking**](https://github.com/KevinGelking) (Patreon, December 2024)
|
||||
|
||||
[**Philipp Marmet**](https://github.com/fujexo) (October 2025)
|
||||
|
||||
## Infrastructure Sponsors ##
|
||||
|
||||
Our project infrastructure is provided by the following companies:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
examples
|
||||
README.md
|
||||
docs
|
||||
.*
|
||||
.*
|
||||
_*
|
||||
BIN
assets/examples/bear.m2ts
Normal file
BIN
assets/examples/bear.m2ts
Normal file
Binary file not shown.
BIN
assets/examples/cat_224.jpeg
Normal file
BIN
assets/examples/cat_224.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/examples/cat_720.jpeg
Normal file
BIN
assets/examples/cat_720.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 98 KiB |
BIN
assets/examples/example.zip
Normal file
BIN
assets/examples/example.zip
Normal file
Binary file not shown.
BIN
assets/examples/green.jpg
Normal file
BIN
assets/examples/green.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
BIN
assets/examples/m2ts.mp4
Normal file
BIN
assets/examples/m2ts.mp4
Normal file
Binary file not shown.
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Iets het verkeerd geloop, probeer weer"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Kan dit nie doen nie"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Veranderinge kon nie gestoor word nie"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Kan nie verwyder word nie"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s bestaan reeds"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nie gevind"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Lêer nie gevind nie"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Lêer te groot"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Ongesteun"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Ongesteunde tipe"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Ongesteunde formaat"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Oorspronklike omslag is leeg"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Seleksie nie gevind nie"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entiteit nie gevind nie"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Rekening nie gevind nie"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Verbruiker nie gevind nie"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Merker nie gevind nie"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album nie gevind nie"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Onderwerp nie gevind nie"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Persoon nie gevind nie"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Gesig nie gevind nie"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Nie beskikbaar in publieke modus nie"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Nie beskikbaar in leesalleen modus nie"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Teken asseblief in op jou rekening"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Toegang geweier"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Betaling vereis"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Oplegging mag aanstoot gee"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Oplegging misluk"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Geen items gekies nie"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Kon nie lêer skep nie. Gaan asseblief toestemmings na"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Kon nie vouer skep nie. Gaan asseblief toestemmings na"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Kon nie konnekteer nie, probeer asseblief weer"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Tik verifikasiekode"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Ongeldige verifikasiekode, probeer asseblief weer"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Ongeldige wagwoord, probeer asseblief weer"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Eienskap gedeaktiveer"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Geen merker geselekteer"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Geen albums geselekteer nie"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Geen lêers beskikbaar vir aflaai nie"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Kon nie zip-lêer skep nie"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Ongeldige magtiging"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Ongeldige skakel"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Ongeldige naam"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Besig, probeer asseblief later weer"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Die opwek tydperk is %s, maar moet 1 uur of minder wees"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Jou rekening kon nie gekoppel word nie"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Te veel versoeke"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Onvoldoende berging"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kwota oorskry"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Veranderinge suksesvol gestoor"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album geskep"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album gestoor"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s uitgevee"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Albuminhoud gekloon"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Lêer verwyder uit stapel"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Lêer uitgevee"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Seleksie bygevoeg na %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Een inskrywing bygevoeg na %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d inskrywings by %s gevoeg"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Een inskrywing verwyder uit %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d inskrywings verwyder uit %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Rekening geskep"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Rekening gestoor"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Rekening uitgevee"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Stellings gestoor"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Wagwoord verander"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Invoer voltooi in %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Invoer gekanselleer"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "inhoudsopgawe voltooi in %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indekseer van oorspronklikes …"
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indekseer lêers in %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indeksering gekanselleer"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d lêers en %d foto's verwyder"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Skuif lêers van %s af"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopieer lêers van %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Merkers uitgevee"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Merkers gestoor"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Onderwerp gestoor"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Onderwerp uitgevee"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Persoon gestoor"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Persoon uitgevee"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Lêer opgelaai"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d lêers opgelaai in %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Verwerk oplegging..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Oplegging geprosesseer"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Seleksie goedgekeur"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Seleksie geargiveer"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Seleksie herstel"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Seleksie gemerk as privaat"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albums uitgevee"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip geskep in %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Permanent uitgevee"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s geherstel"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Suksesvol geverifieer"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Suksesvol geaktiveer"
|
||||
|
||||
|
||||
@@ -2,10 +2,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: ar\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -13,400 +12,404 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
|
||||
#: messages.go:103
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "حدث خطأ ما حاول مرة أخرى"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "حدث خطأ ما، حاول مرة أخرى"
|
||||
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "غير قادر على فعل ذلك"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "لا يمكن حفظ التغييرات"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "لا يمكن حذفه"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s موجود بالفعل"
|
||||
|
||||
#: messages.go:108
|
||||
msgid "Not found"
|
||||
msgstr "لم يتم العثور على"
|
||||
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "لم يتم العثور"
|
||||
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "لم يتم العثور على الملف"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "الملف كبير جدًا"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "غير مدعوم"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "نوع غير معتمد"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "صيغة غير مدعومة"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "مجلد النسخ الأصلية فارغ"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "الاختيار غير موجود"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "الكيان غير موجود"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "الحساب غير موجود"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "المستخدم غير موجود"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "التصنيف غير موجود"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "الألبوم غير موجود"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "الموضوع غير موجود"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "لم يتم العثور على الشخص"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "الوجه غير موجود"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "غير متاح في الوضع العام"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "غير متوفر في وضع القراءة فقط"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "يرجى تسجيل الدخول إلى حسابك"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "طلب الاذن مرفوض"
|
||||
|
||||
#: messages.go:128
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "تحميل قد يكون مسيئا"
|
||||
|
||||
#: messages.go:129
|
||||
msgid "Upload failed"
|
||||
msgstr "التحميل فشل"
|
||||
msgid "Payment required"
|
||||
msgstr "الدفع مطلوب"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "No items selected"
|
||||
msgstr "لم يتم تحديد الاختيار"
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "المحتوى المرفوع قد يكون مسيئا"
|
||||
|
||||
#: messages.go:131
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "فشل إنشاء الملف ، يرجى التحقق من الأذونات"
|
||||
msgid "Upload failed"
|
||||
msgstr "فشل التحميل"
|
||||
|
||||
#: messages.go:132
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "فشل إنشاء المجلد ، يرجى التحقق من الأذونات"
|
||||
msgid "No items selected"
|
||||
msgstr "لم يتم اختيار المحتوى"
|
||||
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "فشل إنشاء الملف ، يرجى التحقق من الصلاحيات"
|
||||
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "لم يتم إنشاء المجلد ، يرجى التحقق من الصلاحيات"
|
||||
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "تعذر الاتصال ، يرجى المحاولة مرة أخرى"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "أدخل رمز التحقق"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "رمز التحقق غير صالح، يرجى المحاولة مرة أخرى"
|
||||
|
||||
#: messages.go:136
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "كلمة السر غير مطابقة، برجاء حاول مرة أخرى"
|
||||
|
||||
#: messages.go:137
|
||||
msgid "Feature disabled"
|
||||
msgstr "الخاصية معطلة"
|
||||
|
||||
#: messages.go:138
|
||||
msgid "No labels selected"
|
||||
msgstr "لم يتم تحديد تسميات"
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "كلمة السر غير مطابقة، يرجى المحاولة مرة أخرى"
|
||||
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "الخاصية غير مفعلة"
|
||||
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "لم يتم تحديد المعرفات"
|
||||
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "لم يتم تحديد ألبومات"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "لا توجد ملفات متاحة للتنزيل"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "فشل إنشاء ملف مضغوط"
|
||||
msgstr "فشل في إنشاء ملف مضغوط"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "بيانات الاعتماد غير صالحة"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "ارتباط غير صالح"
|
||||
msgstr "رابط غير صالح"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "اسم غير صحيح"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "مشغول ، يرجى المحاولة مرة أخرى في وقت لاحق"
|
||||
msgstr "مشغول، يرجى المحاولة مرة أخرى في وقت لاحق"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "فترة التنبيه هي %s ، لكن يجب أن تكون ساعة واحدة أو أقل"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "لا يمكن ربط حسابك"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "طلبات كثيرة جدا"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "مساحة تخزين غير كافية"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "تم تجاوز الحصة"
|
||||
msgstr "تم تجاوز المساحة المخصصة"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "تم حفظ التغييرات بنجاح"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "تم إنشاء الألبوم"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "تم حفظ الألبوم"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "تم حذف الألبوم %s"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "تم نسخ محتويات الألبوم"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "تمت إزالة الملف من المكدس"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "تم حذف الملف"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "تمت إضافة التحديد إلى %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "تمت إضافة إدخال واحد إلى %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "تمت إضافة %d مدخلات إلى %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "تمت إزالة إدخال واحد من %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "تمت إزالة %d مدخلات من %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "تم إنشاء الحساب"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "تم حفظ الحساب"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "تم حذف الحساب"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "تم حفظ الإعدادات"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "تم تغيير كلمة السر"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "اكتمل الاستيراد في %d ثانية"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "تم إلغاء الاستيراد"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "اكتملت الفهرسة في %d ثانية"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "تتم فهرسة الصور الأصلية ..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "فهرسة الملفات في %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "تم إلغاء الفهرسة"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "تمت إزالة %d ملفات و %d صورة"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "نقل الملفات من %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "نسخ ملفات من %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "تم حذف التصنيفات"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "تم حفظ التصنيف"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "تم حفظ الموضوع"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "تم حذف الموضوع"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "حفظ الشخص"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "تم حذف الشخص"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "تم تحميل الملف"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "تم تحميل %d ملف في %d ثانية"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "جارٍ معالجة التحميل ..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "تمت معالجة التحميل"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "تمت الموافقة على الاختيار"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "تمت أرشفة الاختيار"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "تمت استعادة التحديد"
|
||||
msgstr "تم استعادة المحتوى المحدد"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "تم تحديد الاختيار على أنه خاص"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "تم حذف الألبومات"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "إنشاء الملف المضغوط خلال %d ثوانٍ"
|
||||
msgstr "تم إنشاء الملف المضغوط خلال %d ثوانٍ"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "تم الحذف بشكل نهائي"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "تمت استعادة %s"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "تم التحقق بنجاح"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "تم التنشيط بنجاح"
|
||||
msgstr "تم التفعيل بنجاح"
|
||||
|
||||
#~ msgid "Storage is full"
|
||||
#~ msgstr "التخزين ممتلئ"
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -13,398 +13,402 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Нешта пайшло не так, паўтарыце спробу"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Немагчыма зрабіць гэта"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Не ўдалося захаваць змены"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Немагчыма выдаліць"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s ужо існуе"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Не знойдзена"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Файл не знойдзены"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Файл занадта вялікі"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Не падтрымліваецца"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Тып не падтрымліваецца"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Фармат не падтрымліваецца"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Тэчка арыгіналаў пустая"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Выбар не знойдзены"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Аб'ект не знойдзены"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Уліковы запіс не знойдзены"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Карыстальнік не знойдзены"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Тэг не знойдзены"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Альбом не знойдзены"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Тэма не знойдзена"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Чалавек не знойдзены"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Твар не знойдзены"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Недаступна ў публічным рэжыме"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Недаступна ў рэжыме толькі для чытання"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Калі ласка, увайдзіце ў свой уліковы запіс"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "У доступе адмоўлена"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Патрабуецца аплата"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Запампоўка можа быць абразлівай"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Памылка загрузкі"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Элементы не выбраны"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Не ўдалося стварыць файл, праверце дазволы"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Не атрымалася стварыць папку, праверце дазволы"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Немагчыма падключыцца, паспрабуйце яшчэ раз"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Увядзіце праверачны код"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Няправільны код спраўджання, паўтарыце спробу"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Няправільны пароль, паспрабуйце яшчэ раз"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Функцыя адключана"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Меткі не выбраны"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Альбомы не выбраны"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Няма даступных файлаў для спампоўкі"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Не ўдалося стварыць zip-файл"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Няправільныя ўліковыя даныя"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Няправільная спасылка"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Няправільнае імя"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Заняты, паўтарыце спробу пазней"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Інтэрвал абуджэння складае %s, але павінен быць не больш за 1 гадзіну"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Ваш уліковы запіс не можа быць падключаны"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Занадта шмат запытаў"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Недастаткова месца для захоўвання"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Квота перавышана"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Змены паспяхова захаваны"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Альбом створаны"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Альбом захаваны"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Альбом %s выдалены"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Змест альбома кланаваны"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Файл выдалены са стэка"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Файл выдалены"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Выбар дададзены ў %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Адзін запіс дададзены ў %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d запісы дададзены ў %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Адзін запіс выдалены з %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "Запісы %d выдалены з %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Уліковы запіс створаны"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Уліковы запіс захаваны"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Уліковы запіс выдалены"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Налады захаваны"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Пароль зменены"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Імпарт завершаны праз %d с"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Імпарт адменены"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Індэксацыя завершана ў %d с"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Індэксаванне арыгіналаў..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Індэксацыя файлаў у %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Індэксацыя адменена"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Выдалена %d файлаў і %d фота"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Перамяшчэнне файлаў з %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Капіраванне файлаў з %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Меткі выдалены"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Цэтлік захаваны"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Тэма захавана"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Тэма выдалена"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Чалавек выратаваны"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Асоба выдалена"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Файл запампаваны"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d файлы, загружаныя ў %d с"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Апрацоўка запампоўкі..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Загрузка апрацавана"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Выбар ухвалены"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Выбранае заархівавана"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Выбар адноўлены"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Выбар пазначаны як прыватны"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Альбомы выдалены"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip створаны ў %d с"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Выдалены назаўсёды"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s быў адноўлены"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Паспяхова праверана"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Паспяхова актывавана"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: bg\n"
|
||||
@@ -11,398 +11,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Нещо се е объркало, опитайте отново"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Не можете да го направите"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Промените не могат да бъдат запазени"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Не може да бъде изтрит"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s вече съществува"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Не е намерен"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Файлът не е намерен"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Твърде голям файл"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Не се поддържа"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Неподдържан тип"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Неподдържан формат"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Папката с оригинали е празна"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Изборът не е намерен"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Субектът не е намерен"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Акаунтът не е намерен"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Потребителят не е намерен"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Етикетът не е намерен"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Албумът не е намерен"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Темата не е намерена"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Лицето не е намерено"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Лицето не е намерено"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Не е наличен в публичен режим"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Не е наличен в режим само за четене"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Моля, влезте в профила си"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Достъп отказан"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Изисква се плащане"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Качването може да е обидно"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Файловете не успяха да се качат"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Няма избрани елементи"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Неуспешно създаване на файл, моля, проверете разрешенията"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Неуспешно създаване на папка, моля, проверете разрешенията"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Не може да се свърже, опитайте отново"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Въведете код за верификация"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Невалиден код за потвърждение, моля опитайте отново"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Невалидна парола, моля, опитайте отново"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Функцията е деактивирана"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Няма избрани етикети"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Няма избрани албуми"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Няма налични файлове за изтегляне"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Неуспешно създаване на zip файл"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Невалидни креденции"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Невалидна връзка"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Невалидно име"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Заето, моля, опитайте отново по-късно"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Интервалът на събуждане е %s, но трябва да е 1 час или по-малко"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Вашият акаунт не може да бъде свързан"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Твърде много заявки"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Недостатъчно място за съхранение"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Превишаване на квотата"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Промените са успешно записани"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Създаден албум"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Запазен албум"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Албум %s изтрит"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Съдържанието на албума беше клонирано"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Премахване на файла от стека"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Изтрит файл"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Добавяне на селекция към %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Добавяне на един запис към %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d добавени записи към %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Отстранен е един запис от %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d премахнати записи от %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Създаден акаунт"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Акаунтът запазен"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Изтрит акаунт"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Запазени настройки"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Паролата е променена"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Импортът е завършен за %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Вносът е отменен"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Индексирането е завършено за %d сек"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Индексиране на оригинали..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Индексиране на файлове в %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Отменено индексиране"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Премахнати са %d файлове и %d снимки"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Преместване на файлове от %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Копиране на файлове от %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Изтрити етикети"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Запазен етикет"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Тема: запазени"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Изтрит предмет"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Запазено лице"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Изтрито лице"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Качен файл"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d файлове, качени за %d сек"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Обработка на качването..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Качването е обработено"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Одобрена селекция"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Архивирана селекция"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Възстановена селекция"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Селекция, отбелязана като частна"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Изтрити албуми"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip създаден за %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Постоянно изтрити"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s е възстановена"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Успешно потвърдено"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Успешно активиран"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "S'ha produït un error, torna-ho a provar"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Incapaç de fer-ho"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "No s'han pogut desar els canvis"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "No s'ha pogut suprimir"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s El nom ja existeix"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "No trobat"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "No s'ha trobat el fitxer"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Fitxer massa gran"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Sense suport"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Tipus no compatible"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Format no compatible"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "La carpeta d'originals està buida"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "No s'ha trobat la selecció"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "No s'ha trobat l'entitat"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Compte no trobat"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Usuari no trobat"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "No s'ha trobat l'etiqueta"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "No s'ha trobat l'àlbum"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "No s'ha trobat el tema"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Persona no trobada"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "No s'ha trobat la cara"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "No disponible en mode públic"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "No disponible en mode només de lectura"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Si us plau, inicieu sessió al vostre compte"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Permís denegat"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Pagament requerit"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "La càrrega pot ser ofensiva"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "La càrrega ha fallat"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "No s'ha seleccionat cap element"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "No s'ha pogut crear el fitxer, comproveu els permisos"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "No s'ha pogut crear la carpeta, comproveu els permisos"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "No s'ha pogut connectar, torna-ho a provar"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Introduïu el codi de verificació"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Codi de verificació no vàlid, torneu-ho a provar"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "La contrasenya no és vàlida, torneu-ho a provar"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funció desactivada"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "No s'ha seleccionat cap etiqueta"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "No s'ha seleccionat cap àlbum"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "No hi ha fitxers disponibles per a la baixada"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "No s'ha pogut crear el fitxer zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Credencials incorrectes"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Enllaç no vàlid"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nom no vàlid"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Ocupat, torna-ho a provar més tard"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "L'interval d'activació és %s, però ha de ser d'1 h o menys"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "No s'ha pogut connectar el vostre compte"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Massa peticions"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Emmagatzematge insuficient"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "S'ha superat la quota"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Els canvis s'han desat correctament"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Àlbum creat"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Àlbum desat"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "S'ha suprimit l'àlbum %s"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Contingut de l'àlbum clonat"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "S'ha eliminat el fitxer de la pila"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "S'ha suprimit el fitxer"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "S'ha afegit una selecció a %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "S'ha afegit una entrada a %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d entrades afegides a %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "S'ha eliminat una entrada de %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "S'han eliminat %d entrades de %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Compte creat"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Compte desat"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Compte suprimit"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Configuració desada"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "S’ha canviat la contrasenya"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importació completada en %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importació cancel·lada"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexació completada en %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "S'estan indexant els originals..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexant fitxers a %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "S'ha cancel·lat la indexació"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "S'han eliminat %d fitxers i %d fotos"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "S'estan movent fitxers de %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "S'estan copiant fitxers de %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "S'han suprimit les etiquetes"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "S'ha desat l'etiqueta"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Assumpte desat"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "S'ha suprimit el tema"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Persona salvada"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "S'ha suprimit la persona"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Fitxer penjat"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d fitxers penjats en %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "S'està processant la càrrega..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "S'ha processat la càrrega"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Selecció aprovada"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Selecció arxivada"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "S'ha restaurat la selecció"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "La selecció s'ha marcat com a privada"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Àlbums suprimits"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip creat en %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Esborrat permanentment"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s s'ha restaurat"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Verificat correctament"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "S'ha activat correctament"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Czech <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/cs/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Něco se pokazilo, zkuste to znovu"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Nelze to udělat"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Změny nemohly být uloženy"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Nemohlo být vymazáno"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s již existuje"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nenalezeno"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Soubor nenalezen"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Příliš velký soubor"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Nepodporováno"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Nepodporovaný typ"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nepodporovaný formát"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Složka Originály je prázdná"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Výběr nenalezen"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Subjekt nebyl nalezen"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Účet nenalezen"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Uživatel nenalezen"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Štítek nenalezen"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album nenalezeno"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Předmět nebyl nalezen"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Osoba nebyla nalezena"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Obličej nebyl nalezen"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Není k dispozici ve veřejném módu"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Není k dispozici v režimu pouze pro čtení"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Přihlaste se ke svému účtu"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Přístup zamítnut"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Požadovaná platba"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Nahrané soubory by mohly být urážlivé"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Nahrávání selhalo"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Nebyly vybrány žádné položky"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Vytváření souboru selhalo, zkontrolujte prosím oprávnění"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Vytváření složky selhalo, zkontrolujte prosím oprávnění"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Nemohlo být připojeno, zkuste to prosím znovu"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Vložte ověřovací kód"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Neplatný ověřovací kód, zkuste to prosím znovu"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Neplatné heslo, zkuste to prosím znovu"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funkce deaktivovaná"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Nebyly vybrány žádné štítky"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Nebyla vybrána žádná alba"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Žádné soubory ke stažení k dispozici"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Nebylo možné vytvořit soubor ZIP"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Neplatné údaje"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Neplatný odkaz"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Neplatný jméno"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Zaneprázdněn, zkuste to prosím později"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Interval buzení je %s, ale musí být 1h nebo kratší"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Váš účet se nepodařilo připojit"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Příliš mnoho požadavků"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Nedostatečné skladování"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Překročení kvóty"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Změny byly úspěšně uloženy"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album vytvořeno"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album uloženo"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s vymazáno"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Obsah alba naklonován"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Soubor odstraněn ze stohu"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Soubor vymazán"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Výběr přidán do %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Jeden záznam přidán do %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d záznamů přidáno do %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Jeden záznam odstraněn z %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d záznamů odstraněno z %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Účet vytvořen"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Účet uložen"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Účet vymazán"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Nastavení uloženo"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Heslo změněno"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import dokončen za %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Import zrušen"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexování dokončeno za %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexování originálů..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexování souborů v %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexování zrušeno"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Odstraněno %d souborů a %d fotografií"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Přesouvání souborů z %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopírování souborů z %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Štítky vymazány"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Štítek uložen"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Předmět uložen"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Předmět smazán"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Uložená osoba"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Vymazaná osoba"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Soubor odeslán"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d souborů nahráno za %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Zpracování nahrávání..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Nahrávání bylo zpracováno"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Výběr potvrzen"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Výběr archivován"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Výběr obnoven"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Výběr označen jako Soukromý"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Alba vymazána"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "ZIP vytvořen za %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Trvale smazáno"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s bylo obnoveno"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Úspěšně ověřeno"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Úspěšně aktivováno"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Danish <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/da/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Der gik noget galt, prøv igen"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Det kan ikke lade sig gøre"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Ændringer kunne ikke gemmes"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Kunne ikke slettes"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s findes allerede"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Ikke fundet"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Fil ikke fundet"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Filen er for stor"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Ikke understøttet"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Ikke-understøttet type"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Ikke understøttet format"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Mappen Originaler er tom"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Valg ikke fundet"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Enhed ikke fundet"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Konto ikke fundet"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Bruger ikke fundet"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etiket ikke fundet"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album ikke fundet"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Emne ikke fundet"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Person ikke fundet"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Ansigt ikke fundet"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Ikke tilgængelig i offentlig tilstand"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Ikke tilgængelig i skrivebeskyttet tilstand"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Log ind på din konto"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Tilladelse nægtet"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Betaling påkrævet"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Upload kan være stødende"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Upload mislykkedes"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Ingen emner valgt"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Oprettelse af fil mislykkedes, tjek venligst tilladelser"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Oprettelse af mappe mislykkedes, tjek venligst tilladelser"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Kunne ikke oprette forbindelse, prøv venligst igen"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Indtast verifikations kode"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Ugyldig bekræftelseskode. Prøv venligst igen"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Ugyldig adgangskode, prøv venligst igen"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funktion deaktiveret"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Ingen etiketter valgt"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Ingen album valgt"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Ingen filer til rådighed til download"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Det lykkedes ikke at oprette zip-fil"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Ugyldige legitimationsoplysninger"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Ugyldigt link"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Ugyldigt navn"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Optaget, prøv venligst igen senere"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Vækningsintervallet er %s, men skal være 1 time eller mindre"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Der kunne ikke oprettes forbindelse til din konto"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "For mange anmodninger"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Utilstrækkelig opbevaring"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kvote overskredet"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Ændringer gemt med succes"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album oprettet"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album gemt"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s slettet"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Albumindhold klonet"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Fil fjernet fra stakken"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fil slettet"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Valg tilføjet til %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "En post tilføjet til %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d poster tilføjet til %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "En post fjernet fra %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d poster fjernet fra %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Konto oprettet"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Gemte konto"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Konto slettet"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Indstillinger gemt"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Adgangskode ændret"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import afsluttet efter %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Import annulleret"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indeksering afsluttet efter %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indeksering af originaler..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indeksering af filer i %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indeksering annulleret"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Fjernede %d filer og %d fotos"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Flytter filer fra %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopierer filer fra %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etiketter slettet"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etikette gemt"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Emne gemt"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Emne slettet"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Person gemt"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Person slettet"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Fil uploadet"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d filer uploadet på %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Behandling af upload..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Upload er blevet behandlet"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Udvælgelse godkendt"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Udvælgelse arkiveret"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Udvalgte gendannet"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Udvalgte er markeret som privat"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albums slettet"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip filen blev lavet på %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Permanent slettet"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s er blevet genoprettet"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Verifikation lykkedes"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Aktivering lykkedes"
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"Last-Translator: Admin <hello@photoprism.app>\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: German <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/de/>\n"
|
||||
"Language: de\n"
|
||||
@@ -12,399 +12,403 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
"X-Poedit-Basepath: .\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Etwas ist schief gelaufen, versuche es noch einmal"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Dies ist nicht möglich"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Fehler beim Speichern der Daten"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Konnte nicht gelöscht werden"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s existiert bereits"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nicht gefunden"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Datei konnte nicht gefunden werden"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Datei zu groß"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Wird nicht unterstützt"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Typ wird nicht unterstützt"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nicht unterstütztes Format"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Originals-Verzeichnis ist leer"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Auswahl nicht gefunden"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Keine Daten gefunden"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Unbekannter Account"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Nutzer nicht gefunden"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Kategorie nicht gefunden"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album nicht gefunden"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Unbekanntes Motiv"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Unbekannte Person"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Unbekanntes Gesicht"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Im öffentlichen Modus nicht verfügbar"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Im Nur-Lese-Modus nicht verfügbar"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Bitte melde dich an"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Erlaubnis verweigert"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Zahlung erforderlich"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Inhalt könnte anstößig sein und wurde abgelehnt"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Upload fehlgeschlagen"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Nichts ausgewählt"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Datei konnte nicht erstellt werden"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Ordner konnte nicht erstellt werden"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Verbindung fehlgeschlagen"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Verifizierungscode eingeben"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Ungültiger Verifizierungscode, bitte erneut versuchen"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Ungültiges Passwort"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funktion deaktiviert"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Keine Kategorien ausgewählt"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Keine Alben ausgewählt"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Keine Dateien zum Download verfügbar"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Zip-Datei konnte nicht erstellt werden"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Ungültige Zugangsdaten"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Ungültiger Link"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Ungültiger Name"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Beschäftigt, bitte später erneut versuchen"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Worker-Intervall ist %s, muss aber 1h oder weniger betragen"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Das Konto konnte nicht verbunden werden"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Zu viele Anfragen"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Zu wenig Speicherplatz"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Maximale Anzahl erreicht"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Änderungen erfolgreich gespeichert"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album erstellt"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album gespeichert"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s gelöscht"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Album-Einträge kopiert"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Datei aus Stapel entfernt"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Datei gelöscht"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Auswahl zu %s hinzugefügt"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Ein Eintrag zu %s hinzugefügt"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d Einträge zu %s hinzugefügt"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Ein Eintrag aus %s entfernt"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d Einträge aus %s entfernt"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Konto hinzugefügt"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Konto gespeichert"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Konto gelöscht"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Einstellungen gespeichert"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Passwort geändert"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import in %d s abgeschlossen"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Import abgebrochen"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexierung in %d s abgeschlossen"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexiere Dateien…"
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexiere Dateien in %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexierung abgebrochen"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d Dateien und %d Bilder wurden entfernt"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Verschiebe Dateien von %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopiere Dateien von %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Kategorien gelöscht"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Kategorie gespeichert"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Motiv gespeichert"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Motiv gelöscht"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Person gespeichert"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Person gelöscht"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Datei hochgeladen"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d Dateien hochgeladen in %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Verarbeitung des Uploads..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Der Upload wurde verarbeitet"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Auswahl übernommen"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Auswahl archiviert"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Auswahl wiederhergestellt"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Auswahl als privat markiert"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Alben gelöscht"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip-Datei erstellt in %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Endgültig gelöscht"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s wurde wiederhergestellt"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Erfolgreich verifiziert"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Erfolgreich aktiviert"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: el\n"
|
||||
@@ -11,398 +11,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Κάτι πήγε στραβά, δοκιμάστε ξανά"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Αυτό δεν είναι εφικτό"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Οι αλλαγές δεν μπόρεσαν να αποθηκευτούν"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Δεν μπόρεσε να διαγραφεί"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s υπάρχει ήδη"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Δεν βρέθηκε"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Το αρχείο δεν βρέθηκε"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Πολύ μεγάλο αρχείο"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Ανυποστήρικτος"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Μη υποστηριζόμενος τύπος"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Μη υποστηριζόμενη μορφή"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Ο φάκελος Πρωτότυπα είναι άδειος"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Η επιλογή δεν βρέθηκε"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Η οντότητα δεν βρέθηκε"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Ο λογαριασμός δεν βρέθηκε"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Ο χρήστης δεν βρέθηκε"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Η ετικέτα δεν βρέθηκε"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Η Συλλογή δεν βρέθηκε"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Το Θέμα δεν βρέθηκε"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Το Άτομο δεν βρέθηκε"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Το Πρόσωπο δεν βρέθηκε"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Μη διαθέσιμο κατά τη δημόσια λειτουργία"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "μη διαθέσιμο στην κατάσταση \"μόνο για ανάγνωση\""
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Παρακαλούμε συνδεθείτε και δοκιμάστε ξανά"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Το Άτομο διαγράφηκε"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Απαιτείται πληρωμή"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Η φόρτωση μπορεί να είναι προσβλητική"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Αποτυχία αποστολής"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Δεν έχουν επιλεγεί αντικείμενα"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Απέτυχε η δημιουργία αρχείου, παρακαλούμε ελέγξτε τα δικαιώματα"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Απέτυχε η δημιουργία φακέλου, παρακαλούμε ελέγξτε τα δικαιώματα"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Δεν ήταν δυνατή η σύνδεση, παρακαλώ δοκιμάστε ξανά"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "βάλτε κωδικό επιβεβαίωσης"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Μη έγκυρος κωδικός επαλήθευσης, δοκιμάστε ξανά"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Μη έγκυρος κωδικός πρόσβασης, παρακαλώ δοκιμάστε ξανά"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Λειτουργία απενεργοποιημένη"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Δεν έχουν επιλεγεί ετικέτες"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Δεν έχουν επιλεγεί συλλογές"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Δεν υπάρχουν διαθέσιμα αρχεία για λήψη"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Απέτυχε η δημιουργία αρχείου zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Μη έγκυρα διαπιστευτήρια"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Μη έγκυρος σύνδεσμος"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Μη έγκυρο όνομα"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Απασχολημένος, προσπαθήστε ξανά αργότερα"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Το διάστημα αφύπνισης είναι %s, αλλά πρέπει να είναι 1 ώρα ή λιγότερο"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Ο λογαριασμός σας δεν μπόρεσε να συνδεθεί"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Πάρα πολλά αιτήματα"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Ανεπαρκής αποθήκευση"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Υπέρβαση ποσόστωσης"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Οι αλλαγές αποθηκεύτηκαν επιτυχώς"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Η Συλλογή δημιουργήθηκε"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Η Συλλογή αποθηκεύθηκε"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Η Συλλογή %s διαγράφηκε"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Τα περιεχόμενα της Συλλογής αντιγράφηκαν"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Αφαίρεση αρχείου από τη στοίβα"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Το αρχείο διαγράφηκε"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Η επιλογή προστέθηκε στο %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Μία εγγραφή προστέθηκε στο %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d καταχωρήσεις προστέθηκαν στο %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Μία καταχώρηση αφαιρέθηκε από %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d καταχωρήσεις αφαιρέθηκαν από %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Ο Λογαριασμός δημιουργήθηκε"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Ο Λογαριασμός αποθηκεύθηκε"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Ο Λογαριασμός διαγράφηκε"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Οι ρυθμίσεις αποθηκεύτηκαν"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Ο κωδικός πρόσβασης άλλαξε"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Η εισαγωγή ολοκληρώθηκε σε %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Η εισαγωγή ακυρώθηκε"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Η δημιουργία ευρετηρίου σε %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Δημιουργία ευρετηρίου για τα πρωτότυπα..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Δημιουργία ευρετηρίου αρχείων σε %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Η δημιουργία ευρετηρίου ακυρώθηκε"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Αφαίρεση %d αρχείων και %d φωτογραφιών"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Μετακίνηση αρχείων από %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Αντιγραφή αρχείων από %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Οι Ετικέτες διαγράφηκαν"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Η Ετικέτα αποθηκεύτηκε"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Το Θέμα αποθηκεύθηκε"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Το Θέμα διαγράφηκε"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Το Άτομο αποθηκεύθηκε"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Το Άτομο διαγράφηκε"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Το αρχείο διαγράφηκε"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d αρχεία μεταφορτώθηκαν σε %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Επεξεργασία μεταφόρτωσης..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Η φόρτωση έχει ολοκληρωθεί"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Η επιλογή εγκρίθηκε"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Η επιλογή αρχειοθετήθηκε"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Η επιλογή αποκαταστάθηκε"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Η επιλογή χαρακτηρίστηκε ως ιδιωτική"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Οι Συλλογές διαγράφηκαν"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Το αρχείο συμπίεσης δημιουργήθηκε σε %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Διαγράφηκε μόνιμα"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s έχει αποκατασταθεί"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Επαληθεύτηκε με επιτυχία"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Ενεργοποιήθηκε με επιτυχία"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2022-10-31 16:44+0100\n"
|
||||
"Last-Translator: Michael Mayer <michael@photoprism.org>\n"
|
||||
"Language-Team: \n"
|
||||
@@ -13,395 +13,399 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:128
|
||||
msgid "Upload might be offensive"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:129
|
||||
msgid "Upload failed"
|
||||
msgid "Payment required"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:130
|
||||
msgid "No items selected"
|
||||
msgid "Upload might be offensive"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:131
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgid "Upload failed"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:132
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgid "No items selected"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:133
|
||||
msgid "Could not connect, please try again"
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:134
|
||||
msgid "Enter verification code"
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:135
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:136
|
||||
msgid "Invalid password, please try again"
|
||||
msgid "Enter verification code"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:137
|
||||
msgid "Feature disabled"
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:138
|
||||
msgid "No labels selected"
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:139
|
||||
msgid "No albums selected"
|
||||
msgid "Feature disabled"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:140
|
||||
msgid "No files available for download"
|
||||
msgid "No labels selected"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:141
|
||||
msgid "Failed to create zip file"
|
||||
msgid "No albums selected"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:142
|
||||
msgid "Invalid credentials"
|
||||
msgid "No files available for download"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:143
|
||||
msgid "Invalid link"
|
||||
msgid "Failed to create zip file"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:144
|
||||
msgid "Invalid name"
|
||||
msgid "Invalid credentials"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:145
|
||||
msgid "Busy, please try again later"
|
||||
msgid "Invalid link"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:159
|
||||
msgid "File deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:160
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:161
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgid "File deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgid "Selection added to %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgid "One entry added to %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgid "%d entries added to %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:165
|
||||
msgid "Account created"
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:166
|
||||
msgid "Account saved"
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:167
|
||||
msgid "Account deleted"
|
||||
msgid "Account created"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:168
|
||||
msgid "Settings saved"
|
||||
msgid "Account saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:169
|
||||
msgid "Password changed"
|
||||
msgid "Account deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:170
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgid "Settings saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:171
|
||||
msgid "Import canceled"
|
||||
msgid "Password changed"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgid "Import completed in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:173
|
||||
msgid "Indexing originals..."
|
||||
msgid "Import canceled"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:175
|
||||
msgid "Indexing canceled"
|
||||
msgid "Indexing originals..."
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgid "Indexing files in %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:177
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgid "Indexing canceled"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:179
|
||||
msgid "Labels deleted"
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:180
|
||||
msgid "Label saved"
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:181
|
||||
msgid "Subject saved"
|
||||
msgid "Labels deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:182
|
||||
msgid "Subject deleted"
|
||||
msgid "Label saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:183
|
||||
msgid "Person saved"
|
||||
msgid "Subject saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:184
|
||||
msgid "Person deleted"
|
||||
msgid "Subject deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:185
|
||||
msgid "File uploaded"
|
||||
msgid "Person saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:193
|
||||
msgid "Albums deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:194
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:195
|
||||
msgid "Permanently deleted"
|
||||
msgid "Albums deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgid "Zip created in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:197
|
||||
msgid "Successfully verified"
|
||||
msgid "Permanently deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr ""
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Spanish <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/es/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Algo ha ido mal, inténtalo de nuevo"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Incapaz de hacerlo"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "No se pudieron guardar los cambios"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "No se pudo borrar"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s ya existe"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "No encontrado"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "No se encuentra el archivo"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Archivo demasiado grande"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "No compatible"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Tipo no admitido"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Formato no admitido"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "La carpeta de originales está vacía"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Selección no encontrada"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entidad no encontrada"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Cuenta no encontrada"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Usuario no encontrado"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etiqueta no encontrada"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Álbum no encontrado"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Asunto no encontrado"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Persona no encontrada"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Cara no encontrada"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "No disponible en modo público"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "No está disponible en modo de sólo lectura"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Por favor inicie sesión"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Permiso denegado"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Pago requerido"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "El archivo subido puede ser ofensivo"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Carga fallida"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Ningún elemento seleccionado"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Fallo al crear el archivo, por favor, compruebe los permisos"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Fallo al crear la carpeta, por favor, compruebe los permisos"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "No se pudo conectar, por favor vuelva a intentarlo"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Ingrese el código de verificación"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Código de verificación no válido, inténtalo de nuevo"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Contraseña inválida, por favor vuelva a intentarlo"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Característica desactivada"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Ninguna etiqueta seleccionada"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Ningún álbum seleccionado"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Ningún archivo disponible para descargar"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Fallo al crear el archivo zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Credenciales no válidas"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Enlace inválido"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nombre inválido"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Ocupado, por favor vuelva a intentarlo más tarde"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "El intervalo de activación es %s, pero debe ser 1h o menos"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Su cuenta no pudo ser conectada"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Demasiadas peticiones"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Almacenamiento insuficiente"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Cuota superada"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Cambios guardados con éxito"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Álbum creado"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Álbum guardado"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Álbum %s borrado"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Contenidos del álbum clonados"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Archivo eliminado de la pila"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Archivo eliminado"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Selección añadida a %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Una entrada añadida a %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d entradas añadidas a %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Una entrada eliminada de %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d entradas eliminadas de %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Cuenta creada"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Cuenta guardada"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Cuenta borrada"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Ajustes guardados"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Contraseña cambiada"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importación completada en %d"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importación cancelada"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexación completada em %d"
|
||||
msgstr "Indexación completada en %d"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexando originales..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexando archivos en %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexación cancelada"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Eliminados %d archivos y %d fotos"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Moviendo achivos desde %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Copiando archivos desde %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etiquetas borradas"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etiqueta guardada"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Asunto guardado"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Sujeto eliminado"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Persona salvada"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Persona eliminada"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Archivo cargado"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d archivos subidos en %d"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Procesando la carga..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "La carga ha sido procesada"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Selección aprobada"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Selección archivada"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Selección restaurada"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Selección marcada como privada"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Álbumes borrados"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip creado en %d"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Eliminado permanentemente"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s ha sido restaurado"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Verificado con éxito"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Activado exitosamente"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: et\n"
|
||||
@@ -11,398 +11,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Midagi läks valesti, proovige uuesti"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Seda ei ole võimalik teha"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Muudatuste salvestamine ebaõnnestus"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Kustutamine ebaõnnestus"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s on juba olemas"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Ei leitud"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Faili ei leitud"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Fail on liiga suur"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Toetamata"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Toetamata tüüp"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Mittetoetatud formaat"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Originaalide kaust on tühi"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Valikut ei leitud"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Olemit ei leitud"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Kontot ei leitud"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Kasutajat ei leitud"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Silti ei leitud"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Albumit ei leitud"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Teemat ei leitud"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Isikut ei leitud"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Nägu ei leitud"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Pole avalikus režiimis saadaval"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Pole kirjutuskaitstud režiimis saadaval"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Palun logi oma kontole sisse"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Õigused puuduvad"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Nõutav makse"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Fail võib olla solvav"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Üleslaadimine ebaõnnestus"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Midagi pole valitud"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Faili loomine ebaõnnestus, kontrolli õiguseid"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Kausta loomine ebaõnnestus, kontrolli õiguseid"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Ühendumine ebaõnnestus, palun proovi uuesti"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Sisesta kontrollkood"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Vale kinnituskood, proovige uuesti"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Vale parool, palun proovi uuesti"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funktsioon välja lülitatud"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Ühtegi silti pole valitud"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Ühtegi albumit pole valitud"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Ühtegi faili ei ole allalaadimiseks saadaval"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "ZIP-faili loomine ebaõnnestus"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Kehtetud ligipääsuandmed"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Vigane link"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Vigane nimi"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Hõivatud, palun proovi hiljem uuesti"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Ärkamisintervall on %s, kuid peab olema 1 tund või vähem"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Konto ühendamine ebaõnnestus"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Liiga palju taotlusi"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Ebapiisav ladustamine"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kvoot ületatud"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Muudatused edukalt salvestatud"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album lisatud"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album salvestatud"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s kustutatud"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Albumi sisu kloonitud"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Fail virnast eemaldatud"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fail kustutatud"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Valik lisatud albumisse %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Üks kirje lisatud albumisse %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d kirjet lisatud albumisse %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Üks kirje eemaldatud albumist %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d kirjet eemaldatud albumist %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Konto loodud"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Konto salvestatud"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Konto kustutatud"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Seaded salvestatud"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Parool muudetud"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import tehtud %d sekundiga"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Import tühistatud"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indekseerimine lõpetatud %d sekundiga"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Originaalide indekseerimine..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Failide indekseerimine: %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indekseerimine tühistatud"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Eemaldatud %d faili ja %d fotot"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Failide liigutamine asukohast %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Failide kopeerimine asukohast %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Sildid kustutatud"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Silt salvestatud"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Teema salvestatud"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Teema kustutatud"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Isik salvestatud"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Isik kustutatud"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "File üles laaditud"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d faili üles laaditud %d sekundiga"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Üleslaaditud faili töötlemine..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Üleslaaditud fail on töödeldud"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Valik heaks kiidetud"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Valik arhiveeritud"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Valik taastatud"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Valik privaatseks märgitud"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albumid kustutatud"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "ZIP-fail loodud %d sekundiga"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Lõplikult kustutatud"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s on taastatud"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Edukalt kinnitatud"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Edukalt aktiveeritud"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Arazoren bat izan da. Saiatu berriro"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Hori egin ezinik"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Ezin izan dira aldaketak gorde"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Ezin izan da ezabatu"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s dagoeneko existitzen da"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Ez da aurkitu"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Fitxategia ez da aurkitu"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Fitxategi handiegia"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Onartu gabe"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Onartu gabeko mota"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Onartu gabeko formatua"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Jatorrizkoen karpeta hutsik dago"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Ez da hautapena aurkitu"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Ez da aurkitu entitatea"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Ez da kontua aurkitu"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Ez da erabiltzailea aurkitu"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Ez da etiketa aurkitu"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Ez da aurkitu albuma"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Ez da aurkitu gaia"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Pertsona ez da aurkitu"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Aurpegia ez da aurkitu"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Ez dago eskuragarri modu publikoan"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Ez dago erabilgarri irakurtzeko soilik moduan"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Mesedez, hasi saioa zure kontuan"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Baimena ukatu egin da"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Ordainketa beharrezkoa da"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Kargatzea iraingarria izan daiteke"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Ezin izan da kargatu"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Ez da elementurik hautatu"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Ezin izan da fitxategia sortzean. Egiaztatu baimenak"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Ezin izan da karpeta sortzean. Egiaztatu baimenak"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Ezin izan da konektatu. Saiatu berriro"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Sartu egiaztapen-kodea"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Egiaztapen-kode baliogabea. Saiatu berriro"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Pasahitz baliogabea, saiatu berriro"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Eginbidea desgaituta dago"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Ez da etiketarik hautatu"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Ez dago albumik hautatu"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Ez dago fitxategirik deskargatzeko erabilgarri"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Ezin izan da zip fitxategia sortu"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Kredentzialak baliogabeak"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Esteka baliogabea"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Izen baliogabea"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Lanpetuta, saiatu berriro geroago"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Esnatzeko tartea %s da, baina ordu 1 edo gutxiagokoa izan behar du"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Ezin izan da zure kontua konektatu"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Eskaera gehiegi"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Biltegiratze nahikoa ez"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kuota gainditu da"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Aldaketak ongi gorde dira"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Sortu da albuma"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Albuma gorde da"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "%s albuma ezabatu da"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Albumen edukia klonatu da"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Fitxategia pilatik kendu da"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fitxategia ezabatu da"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Aukeraketa gehitu da %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Sarrera bat gehitu da %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d sarrerak gehitu dira %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Sarrera bat kendu da %s-tik"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d sarrerak kendu dira %s-tik"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Kontua sortu da"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Kontua gorde da"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Kontua ezabatu da"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Ezarpenak gorde dira"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Pasahitza aldatu da"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Inportazioa %d s-an amaitu da"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Inportazioa bertan behera utzi da"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexatzea %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Jatorrizkoak indexatzen..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Fitxategiak indexatzen %s-n"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexazioa bertan behera utzi da"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d fitxategiak eta %d argazkiak kendu dira"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Fitxategiak mugitzen %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "%s fitxategiak kopiatzen"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etiketak ezabatu dira"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etiketa gorde da"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Gaia gorde da"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Gaia ezabatu da"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Pertsona gordeta"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Pertsona ezabatu da"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Kargatu da fitxategia"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d fitxategiak %d s-etan kargatu dira"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Kargaketa prozesatzen..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Kargatzea prozesatu da"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Hautaketa onartu da"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Hautaketa artxibatuta dago"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Hautaketa leheneratu da"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Hautapena pribatu gisa markatu da"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albumak ezabatu dira"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip sortu zen %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Betiko ezabatu da"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s leheneratu da"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Behar bezala egiaztatu da"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Behar bezala aktibatu da"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "یه چیزی اشتباه شد دوباره تلاش کن"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "قادر به انجام آن نیست"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "تغییرات را نمی توان ذخیره کرد"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "نمی توان حذف کرد"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s از قبل وجود دارد"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "پیدا نشد"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "فایل پیدا نشد"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "فایل خیلی بزرگ است"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "پشتیبانی نمی شود"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "نوع پشتیبانی نشده"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "قالب پشتیبانی نشده"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "پوشه اصلی خالی است"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "انتخاب پیدا نشد"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "موجودیت پیدا نشد"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "حساب کاربری پیدا نشد"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "کاربر پیدا نشد"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "برچسب پیدا نشد"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "آلبوم پیدا نشد"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "موضوع پیدا نشد"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "فرد پیدا نشد"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "صورت پیدا نشد"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "در حالت عمومی در دسترس نیست"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "در حالت فقط خواندنی در دسترس نیست"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "لطفا وارد شوید و دوباره امتحان کنید"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "فرد حذف شد"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "پرداخت لازم است"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "آپلود ممکن است توهین آمیز باشد"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "آپلود انجام نشد"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "هیچ موردی انتخاب نشده است"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "فایل ایجاد نشد، لطفا مجوزها را بررسی کنید"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "پوشه ایجاد نشد، لطفا مجوزها را بررسی کنید"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "اتصال برقرار نشد، لطفاً دوباره امتحان کنید"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "کد تایید را وارد کنید"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "کد تأیید نامعتبر است، لطفاً دوباره امتحان کنید"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "رمز عبور نامعتبر است، لطفا دوباره امتحان کنید"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "ویژگی غیرفعال است"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "هیچ برچسبی انتخاب نشده است"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "هیچ آلبومی انتخاب نشده است"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "هیچ فایلی برای دانلود موجود نیست"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "فایل فشرده ایجاد نشد"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "گواهی نامه نامعتبر"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "لینک نامعتبر"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "نام نامعتبر"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "مشغول است، لطفاً بعداً دوباره امتحان کنید"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "فاصله بیداری %s است، اما باید 1 ساعت یا کمتر باشد"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "حساب شما متصل نشد"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "درخواست های خیلی زیاد"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "ذخیره سازی ناکافی"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "از سهمیه فراتر رفت"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "تغییرات با موفقیت ذخیره شد"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "آلبوم ایجاد شد"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "آلبوم ذخیره شد"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "آلبوم %s حذف شد"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "محتویات آلبوم کلون شد"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "فایل از پشته حذف شد"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "فایل حذف شد"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "مورد انتخابی به %s اضافه شد"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "یک مورد به %s اضافه شد"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d مورد به %s اضافه شد"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "یک مورد از %s حذف شد"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d مورد از %s حذف شد"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "حساب کاربری ایجاد شد"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "حساب کاربری ذخیره شد"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "حساب کاربری حذف شد"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "تنظیمات ذخیره شد"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "رمزعبور تغییر کرد"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "وارد کردن در %d ثانیه تکمیل شد"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "وارد کردن لغو شد"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "نمایه سازی در %d ثانیه تکمیل شد"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "نمایه سازی نسخه های اصلی ..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "نمایه سازی فایل ها در %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "نمایه سازی لغو شد"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d فایل و %d عکس حذف شد"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "انتقال فایل ها از %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "کپی کردن فایل ها از %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "برچسب ها حذف شدند"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "برچسب ذخیره شد"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "موضوع ذخیره شد"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "موضوع حذف شد"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "فرد ذخیره شد"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "فرد حذف شد"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "فایل حذف شد"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d فایل در %d ثانیه آپلود شد"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "در حال پردازش آپلود..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "%s بازیابی شده است"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "مورد انتخابی تایید شد"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "مورد انتخابی بایگانی شد"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "مورد انتخابی بازیابی شد"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "مورد انتخابی بهعنوان خصوصی علامتگذاری شد"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "آلبوم حذف شد"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "فایل فشرده در %d ثانیه ایجاد شد"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "برای همیشه حذف شد"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s بازیابی شده است"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "با موفقیت تأیید شد"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "با موفقیت فعال شد"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: fi\n"
|
||||
@@ -11,398 +11,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Jokin meni pieleen, yritä uudelleen"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Se ei onnistu"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Muutoksia ei voitu tallentaa"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Ei voitu poistaa"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s on jo olemassa"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Ei löytynyt"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Tiedostoa ei löydy"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Tiedosto liian suuri"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Ei tuettu"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Tyyppiä ei tueta"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Ei tuettu muoto"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Originaalit-kansio on tyhjä"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Valintaa ei löydy"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entiteettiä ei löydy"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Tiliä ei löydy"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Käyttäjää ei löydy"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Tarraa ei löydy"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Albumia ei löydy"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Aihetta ei löydy"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Henkilöä ei löydy"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Kasvoja ei löydy"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Ei käytettävissä julkisessa tilassa"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Ei käytettävissä vain luku-tilassa"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Kirjaudu sisään tilillesi"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Lupa evätty"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Vaadittu maksu"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Upload saattaa olla loukkaava"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Lataus epäonnistui"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Kohdetta ei ole valittu"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Tiedoston luominen epäonnistui, tarkista käyttöoikeudet"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Kansion luominen epäonnistui, tarkista käyttöoikeudet"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Yhteyttä ei saatu muodostettua, yritä uudelleen"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "syötä vahvistus koodi"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Virheellinen vahvistuskoodi, yritä uudelleen"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Väärä salasana, yritä uudelleen"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Ominaisuus poistettu käytöstä"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Ei valittuja tarroja"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Ei valittuja albumeita"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Tiedostoja ei ole ladattavissa"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Zip-tiedoston luominen epäonnistui"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Virheelliset valtakirjat"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Virheellinen linkki"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Virheellinen nimi"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Varattu, yritä myöhemmin uudelleen"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Heräämisväli on %s, mutta sen on oltava enintään 1h"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Tiliäsi ei voitu yhdistää"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Liian monta pyyntöä"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Riittämätön varastointi"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kiintiö ylitetty"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Muutokset tallennettu onnistuneesti"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Albumi luotu"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Albumi tallennettu"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Albumi %s poistettu"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Albumin sisältö kloonattu"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Tiedosto poistettu pinosta"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Tiedosto poistettu"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Valinta lisätty %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Yksi merkintä lisätty kohtaan %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d merkintöjä lisätty %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Yksi merkintä poistettu kohdasta %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d merkinnät poistettu %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Tili luotu"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Tallennettu tili"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Tili poistettu"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Asetukset tallennettu"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Salasana vaihdettu"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Tuonti valmis %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Tuonti peruutettu"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indeksointi valmis %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Alkuperäiskappaleiden indeksointi..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Tiedostojen indeksointi osoitteessa %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indeksointi peruutettu"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Poistettiin %d tiedostoa ja %d valokuvaa"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Tiedostojen siirtäminen %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Tiedostojen kopiointi %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Tunnisteet poistettu"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Tarra tallennettu"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Aihe tallennettu"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Aihe poistettu"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Tallennettu henkilö"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Henkilö poistettu"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Ladattu tiedosto"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d tiedostoa ladattu %d s aikana"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Käsittelen latausta..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Lataus on käsitelty"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Valinta hyväksytty"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Valinta arkistoitu"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Valinta palautettu"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Valinta merkitty yksityiseksi"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albumit poistettu"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip luotu %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Poistettu pysyvästi"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s on palautettu"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Vahvistettu onnistuneesti"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Aktivointi onnistui"
|
||||
|
||||
|
||||
@@ -2,9 +2,9 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-12 19:30+0000\n"
|
||||
"Last-Translator: jean-louis67 <jean-louis.frenkel@orange.fr>\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: French <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/fr/>\n"
|
||||
"Language: fr\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Quelque chose s'est mal passé, réessayez"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Impossible de faire cela"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Les modifications n'ont pas pu être sauvegardées"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "N'a pas pu être supprimé"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s existe déjà"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Non trouvé"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Fichier non trouvé"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Fichier trop volumineux"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Non pris en charge"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Type non pris en charge"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Format non supporté"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Le dossier des originaux est vide"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Sélection non trouvée"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entité non trouvée"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Compte non trouvé"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Utilisateur non trouvé"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Étiquette non trouvée"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album introuvable"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Sujet non trouvé"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Personne non trouvée"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Visage non trouvé"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Non disponible en mode public"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Non disponible en mode lecture seule"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Veuillez vous connecter avec votre compte"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Permission refusée"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Paiement requis"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Le contenu chargé peut être choquant"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Échec du chargement"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Aucun élément sélectionné"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "La création du fichier a échoué, veuillez vérifier les permissions"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Échec de la création du dossier, veuillez vérifier les permissions"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Échec lors de la connexion, veuillez réessayer"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Entrer le code de vérification"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Code de vérification invalide, veuillez réessayer"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Mot de passe invalide, veuillez réessayer"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Fonctionnalité désactivée"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Aucune étiquette sélectionnée"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Aucun album sélectionné"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Aucun fichier disponible au téléchargement"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Échec de la création du fichier zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Les informations d'identification sont invalides"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Lien invalide"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nom invalide"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Occupé, veuillez réessayer plus tard"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "L'intervalle de réveil est %s, mais doit être inférieur ou égal à 1h"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Votre compte n'a pas pu être connecté"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Trop de demandes"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Espace de stockage insuffisant"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Quota dépassé"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Les modifications ont bien été enregistrées"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album créé"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album sauvegardé"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s supprimé"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Le contenu de l'album a été copié"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Le fichier a été retiré du groupe"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fichier supprimé"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Sélection ajoutée à %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Une entrée a été ajoutée à %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d entrées ont été ajoutées à %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Une entrée a été supprimée de %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d entrées ont été supprimées de %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Compte créé"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Compte sauvegardé"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Compte supprimé"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Paramètres sauvegardés"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Mot de passe modifié"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importation terminée en %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importation annulée"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexation terminée en %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexage des originaux…"
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexation des fichiers de %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexation annulée"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Suppression de %d fichiers et %d photos"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Déplacement de fichiers depuis %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Copie de fichiers depuis %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Étiquettes supprimées"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Étiquettes sauvegardées"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Sujet sauvegardé"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Sujet supprimé"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Personne sauvegardée"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Personne supprimée"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Fichier téléchargé"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d fichiers chargés en %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Traitement du téléchargement..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Le téléchargement a été traité"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Sélection approuvée"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Sélection archivée"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Sélection restaurée"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Sélection marquée comme privée"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albums supprimés"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Archive zip créée en %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Supprimé définitivement"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s a été restauré"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Vérifié avec succès"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Activation réussie"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -18,398 +18,402 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=5; plural=n==1 ? 0 : n==2 ? 1 : (n>2 && n<7) ? 2 :"
|
||||
"(n>6 && n<11) ? 3 : 4;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Chuaigh rud éigin mícheart, bain triail eile as"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Ní féidir é sin a dhéanamh"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Níorbh fhéidir na hathruithe a shábháil"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Níorbh fhéidir a scriosadh"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s ann cheana"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Ní bhfuarthas"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Comhad gan aimsiú"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Comhad ró-mhór"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Gan tacaíocht"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Cineál nach dtacaítear leis"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Formáid nach dtacaítear léi"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Tá fillteán bunghnéithe folamh"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Níor aimsíodh an rogha"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Aonán gan aimsiú"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Cuntas gan aimsiú"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Úsáideoir gan aimsiú"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Níor aimsíodh an lipéad"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Albam gan aimsiú"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Ní bhfuarthas an t-ábhar"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Ní bhfuarthas an duine"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Aghaidh gan aimsiú"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Níl sé ar fáil i mód poiblí"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Níl sé ar fáil i mód inléite amháin"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Logáil isteach i do chuntas le do thoil"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Cead diúltaithe"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Íocaíocht ag teastáil"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "D'fhéadfadh uaslódáil a bheith maslach"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Theip ar an uaslódáil"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Níl aon mhír roghnaithe"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Theip ar chruthú an chomhaid, seiceáil na ceadanna"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Theip ar chruthú fillteán, seiceáil na ceadanna"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Níorbh fhéidir ceangal a dhéanamh, bain triail eile as"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Cuir isteach cód fíorúcháin"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Cód fíoraithe neamhbhailí, bain triail eile as"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Pasfhocal neamhbhailí, bain triail eile as"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Gné díchumasaithe"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Níor roghnaíodh aon lipéid"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Níor roghnaíodh aon albam"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Níl aon chomhaid ar fáil le híoslódáil"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Theip ar chruthú an chomhaid zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Dintiúir neamhbhailí"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Nasc neamhbhailí"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Ainm neamhbhailí"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Gnóthach, bain triail eile as ar ball"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Is é %s an t-eatramh múscail, ach caithfidh sé a bheith 1h nó níos lú"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Níorbh fhéidir do chuntas a nascadh"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "An iomarca iarratas"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Stóráil neamhleor"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Sáraíodh an cuóta"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Sábháladh na hathruithe"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Albam cruthaithe"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Sábháilte albam"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Albam %s scriosta"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Clónáilte ábhar albam"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Baineadh an comhad den chruach"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Scriosadh an comhad"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Cuireadh an rogha le %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Cuireadh iontráil amháin le %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d iontráil curtha le %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Baineadh iontráil amháin de %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d iontráil bainte de %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Cuntas cruthaithe"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Cuntas sábháilte"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Scriosadh an cuntas"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Socruithe sábháilte"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Athraíodh an pasfhocal"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Iompórtáil críochnaithe i %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Cealaíodh an iompórtáil"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Innéacsú curtha i gcrích in %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Buntéacs á innéacsú..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Comhaid á innéacsú in %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Innéacsú cealaithe"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Baineadh %d comhaid agus %d grianghraif"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Comhaid á mbogadh ó %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Comhaid á gcóipeáil ó %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Scriosadh na lipéid"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Lipéad sábháilte"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Ábhar sábháilte"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Scriosadh an t-ábhar"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Sábháladh an duine"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Scriosadh an duine"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Comhad uaslódáilte"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d comhaid uaslódáilte i %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Uaslódáil á phróiseáil..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Próiseáladh an t-uaslódáil"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Faomhadh an roghnúcháin"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Roghnaithe sa chartlann"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Athchóiríodh an roghnúchán"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Roghnú marcáilte mar phríobháideach"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albaim scriosta"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip cruthaithe i %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Scriosta go buan"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s athchóirithe"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "D'éirigh leis a fhíorú"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Cuireadh i ngníomh go rathúil"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: Hebrew <https://translate.photoprism.app/projects/photoprism/"
|
||||
@@ -14,398 +14,402 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
|
||||
"n % 10 == 0) ? 2 : 3));\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "קרתה תקלה נסה שוב"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "לא מסוגל לעשות את זה"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "לא ניתן לשמור שינויים"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "לא ניתן למחיקה"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s כבר קיים"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "לא נמצא"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "הקובץ לא נמצא"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "קובץ גדול מדי"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "אינו נתמך"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "סוג לא נתמך"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "פורמט לא נתמך"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "תיקיית המקור ריקה"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "הבחירה לא נמצאה"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "הישות לא נמצאה"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "החשבון לא נמצא"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "המשתמש לא נמצא"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "התווית לא נמצאה"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "האלבום לא נמצא"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "הנושא לא נמצא"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "אדם לא נמצא"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "הפנים לא נמצאו"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "לא זמין במצב ציבורי"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "לא זמין במצב קריאה בלבד"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "אנא היכנס לחשבון שלך"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "גישה נדחתה"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "נדרש תשלום"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "ההעלאה עשויה להיות פוגענית"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "העלאה נכשלה"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "לא נבחרו פריטים"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "יצירת הקובץ נכשלה, אנא בדוק את ההרשאות"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "יצירת התיקיה נכשלה, אנא בדוק את ההרשאות"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "לא ניתן היה להתחבר, נסה שוב"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "הכנס קוד אימות"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "קוד אימות לא חוקי, אנא נסה שוב"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "סיסמה לא תקינה, נסה שוב"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "התכונה מושבתת"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "לא נבחרו תוויות"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "לא נבחרו אלבומים"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "אין קבצים זמינים להורדה"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "יצירת קובץ ה-zip נכשלה"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "אישורים לא תקינים"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "קישור לא תקין"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "מספר לא תקף"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "עסוק, אנא נסה שוב מאוחר יותר"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "מרווח ההשכמה הוא %s, אך חייב להיות שעה אחת או פחות"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "לא ניתן היה לחבר את החשבון שלך"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "יותר מדי בקשות"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "אחסון לא מספיק"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "חריגה מהמכסה"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "השינויים נשמרו בהצלחה"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "האלבום נוצר"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "האלבום נשמר"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "האלבום %s נמחק"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "תוכן האלבום שוכפל"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "הקובץ הוסר מהאיחוד"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "הקובץ נמחק"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "הבחירה נוספה ל-%s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "רשומה אחת נוספה ל-%s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d רשומות נוספו ל-%s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "רשומה אחת הוסרה מ-%s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d רשומות הוסרו מ-%s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "החשבון נוצר"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "החשבון נשמר"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "החשבון נמחק"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "ההגדרות נשמרו"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "סיסמא שונתה"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "הייבוא הושלם ב-%d שניות"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "הייבוא בוטל"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "האינדוקס הושלם ב-%d שניות"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "מאנדקס קבצי מקור..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "מאנדקס קבצים תוך %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "יצירת האינדקס בוטלה"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "הוסרו %d קבצים ו-%d תמונות"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "מעביר קבצים מ-%s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "מעתיק קבצים מ-%s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "תוויות נמחקו"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "התווית נשמרה"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "הנושא נשמר"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "הנושא נמחק"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "אדם נשמר"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "אדם נמחק"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "הקובץ הועלה"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d קבצים הועלו תוך %d שניות"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "מעבד העלאה..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "ההעלאה עובדה"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "הבחירה אושרה"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "הבחירה הועברה לארכיון"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "הבחירה שוחזרה"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "הבחירה סומנה כפרטית"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "אלבומים נמחקו"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "ה-ZIP נוצר תוך %d שניות"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "נמחק לצמיתות"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s שוחזר"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "אומת בהצלחה"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "הופעל בהצלחה"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: Hindi <https://translate.photoprism.app/projects/photoprism/"
|
||||
@@ -13,398 +13,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n==0 || n==1);\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "कुछ गलत हुआ है, दोबारा कोशिश करें"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "ऐसा करने में असमर्थ"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "परिवर्तन सहेजा नहीं जा सका"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "हटाया नहीं जा सका"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s पहले से मौजूद है"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "नहीं मिला"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "फाइल नहीं मिली"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "बहुत बड़ी फाइल"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "असमर्थित"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "असमर्थित प्रकार"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "असमर्थित प्रारूप"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "मूल फ़ोल्डर खाली है"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "चयन नहीं मिला"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "इकाई नहीं मिली"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "खता नहीं मिला"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "उपयोगकर्ता नहीं मिला"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "लेबल नहीं मिला"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "एल्बम नहीं मिला"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "विषय नहीं मिला"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "व्यक्ति नहीं मिला"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "चेहरा नहीं मिला"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "सार्वजनिक मोड में उपलब्ध नहीं है"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "रीड ओनली मोड में उपलब्ध नहीं है"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "कृपया अपने खाते लॉग इन करें"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "अनुमति नहीं मिली"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "भुगतान आवश्यक"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "अपलोड आपत्तिजनक हो सकता है"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "अपलोड विफल"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "कोई आइटम नहीं चुना गया"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "फ़ाइल बनाने में विफल, कृपया अनुमतियों की जाँच करें"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "फ़ोल्डर बनाने में विफल, कृपया अनुमतियों की जाँच करें"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "कनेक्ट नहीं हो सका, कृपया पुनः प्रयास करें"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "सत्यापन कोड दर्ज करें"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "सत्यापन कोड अमान्य है, कृपया पुनः प्रयास करें"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "अमान्य पासवर्ड, कृपया पुनः प्रयास करें"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "सुविधा अक्षम है"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "कोई लेबल नहीं चुना गया"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "कोई एल्बम नहीं चुना गया"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "डाउनलोड के लिए कोई फाइल उपलब्ध नहीं है"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "ज़िप फ़ाइल बनाने में विफल"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "अवैध प्रत्यय पत्र"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "अमान्य लिंक"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "अमान्य नाम"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "व्यस्त, कृपया बाद में पुन: प्रयास करें"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "वेकअप अंतराल %s है, लेकिन 1h या उससे कम होना चाहिए"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "आपका खाता कनेक्ट नहीं किया जा सका"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "बहुत अधिक अनुरोध"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "अपर्याप्त भंडारण"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "कोटा पूरा हो गया"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "परिवर्तन सफलतापूर्वक सहेजे गए"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "एल्बम बनाया गया"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "एल्बम सहेजा गया"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "एल्बम %s हटाया गया"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "एल्बम सामग्री को क्लोन किया गया"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "स्टैक से फ़ाइल को निकाला गया"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "फ़ाइल हटा दी गई"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "चयन %s में जोड़ा गया"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "एक प्रविष्टि %s में जोड़ी गई"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d प्रविष्टियों को %s में जोड़ा गया"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "%s से एक प्रविष्टि को हटाया गया"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d प्रविष्टियों को %s से हटा दिया गया"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "खाता बन गया"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "खाता सहेजा गया"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "खाता हटाया गया"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "सेटिंग्स को सहेजा गया"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "पासवर्ड बदला गया"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "%d s में आयात पूरा हुआ"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "आयात रद्द कर दिया गया"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "%d s में अनुक्रमण पूरा हुआ"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "अनुक्रमण मूल ..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "%s में फाइलों को अनुक्रमित करना"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "अनुक्रमण रद्द किया गया"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d फ़ाइलों और %d फ़ोटो को हटा दिया गया"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "%s से फाइल चल रही है"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "%s से फाइल कॉपी कर रहा है"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "लेबल हटा दिए गए"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "लेबल सहेजा गया"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "विषय सहेजा गया"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "विषय हटा दिया गया"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "व्यक्ति बचाया"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "व्यक्ति हटाया गया"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "फ़ाइल अपलोड की गई"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d फाइलों को %d में अपलोड किया गया"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "अपलोड संसाधित किया जा रहा है..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "अपलोड संसाधित हो गया है"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "चयन को संग्रहीत किया गया"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "चयन को संग्रहीत किया गया"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "चयन बहाल"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "चयन निजी के रूप में चिह्नित"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "एल्बम हटाए गए"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "%d s में बनाया गया ज़िप"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "स्थायी रूप से हटा दिया गया"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s बहाल कर दिया गया है"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "सफलतापूर्वक सत्यापित"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "सफलतापूर्वक सक्रिय किया गया"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -13,398 +13,402 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Nešto nije u redu, pokušajte ponovno"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Nesposoban to učiniti"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Promjene se nisu mogle spremiti"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Nije moguće izbrisati"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s već postoji"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nije pronađeno"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Datoteka nije pronađena"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Datoteka je prevelika"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Nepodržano"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Nepodržana vrsta"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nepodržani format"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Originalna mapa je prazna"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Odabir nije pronađen"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entitet nije pronađen"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "račun nije pronađen"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Korisnik nije pronađen"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Oznaka nije pronađena"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album nije pronađen"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Predmet nije pronađen"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Osoba nije pronađena"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Lice nije pronađeno"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Nije dostupno u javnom načinu"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "nije dostupno u načinu samo za čitanje"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Molimo prijavite se i pokušajte ponovno"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Osoba je izbrisana"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Potrebno je plaćanje"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Prijenos bi mogao biti uvredljiv"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Prijenos nije uspio"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Nema odabranih stavki"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Izrada datoteke nije uspjela, provjerite dopuštenja"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Izrada mape nije uspjela, provjerite dopuštenja"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Povezivanje nije uspjelo, pokušajte ponovno"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Unesite kontrolni kod"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Nevažeći kontrolni kod, pokušajte ponovno"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Nevažeća lozinka, pokušajte ponovo"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Značajka je onemogućena"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Nije odabrana nijedna oznaka"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Nije odabran nijedan album"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Nema dostupnih datoteka za preuzimanje"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Izrada zip datoteke nije uspjela"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Nevažeće vjerodajnice"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Nevažeća veza"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nevažeći naziv"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Zauzeto, pokušajte ponovo kasnije"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Interval buđenja je %s, ali mora biti 1 sat ili manje"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Vaš račun nije bilo moguće povezati"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Previše zahtjeva"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Nedovoljno prostora za pohranu"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kvota premašena"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Promjene su uspješno spremljene"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album stvoren"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album je spremljen"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s je izbrisan"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Sadržaj albuma je kloniran"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Datoteka je uklonjena iz hrpe"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Datoteka je izbrisana"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Odabir je dodan u %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Jedan unos dodan u %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d unosi dodani u %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Jedan unos uklonjen iz %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d unosi uklonjeni iz %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Račun kreiran"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Račun spremljen"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Račun je izbrisan"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Postavke spremljene"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Lozinka je promijenjena"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Uvoz dovršen za %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Uvoz je otkazan"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indeksiranje dovršeno za %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indeksiranje originala..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indeksiranje datoteka u %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indeksiranje je otkazano"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Uklonjene %d datoteke i %d fotografije"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Premještanje datoteka iz %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopiranje datoteka s %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Oznake su izbrisane"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Oznaka je spremljena"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Predmet je spremljen"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Predmet je izbrisan"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Osoba je spremljena"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Osoba je izbrisana"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Datoteka je izbrisana"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d datoteke prenesene u %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Obrada prijenosa..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Prijenos bi mogao biti uvredljiv"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Odabir odobren"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Odabir je arhiviran"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Odabir je vraćen"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Odabir je označen kao privatan"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albumi su izbrisani"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip stvoren u %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Trajno izbrisano"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "Odabir je vraćen"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Uspješno potvrđeno"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Uspješno aktiviran"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Hungarian <https://translate.photoprism.app/projects/"
|
||||
"photoprism/backend/hu/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Valami rosszul ment, próbálja újra"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Erre képtelen"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Módosításokat nem sikerült menteni"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Nem sikerült törölni"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s már létezik"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nem található"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Fájl nem található"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Túl nagy fájl"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Nem támogatott"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Nem támogatott típus"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nem támogatott formátum"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Az Originals mappa üres"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Kiválasztás nem található"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entitás nem található"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Fiók nem található"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Felhasználó nem található"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Címke nem található"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album nem található"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Tárgy nem található"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Személy nem található"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Arc nem található"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Nyilvános módban nem elérhető"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Nem elérhető olvasói módban"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Kérjük, jelentkezzen be fiókjába"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Engedély megtagadva"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Fizetés szükséges"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "A feltöltött fájl sértő lehet"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Feltöltés sikertelen"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Nincsenek kiválasztva elemek"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Sikertelen fájl létrehozás. Kérjük, ellenőrizze a jogosultságokat"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Sikertelen mappa létrehozás. Kérjük, ellenőrizze a jogosultságokat"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Nem sikerült csatlakozni, próbálja újra"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Adja meg a megerősítő kódot"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Érvénytelen ellenőrző kód. Kérjük, próbálja újra"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Érvénytelen jelszó, próbálkozzon újra"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funkció letiltva"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Nincsenek kiválasztva címkék"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Nincsenek kiválasztott albumok"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Nincsenek letölthető fájlok"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Nem sikerült létrehozni a zip fájlt"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Érvénytelen belépési adatok"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Érvénytelen hivatkozás"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Érvénytelen név"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Túl magas terhelés, próbálkozzon újra később"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Az ébresztési intervallum a %s, de legfeljebb 1 óra lehet."
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "A fiókját nem lehetett csatlakoztatni"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Túl sok kérés"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Elégtelen tárolás"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "A kvóta túllépése"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Módosítások sikeresen mentve"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album létrehozva"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album mentve"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "%s album törölve"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Album tartalma klónozva"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Fájl eltávolítva a halomból"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fájl törölve"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Választék hozzáadva a következőhöz: %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Egy bejegyzés hozzáadva a következőhöz: %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d bejegyzés hozzáadva a következőhöz: %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Egy bejegyzés eltávolítva innen: %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d bejegyzés eltávolítva innen: %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Fiók létrehozva"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Fiók mentve"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Fiók törölve"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Beállítások elmentve"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Jelszó megváltoztatva"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importálás %d másodperc alatt befejeződött"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importálás megszakítva"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexelés %d másodperc alatt befejeződött"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Eredeti dokumentumok indexelése..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Fájlok indexelése itt: %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexelés megszakítva"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d fájl és %d fénykép eltávolítva"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Fájlok áthelyezése innen: %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Fájlok másolása innen: %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Címkék törölve"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Címkék mentve"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Tárgy mentve"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Tárgy törölve"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Személy mentve"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Személy törölve"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Fájl feltöltve"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d fájl feltöltve %d másodperc alatt"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Feltöltött fájlok feldolgozása..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Feltöltött fájlok feldolgozva"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "A kijelölés jóváhagyva"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "A kijelölés archiválva"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "A kijelölés visszaállítva"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "A kijelölés privátként megjelölve"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albumok törölve"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "A tömörített fájl létrejött %d másodperc alatt"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Véglegesen törölve"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s visszaállítva"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Sikeresen ellenőrizve"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Sikeres aktiválás"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Indonesian <https://translate.photoprism.app/projects/"
|
||||
"photoprism/backend/id/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Ada yang salah, coba lagi"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Tidak dapat melakukan itu"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Perubahan tidak dapat disimpan"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Tidak dapat dihapus"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s sudah ada"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Tidak ditemukan"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Berkas tidak ditemukan"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Berkas terlalu besar"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Tidak didukung"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Jenis tidak didukung"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Format yang tidak didukung"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Folder asli kosong"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Pilihan tidak ditemukan"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entitas tidak ditemukan"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Akun tidak ditemukan"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Pengguna tidak ditemukan"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Label tidak ditemukan"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album tidak ditemukan"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Subjek tidak ditemukan"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Orang tidak ditemukan"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Wajah tidak ditemukan"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Tidak tersedia dalam mode publik"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Tidak tersedia dalam mode hanya-baca"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Silakan masuk ke akun Anda"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Izin ditolak"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Diperlukan pembayaran"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Unggahan mungkin menyinggung"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Unggahan gagal"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Tidak ada item yang dipilih"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Gagal membuat file, silakan periksa izin"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Gagal membuat folder, harap periksa izin"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Tidak dapat terhubung, silakan coba lagi"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Masukkan kode verifikasi"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Kode verifikasi tidak valid, silakan coba lagi"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Kata sandi salah, silakan coba lagi"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Fitur dinonaktifkan"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Tidak ada label yang dipilih"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Tidak ada album yang dipilih"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Tidak ada file yang tersedia untuk diunduh"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Gagal membuat file zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Kredensial tidak valid"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Tautan tidak valid"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nama tidak valid"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Sibuk, silakan coba lagi nanti"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Interval wakeup adalah %s, tetapi harus 1 jam atau kurang"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Akun Anda tidak dapat terhubung"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Terlalu banyak permintaan"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Penyimpanan yang tidak memadai"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kuota terlampaui"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Perubahan berhasil disimpan"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album dibuat"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album disimpan"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s dihapus"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Konten album dikloning"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "File dihapus dari tumpukan"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Berkas dihapus"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Pilihan ditambahkan ke %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Satu entri ditambahkan ke %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d entri ditambahkan ke %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Satu entri dihapus dari %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d entri dihapus dari %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Akun dibuat"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Akun disimpan"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Akun dihapus"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Pengaturan disimpan"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Kata sandi diubah"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Impor selesai dalam %d detik"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Impor dibatalkan"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Pengindeksan selesai dalam %d detik"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Mengindeks dokumen asli..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Mengindeks file dalam %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Pengindeksan dibatalkan"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Menghapus %d file dan %d foto"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Memindahkan file dari %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Menyalin file dari %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Label dihapus"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Label disimpan"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Subjek disimpan"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Subjek dihapus"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Orang disimpan"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Orang dihapus"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "File diunggah"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d file diupload di %d detik"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Memproses unggahan..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Unggahan telah diproses"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Pilihan disetujui"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Pilihan diarsipkan"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Pilihan dipulihkan"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Pilihan ditandai sebagai pribadi"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Koleksi album dihapus"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip dibuat dalam %d detik"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Dihapus permanen"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s telah dipulihkan"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Berhasil diverifikasi"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Berhasil diaktifkan"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Italian <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/it/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Qualcosa è andato storto, riprova"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Impossibile farlo"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Le modifiche non possono essere salvate"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Impossibile eliminare"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s esiste già"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Non trovato"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "File non trovato"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "File troppo grande"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Non supportato"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Formato non supportato"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Formato non supportato"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "La cartella degli originali è vuota"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Selezione non trovata"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entità non trovata"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Account non trovato"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Utente non trovato"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etichetta non trovata"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album non trovato"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Soggetto non trovato"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Persona non trovata"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Faccia non trovata"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Non disponibile in modalità pubblica"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Non disponibile in modalità di sola lettura"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Accedere al proprio account"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Permesso negato"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Pagamento obbligatorio"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "L'upload potrebbe essere offensivo"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Upload fallito"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Nessun elemento selezionato"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Impossibile creare il file, si prega di controllare i permessi"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Impossibile creare la cartella, si prega di controllare i permessi"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Impossibile connettersi, si prega di riprovare"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Inserisci codice di verifca"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Codice di verifica errato, prova di nuovo"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Password non valida, si prega di riprovare"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funzionalità disabilitata"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Nessuna etichetta selezionata"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Nessun album selezionato"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Nessun file è disponibile per il download"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Impossibile creare il file zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Credenziali non valide"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Link non valido"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nome non valido"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Occupato, si prega di riprovare più tardi"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "L'intervallo di risveglio è %s, ma deve essere pari o inferiore a 1h"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Non è stato possibile collegare l'account"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Troppe richieste"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Stoccaggio insufficiente"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Quota superata"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Modifiche salvate con successo"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album creato"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album salvato"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s eliminato"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "I contenuti dell'album sono stati duplicati"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "File rimosso dallo stack"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "File eliminato"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Selezione aggiunta a %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Un elemento aggiunto a %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d elementi aggiunti a %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Un elemento rimosso da %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d elementi rimossi da %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Account creato"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Account salvato"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Account eliminato"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Impostazioni salvate"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Password cambiata"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importazione completata in %d secondi"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importazione cancellata"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indicizzazione completata in %d secondi"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indicizzando gli originali..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indicizzazione dei file in %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indicizzazione cancellata"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Rimossi %d file e %d foto"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Spostamento dei file da %s in corso"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Copia dei file da %s in corso"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etichette eliminate"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etichetta salvata"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Soggetto salvato"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Soggetto cancellato"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Persona salvata"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Persona cancellata"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "File caricato"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d file caricati in %d secondi"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Elaborazione del caricamento..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Il caricamento è stato elaborato"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Selezione approvata"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Selezione archiviata"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Selezione ripristinata"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Selezione impostata come privata"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Album eliminati"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip creato in %d secondi"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Eliminato permanentemente"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s è stato ripristinato"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Verifica avvenuta con successo"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Attivazione avvenuta con successo"
|
||||
|
||||
|
||||
@@ -2,408 +2,412 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Japanese <https://translate.photoprism.app/projects/"
|
||||
"photoprism/backend/ja/>\n"
|
||||
"Language: ja_JP\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
|
||||
#: messages.go:103
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "問題が発生しました。もう一度やり直してください"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:104
|
||||
msgid "Unable to do that"
|
||||
msgstr "実行できませんでした"
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "何かが間違っています。もう一度やり直してください"
|
||||
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "その操作はできません"
|
||||
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "変更を保存できませんでした"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "削除できませんでした"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s は既に存在します"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "見つかりませんでした"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "ファイルが見つかりませんでした"
|
||||
|
||||
#: messages.go:110
|
||||
msgid "File too large"
|
||||
msgstr "ファイルサイズが大きすぎます"
|
||||
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "ファイルが大きすぎます"
|
||||
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "サポートされていません"
|
||||
|
||||
#: messages.go:112
|
||||
msgid "Unsupported type"
|
||||
msgstr "サポートされていないタイプ"
|
||||
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "サポートされていない形式です"
|
||||
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "非対応のフォーマットです"
|
||||
|
||||
#: messages.go:114
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Originalsフォルダーが空です"
|
||||
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Originals フォルダーは空です"
|
||||
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "選択した項目は存在しません"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "エンティティが見つかりません"
|
||||
|
||||
#: messages.go:117
|
||||
msgid "Account not found"
|
||||
msgstr "アカウントは存在しません"
|
||||
|
||||
#: messages.go:118
|
||||
msgid "User not found"
|
||||
msgstr "ユーザは存在しません"
|
||||
msgid "Account not found"
|
||||
msgstr "アカウントが存在しません"
|
||||
|
||||
#: messages.go:119
|
||||
msgid "Label not found"
|
||||
msgstr "ラベルは存在しません"
|
||||
msgid "User not found"
|
||||
msgstr "ユーザーが存在しません"
|
||||
|
||||
#: messages.go:120
|
||||
msgid "Album not found"
|
||||
msgstr "アルバムは存在しません"
|
||||
msgid "Label not found"
|
||||
msgstr "ラベルが存在しません"
|
||||
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "アルバムが存在しません"
|
||||
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "件名が見つかりません"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "人が見つかりません"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "顔を検出できませんでした"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "公開モードでは利用できません"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "読み込み専用モードでは利用できません"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "アカウントにログインしてください"
|
||||
|
||||
#: messages.go:127
|
||||
msgid "Permission denied"
|
||||
msgstr "アクセス拒否"
|
||||
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "アクセスが拒否されました"
|
||||
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "要支払い"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "アップロードされた項目に過激なものが含まれている可能性があります"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "アップロード失敗"
|
||||
msgstr "アップロードに失敗しました"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "項目が選択されていません"
|
||||
|
||||
#: messages.go:131
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "ファイルの作成に失敗しました、権限を確認してください"
|
||||
|
||||
#: messages.go:132
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "フォルダの作成に失敗しました、権限を確認してください"
|
||||
|
||||
#: messages.go:133
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "接続できませんでした、再度試してみてください"
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "ファイルの作成に失敗しました。権限を確認してください"
|
||||
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "フォルダの作成に失敗しました。権限を確認してください"
|
||||
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "接続できませんでした。もう一度お試しください"
|
||||
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "認証コードを入力してください"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "認証コードが無効です。もう一度お試しください"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "不正なパスワードです、再度試してみてください"
|
||||
msgstr "不正なパスワードです。もう一度お試しください"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "機能が無効になりました"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "ラベルが選択されていません"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "アルバムが選択されていません"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "ダウンロードできるファイルはありません"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "zip ファイルの作成に失敗しました"
|
||||
|
||||
#: messages.go:142
|
||||
msgid "Invalid credentials"
|
||||
msgstr "不正な認証情報"
|
||||
|
||||
#: messages.go:143
|
||||
msgid "Invalid link"
|
||||
msgstr "不正なリンク"
|
||||
|
||||
#: messages.go:144
|
||||
msgid "Invalid name"
|
||||
msgstr "無効なバケット名"
|
||||
msgid "Invalid credentials"
|
||||
msgstr "正しくない認証情報です"
|
||||
|
||||
#: messages.go:145
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "混雑しています、後で再試行してください"
|
||||
msgid "Invalid link"
|
||||
msgstr "正しくないリンクです"
|
||||
|
||||
#: messages.go:146
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "ウェイクアップ間隔は%sであるが、1h以下でなければならない"
|
||||
msgid "Invalid name"
|
||||
msgstr "無効な名前です"
|
||||
|
||||
#: messages.go:147
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "お客様のアカウントに接続できませんでした"
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "他の処理中です。後で再試行してください"
|
||||
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "ウェイクアップ間隔は %s ですが、1時間以内で指定する必要があります"
|
||||
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "アカウントに接続できませんでした"
|
||||
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "リクエストが多すぎます"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "ストレージ不足"
|
||||
msgstr "ストレージが不足しています"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "ノルマ超過"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "変更が正常に保存されました"
|
||||
|
||||
#: messages.go:154
|
||||
msgid "Album created"
|
||||
msgstr "アルバムを作成しました"
|
||||
|
||||
#: messages.go:155
|
||||
msgid "Album saved"
|
||||
msgstr "アルバムを保存しました"
|
||||
|
||||
#: messages.go:156
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "アルバム %s を削除しました"
|
||||
msgid "Album created"
|
||||
msgstr "アルバムが作成されました"
|
||||
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "アルバムが保存されました"
|
||||
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "アルバム %s が削除されました"
|
||||
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "アルバムの内容が複製されました"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "スタックからファイルが削除されました"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "ファイルが削除されました"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "選択した項目が %s に追加されました"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "1 件の項目が %s に追加されました"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d 件の項目が %s に追加されました"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "1 件の項目が %s から削除されました"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d 件の項目が %s から削除されました"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "アカウントが作成されました"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "アカウントが保存されました"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "アカウントが削除されました"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "設定が保存されました"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "パスワードが変更されました"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "インポートが %d 秒で完了しました"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "インポートが取り消されました"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "インデックスが %d 秒で完了しました"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "オリジナルの項目をインデックスしています..."
|
||||
msgstr "originals をインデックスしています..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "%s 内のファイルをインデックスしています"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "インデックスが取り消されました"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d 件のファイルと %d 件の写真が削除されました"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "%s からファイルを移動しています"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "%s からファイルをコピーしています"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "ラベルが削除されました"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "ラベルが保存されました"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "保存対象"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "件名 削除"
|
||||
msgstr "件名を削除しました"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "保存された人"
|
||||
|
||||
#: messages.go:184
|
||||
msgid "Person deleted"
|
||||
msgstr "削除された人"
|
||||
|
||||
#: messages.go:185
|
||||
msgid "File uploaded"
|
||||
msgstr "アップロードされたファイル"
|
||||
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "人を削除しました"
|
||||
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "ファイルがアップロードされました"
|
||||
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d 件のファイルを %d 秒でアップロードしました"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "アップロードの処理..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "アップロードが処理されました"
|
||||
msgstr "アップロードが完了しました"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "選択した項目が承認されました"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "選択した項目がアーカイブされました"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "選択した項目が復元されました"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "選択した項目をプライベートにしました"
|
||||
msgstr "選択した項目がプライベートに設定されました"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "アルバムが削除されました"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "%d 秒で zip ファイルを作成しました"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "永久に削除"
|
||||
msgstr "完全に削除されました"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s が復元されました"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "検証に成功しました"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "正常に有効化されました"
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Korean <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/ko/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "문제가 발생했습니다. 다시 시도하세요."
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "그렇게 할 수 없습니다."
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "변경 사항을 저장할 수 없음"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "삭제할 수 없음"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s가 이미 존재함"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "찾을 수 없음"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "파일을 찾을 수 없음"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "파일이 너무 큽니다"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "지원되지 않음"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "지원되지 않는 유형"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "지원되지 않는 형식"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "원본 폴더가 비어 있습니다"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "선택 항목을 찾을 수 없음"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "항목을 찾을 수 없음"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "계정을 찾을 수 없음"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "사용자를 찾을 수 없음"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "라벨을 찾을 수 없음"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "앨범을 찾을 수 없음"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "제목을 찾을 수 없음"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "사람을 찾을 수 없음"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "얼굴을 찾을 수 없음"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "공개 모드에서는 사용할 수 없음"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "읽기 전용 모드에서는 사용할 수 없음"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "귀하의 계정에 로그인하십시오"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "권한이 없음"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "결제 필요"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "업로드가 불쾌할 수 있습니다"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "업로드 실패"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "선택된 항목이 없습니다"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "파일 생성에 실패했습니다. 권한을 확인하세요"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "폴더를 만들지 못했습니다. 권한을 확인하세요"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "연결할 수 없습니다. 다시 시도해 주세요"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "인증코드를 입력하세요"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "잘못된 인증 코드입니다. 다시 시도해 주세요."
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "비밀번호가 잘못되었습니다. 다시 시도해 주세요"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "기능 비활성화됨"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "선택한 라벨이 없습니다"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "앨범이 선택되지 않았습니다"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "다운로드할 수 있는 파일이 없습니다"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "zip 파일 생성 실패"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "잘못된 자격 증명"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "유효하지 않은 링크입니다"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "잘못된 이름"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "바쁘니 나중에 다시 시도해 주세요"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "깨우기 간격은 %s이지만 1시간 이하여야 합니다"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "계정을 연결할 수 없습니다"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "너무 많은 요청"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "저장 공간 부족"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "할당량 초과"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "변경사항이 성공적으로 저장되었습니다"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "앨범 생성됨"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "앨범 저장됨"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "앨범 %s이(가) 삭제됨"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "복제된 앨범 콘텐츠"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "스택에서 제거된 파일"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "파일이 삭제됨"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "선택 항목이 %s에 추가됨"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "%s에 항목 1개 추가됨"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d 항목이 %s에 추가됨"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "%s에서 항목 1개 삭제됨"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d 항목이 %s에서 제거됨"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "계정 생성됨"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "계정이 저장됨"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "계정 삭제됨"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "설정 저장됨"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "비밀번호 변경됨"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "%d초 후에 가져오기 완료"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "가져오기 취소됨"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "%d초 후에 인덱싱 완료"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "원본 색인 생성 중..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "%s에서 파일 색인 생성"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "인덱싱 취소됨"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "파일 %d개와 사진 %d개를 삭제했습니다"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "%s에서 파일 이동"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "%s에서 파일 복사"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "라벨 삭제됨"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "라벨이 저장되었습니다"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "주제가 저장됨"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "제목 삭제됨"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "사람이 저장됨"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "삭제된 사람"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "업로드된 파일 1개"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d개의 파일이 %d초에 업로드됨"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "업로드 처리 중..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "업로드가 처리되었습니다"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "선택 항목 승인됨"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "선택 항목 보관됨"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "선택 항목 복원됨"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "비공개로 표시된 선택"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "앨범 삭제됨"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "%d초에 생성된 우편번호"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "영구 삭제됨"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s이(가) 복원되었습니다"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "성공적으로 확인되었습니다"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "성공적으로 활성화되었습니다"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: Kurdish <https://translate.photoprism.app/projects/photoprism/"
|
||||
@@ -13,398 +13,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Tiştek xelet derket, dîsa biceribîne"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Nikarin vê yekê bikin"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "گۆڕانکاریەکان پاشەکەوت نەکراوە"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "نەتوانرا بسڕێتەوە"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s پێشتر هەیە"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "نەدۆزرایەوە"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "دۆسیەکە نەدۆزرایەوە"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Pelê pir mezin e"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Piştgirî nekirin"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Cureyê ne piştgirî"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Format nayê destek kirin"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Peldanka orjînal vala ye"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "هەڵبژاردەکان نەدۆزرایەوە"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "هیچ ئەلبومێکی نەدۆزیوەتەوە"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "هەژمارەکە نەدۆزرایەوە"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "بەکارهێنەرەکە نەدۆزرایەوە"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "پێناسەکە نەدۆزرایەوە"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "ئەلبومەکە نەدۆزرایەوە"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "ناونیشان"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "هیچ ئەلبومێکی نەدۆزیوەتەوە"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "نەدۆزرایەوە"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "بەردەست نیە بۆ دۆخی گشتی"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "بەردەست نییە لە دۆخی تەنها-خوێندنەوە"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "تکایە تێپەڕبە پاشان هەوڵبدەرەوە"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "ئەلبومەکان سڕانەوە"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Pêdivî bi dravdanê heye"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "بارکردن لەوانەیە سووکایەتی بێت"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "بارکردنەکە سەرکەوتوو نەبوو"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "هیچ ئایتمێک دەستنیشان نەکراوە"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "شکست لە دروستکردنی پەڕگە، تکایە مۆڵەتەکان بپشکنە"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "شکست لە دروستکردنی بوخچە، تکایە مۆڵەتەکان بپشکنە"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "نەیتوانی پەیوەندی بگرێت، تکایە دووبارە هەوڵ بدەوە"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Koda verastkirinê binivîse"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Koda verastkirinê nederbasdar e, ji kerema xwe dîsa biceribîne"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "تێپەرەوشە هەڵەیە، تکایە جارێکی تر هەوڵبدەوە"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "تایبەتمەندی ناچالاک کراوە"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "هیج لە پێناسەکان هەڵنەبژێردراوە"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "هیج لە ئەلبومەکان هەڵنەبژێردراوە"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "هیچ پەڕگەیەک ئامادە نیە بۆ داگرتن"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "دروستکردنی فایلی زیپ سەرکەوتوو نەبوو"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "زانیارییەکان نادروستە"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "بەستەرەکە نادروستە"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "بەروارێکی نادروست"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "تێپەرەوشە هەڵەیە، تکایە جارێکی تر هەوڵبدەوە"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Navbera hişyarbûnê %s ye, lê divê 1h an kêmtir be"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Hesabê te nehat girêdan"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Pir daxwazî"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Depo ne bes e"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kota derbas kir"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "گۆڕانکاریەکان سەرکەوتوانە پاشەکەوتکرا"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "ئەلبومەکە دروستکرا"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "ئەلبومەکە پاشەکەوتکرا"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "ئەلبومی %s سڕایەوە"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "ناوەڕۆکەکانی ئەلبومەکە هاووێنە کرا"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "دۆسیەکە کۆژاوەتەوە لە کەڵەکەکە"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "پەڕگە سڕایەوە"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "دەستنیشان کراو زیادکرایە %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "یەک تێکراو زیاد کرایە %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d تێکراو زیاد کرایە %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "یەک تێکراو لابرا لە %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d تێکراو لابرا لە %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "هەژمارەکە دروستکرا"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "هەژمارەکە پاشەکەوتکرا"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "هەژمارەکە سڕایەوە"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "ڕێکخستنەکان پاشەکەوتکرا"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "تێپەڕەوشە گۆڕدرا"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "هاوردن تەواو بوو بە %d چرکە"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "هاوردن هەڵوەشێنرایەوە"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "نیشانە کردن تەواو بوو بە %d چرکە"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "نیشانەکردنی ڕەسەنەکان..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "نیشانەکردنی پەڕگەکان لە %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "نیشانەکردن هەڵوەشێنرایەوە"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "لابردنی %d پەڕگە و %d وێنە"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "گواستنەوەی پەڕگە لە %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "کۆپی کردنی پەڕگە لە%s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "پێناسەکان سڕانەوە"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "پێناسەکە پاشەکەوتکرا"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "ناونیشان"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "ناونیشان"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "ڕێکخستنەکان پاشەکەوتکراو"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "ئەلبومەکان سڕانەوە"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "پەڕگە سڕایەوە"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d پەڕگە بارکرە بە %d چرکە"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Pêvajoya barkirinê..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "بارکردن لەوانەیە سووکایەتی بێت"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "دەستنیشان کراو پەسەند کرا"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "هەڵبژاردەکە ئەرشیفکرا"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "هەڵبژاردەکە دووبارەکۆگاکرایەوە"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "دەستنیشانکراوەکان کران بە تایبەتی"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "ئەلبومەکان سڕایەوە"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "زیپ بە %d چرکە دروستکرا"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "بە هەمیشەیی سڕاوەتەوە"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "هەڵبژاردەکە دووبارەکۆگاکرایەوە"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Bi serketî verast kirin"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Bi serketî hate aktîfkirin"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: lt\n"
|
||||
@@ -13,398 +13,402 @@ msgstr ""
|
||||
"Plural-Forms: nplurals=3; plural=(n % 10 == 1 && (n % 100 < 11 || n % 100 > "
|
||||
"19)) ? 0 : ((n % 10 >= 2 && n % 10 <= 9 && (n % 100 < 11 || n % 100 > 19)) ? "
|
||||
"1 : 2);\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Kažkas nepavyko, bandykite dar kartą"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Nepavyksta to padaryti"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Pakeitimų nepavyko išsaugoti"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Negalima ištrinti"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s jau egzistuoja"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nerasta"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Failo rasti nepavyko"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Per didelis failas"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Nepalaikoma"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Nepalaikomas tipas"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nepalaikomas formatas"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Originalų aplankas tuščias"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Pasirinkimas nerastas"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Subjektas nerastas"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Paskyra nerasta"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Vartotojas nerastas"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etiketė nerasta"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Albumas nerastas"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Tema nerasta"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Asmuo nerastas"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Veidas nerastas"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Negalima naudoti viešuoju režimu"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Negalima naudoti tik skaitymo režimu"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Prisijunkite prie savo paskyros"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Priėjimas neimanomas"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Reikalingas mokėjimas"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Įkėlimas gali būti įžeidžiantis"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Įkelti nepavyko"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Nėra pasirinktų elementų"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Nepavyko sukurti failo, patikrinkite leidimus"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Nepavyko sukurti aplanko, patikrinkite leidimus"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Nepavyko prisijungti, bandykite dar kartą"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Įveskite patvirtinimo kodą"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Neteisingas patvirtinimo kodas, bandykite dar kartą"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Netinkamas slaptažodis, bandykite dar kartą"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funkcija išjungta"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Nėra pasirinktų etikečių"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Nėra pasirinktų albumų"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Nėra parsisiunčiamų failų"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Nepavyko sukurti zip failo"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Neteisingi įgaliojimai"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Netinkama nuoroda"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Netinkamas pavadinimas"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Užimta, bandykite vėliau"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Budinimo intervalas yra %s, bet turi būti ne ilgesnis kaip 1 val"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Nepavyko prisijungti prie jūsų paskyros"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Per daug prašymų"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Nepakankama saugykla"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Viršyta kvota"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Pakeitimai sėkmingai išsaugoti"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Sukurtas albumas"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Išsaugotas albumas"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Albumas %s pašalintas"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Klonuotas albumo turinys"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Failas pašalintas iš kamino"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Ištrintas failas"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Pasirinkimas pridėtas prie %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Vienas įrašas pridėtas prie %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d įrašai, įtraukti į %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Vienas įrašas pašalintas iš %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d įrašai pašalinti iš %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Sukurta paskyra"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Išsaugota paskyra"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Ištrinta paskyra"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Nustatymai išsaugoti"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Slaptažodis pakeistas"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importas baigtas per %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importas atšauktas"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indeksavimas baigtas per %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Originalų indeksavimas..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Failų indeksavimas %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indeksavimas atšauktas"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Pašalinti %d failai ir %d nuotraukos"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Failų perkėlimas iš %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Failų kopijavimas iš %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Ištrintos etiketės"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Išsaugota etiketė"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Tema - išsaugotas"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Išbrauktas objektas"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Išsaugotas asmuo"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Išbrauktas asmuo"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Įkeltas failas"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d failai įkelti per %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Įkėlimo apdorojimas..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Įkėlimas apdorotas"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Patvirtinta atranka"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Atranka archyvuota"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Atkurta atranka"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Atranka pažymėta kaip privati"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Ištrinti albumai"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip sukurta %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Visam laikui ištrintas"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s buvo atkurta"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Sėkmingai patvirtinta"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Sėkmingai suaktyvinta"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-15 12:54+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -17,395 +17,399 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:128
|
||||
msgid "Upload might be offensive"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:129
|
||||
msgid "Upload failed"
|
||||
msgid "Payment required"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:130
|
||||
msgid "No items selected"
|
||||
msgid "Upload might be offensive"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:131
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgid "Upload failed"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:132
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgid "No items selected"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:133
|
||||
msgid "Could not connect, please try again"
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:134
|
||||
msgid "Enter verification code"
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:135
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:136
|
||||
msgid "Invalid password, please try again"
|
||||
msgid "Enter verification code"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:137
|
||||
msgid "Feature disabled"
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:138
|
||||
msgid "No labels selected"
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:139
|
||||
msgid "No albums selected"
|
||||
msgid "Feature disabled"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:140
|
||||
msgid "No files available for download"
|
||||
msgid "No labels selected"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:141
|
||||
msgid "Failed to create zip file"
|
||||
msgid "No albums selected"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:142
|
||||
msgid "Invalid credentials"
|
||||
msgid "No files available for download"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:143
|
||||
msgid "Invalid link"
|
||||
msgid "Failed to create zip file"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:144
|
||||
msgid "Invalid name"
|
||||
msgid "Invalid credentials"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:145
|
||||
msgid "Busy, please try again later"
|
||||
msgid "Invalid link"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:159
|
||||
msgid "File deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:160
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:161
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgid "File deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgid "Selection added to %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgid "One entry added to %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgid "%d entries added to %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:165
|
||||
msgid "Account created"
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:166
|
||||
msgid "Account saved"
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:167
|
||||
msgid "Account deleted"
|
||||
msgid "Account created"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:168
|
||||
msgid "Settings saved"
|
||||
msgid "Account saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:169
|
||||
msgid "Password changed"
|
||||
msgid "Account deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:170
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgid "Settings saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:171
|
||||
msgid "Import canceled"
|
||||
msgid "Password changed"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgid "Import completed in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:173
|
||||
msgid "Indexing originals..."
|
||||
msgid "Import canceled"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:175
|
||||
msgid "Indexing canceled"
|
||||
msgid "Indexing originals..."
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgid "Indexing files in %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:177
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgid "Indexing canceled"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:179
|
||||
msgid "Labels deleted"
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:180
|
||||
msgid "Label saved"
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:181
|
||||
msgid "Subject saved"
|
||||
msgid "Labels deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:182
|
||||
msgid "Subject deleted"
|
||||
msgid "Label saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:183
|
||||
msgid "Person saved"
|
||||
msgid "Subject saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:184
|
||||
msgid "Person deleted"
|
||||
msgid "Subject deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:185
|
||||
msgid "File uploaded"
|
||||
msgid "Person saved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:193
|
||||
msgid "Albums deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:194
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:195
|
||||
msgid "Permanently deleted"
|
||||
msgid "Albums deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgid "Zip created in %d s"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:197
|
||||
msgid "Successfully verified"
|
||||
msgid "Permanently deleted"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr ""
|
||||
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr ""
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Kesilapan telah berlaku, cuba lagi"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Tidak mampu berbuat demikian"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Perubahan tidak dapat disimpan"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Tidak dapat dipadamkan"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s sudah wujud"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Tidak ditemui"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Fail tidak dijumpai"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Fail terlalu besar"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Tidak disokong"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Jenis tidak disokong"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Format yang tidak disokong"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Folder asal kosong"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Pilihan tidak ditemui"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entiti tidak ditemui"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "akaun tidak dijumpai"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Pengguna tidak dijumpai"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Label tidak ditemui"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album tidak ditemui"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Subjek tidak ditemui"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Orang tidak ditemui"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Wajah tidak ditemui"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Tidak tersedia dalam mod awam"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Tidak tersedia dalam mod baca sahaja"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Sila log masuk ke akaun anda"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Kebenaran ditolak"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Bayaran diperlukan"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Muat naik mungkin menyinggung perasaan"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Muat naik gagal"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Tiada item dipilih"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Gagal membuat fail, sila semak kebenaran"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Gagal membuat folder, sila semak kebenaran"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Tidak dapat menyambung, sila cuba lagi"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Masukkan kod pengesahan"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Kod pengesahan tidak sah, sila cuba lagi"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Kata laluan tidak sah, sila cuba lagi"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Ciri dilumpuhkan"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Tiada label dipilih"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Tiada album dipilih"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Tiada fail tersedia untuk dimuat turun"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Gagal membuat fail zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Bukti kelayakan tidak sah"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Pautan tidak sah"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nama tidak sah"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Sibuk, sila cuba lagi nanti"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Selang bangun ialah %s, tetapi mestilah 1j atau kurang"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Akaun anda tidak dapat disambungkan"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Terlalu banyak permintaan"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Storan tidak mencukupi"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kuota melebihi"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Perubahan berjaya disimpan"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album dibuat"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album disimpan"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s dipadamkan"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Kandungan album diklon"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Fail dialih keluar daripada timbunan"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fail dipadamkan"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Pilihan ditambahkan pada %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Satu entri ditambahkan pada %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "Entri %d ditambahkan pada %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Satu entri dialih keluar daripada %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d entri dialih keluar daripada %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Akaun dibuat"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Akaun disimpan"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Akaun dipadamkan"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Tetapan Disimpan"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Kata laluan ditukar"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import selesai dalam %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Import dibatalkan"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Pengindeksan selesai dalam %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Mengindeks asal..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Mengindeks fail dalam %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Pengindeksan dibatalkan"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Mengalih keluar fail %d dan foto %d."
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Memindahkan fail dari %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Menyalin fail daripada %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Label dipadamkan"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Label disimpan"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Subjek disimpan"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Subjek dipadamkan"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Orang yang diselamatkan"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Orang dipadamkan"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Fail dimuat naik"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "Fail %d dimuat naik dalam %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Memproses muat naik..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Muat naik telah diproses"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Pemilihan diluluskan"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Pemilihan diarkibkan"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Pemilihan dipulihkan"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Pilihan ditandakan sebagai peribadi"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Album dipadamkan"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip dibuat dalam %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Dipadamkan secara kekal"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s telah dipulihkan"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Berjaya disahkan"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Berjaya diaktifkan"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://translate.photoprism.app/projects/"
|
||||
"photoprism/backend/nb_NO/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Noe gikk galt, prøv igjen"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Ikke i stand til å gjøre det"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Kan ikke lagre endringer"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Kan ikke slettes"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s eksisterer allerede"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Ikke funnet"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Fil ikke funnet"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Filen er for stor"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Ustøttet"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Ikke støttet type"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Ikke støttet format"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Originaler-mappen er tom"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Finner ikke utvalg"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Enheten ble ikke funnet"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Konto ikke funnet"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Bruker ikke funnet"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Merkelapp ikke funnet"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album ikke funnet"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Emnet ble ikke funnet"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Person ikke funnet"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Ansikt ikke funnet"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Ikke tilgjengelig i offentlig modus"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "ikke tilgjengelig i skrivebeskyttet modus"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Logg inn på kontoen din"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Ingen tilgang"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Betaling kreves"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Opplastingen kan være støtende"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Opplasting mislyktes"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Ingen elementer valgt"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Kunne ikke opprette fil, vennligst sjekk tillatelser"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Kunne ikke opprette mappe, vennligst sjekk tillatelser"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Kunne ikke koble til, vennligst prøv igjen"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Angi verifikasjonskode"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Ugyldig bekreftelseskode. Prøv igjen"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Ugyldig passord, vennligst prøv igjen"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Tjeneste deaktivert"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Ingen merkelapper valgt"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Ingen albumer valgt"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Ingen filer tilgjengelig for nedlasting"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Kunne ikke opprette zip-arkiv"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Ugyldige innloggingsdetaljer"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Ugyldig lenke"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Ugyldig navn"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Opptatt. Prøv igjen senere"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Oppvåkningsintervallet er %s, men må være 1 time eller mindre"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Kontoen din kunne ikke kobles til"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "For mange forespørsler"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Utilstrekkelig lagringsplass"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kvote overskredet"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Endringene ble lagret"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album opprettet"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album lagret"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s slettet"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Albuminnhold duplisert"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Fil fjernet fra samling"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fil slettet"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Utvalg lagt til %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "En oppføring lagt til %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d oppføringer lagt til %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "En oppføring fjernet fra %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d oppføringer fjernet fra %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Konto opprettet"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Konto lagret"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Konto slettet"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Innstillinger lagret"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Passord endret"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import fullført på %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Import avbrutt"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indeksering fullført på %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indekserer originaler…"
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indekserer filer i %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indeksering avbrutt"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Fjernet %d filer og %d foto"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Flytter filer fra %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopierer filer fra %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Merkelapper slettet"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Merkelapper lagret"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Emnet er lagret"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Emnet er slettet"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Person reddet"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Person slettet"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Fil lastet opp"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d filer lastet opp på %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Behandler opplasting..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Opplastingen er behandlet"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Utvalg godkjent"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Utvalg arkivert"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Utvalg gjenopprettet"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Utvalg markert som privat"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Album slettet"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip opprettet på %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Permanent slettet"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s har blitt gjenopprettet"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Vellykket verifisert"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Vellykket aktivert"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Dutch <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/nl/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Er ging iets mis, probeer het opnieuw"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Dat kan niet"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Wijzigingen kunnen niet worden opgeslagen"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Kan niet verwijderd worden"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s bestaat al"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Niet gevonden"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Bestand niet gevonden"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Bestand te groot"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Niet ondersteund"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Niet-ondersteund type"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Niet ondersteund formaat"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "De map Originelen is leeg"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Selectie niet gevonden"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entiteit niet gevonden"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Account niet gevonden"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Gebruiker niet gevonden"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Label niet gevonden"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album niet gevonden"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Onderwerp niet gevonden"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Persoon niet gevonden"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Gezicht niet gevonden"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Niet beschikbaar in publieke modus"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Niet beschikbaar in alleen-lezen modus"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Log in op je account"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Toegang geweigerd"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Betaling vereist"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Upload kan aanstootgevend zijn"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Uploaden mislukt"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Geen items geselecteerd"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Bestand aanmaken mislukt, controleer alstublieft de rechten"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Folder aanmaken mislukt, controleer alstublieft de rechten"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Kan niet verbinden, probeer alstublieft opnieuw"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Verificatiecode invoeren"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Ongeldige verificatiecode. Probeer het opnieuw"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Fout wachtwoord, probeer alstublieft opnieuw"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Functie uitgeschakeld"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Geen labels geselecteerd"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Geen albums geselecteerd"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Geen bestanden beschikbaar om te downloaden"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Maken van zip-bestand is mislukt"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Ongeldige inloggegevens"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Ongeldige link"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Ongeldige mapnaam"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Bezet, probeer het later nog eens"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Het wekinterval is %s, maar moet 1 uur of minder zijn"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Uw account kon niet worden aangesloten"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Te veel verzoeken"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Onvoldoende opslag"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Quota overschreden"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Wijzigingen succesvol opgeslagen"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album aangemaakt"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album opgeslagen"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s verwijderd"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Albuminhoud gekopieerd"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Bestand uit stapel verwijderd"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Bestand verwijderd"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Selectie toegevoegd aan %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Eén item toegevoegd aan %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d items toegevoegd aan %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Eén item verwijderd uit %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d items verwijderd uit %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Account aangemaakt"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Account opgeslagen"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Account verwijderd"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Instellingen opgeslagen"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Wachtwoord gewijzigd"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importeren voltooid in %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importeren geannuleerd"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexeren voltooid in %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Originelen indexeren…"
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Bestanden indexeren in %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexeren geannuleerd"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d bestanden en %d foto’s verwijderd"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Bestanden verplaatsen uit %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Bestanden kopiëren uit %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Labels verwijderd"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Labels opgeslagen"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Onderwerp opgeslagen"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Onderwerp verwijderd"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Persoon gered"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Persoon verwijderd"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Bestand geüpload"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d bestanden geüpload in %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Verwerking upload..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Upload is verwerkt"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Selectie goedgekeurd"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Selectie gearchiveerd"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Selectie hersteld"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Selectie gemarkeerd als privé"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albums verwijderd"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip gemaakt in %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Permanent verwijderd"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s is hersteld"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Met succes geverifieerd"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Met succes geactiveerd"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Polish <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/pl/>\n"
|
||||
@@ -13,400 +13,404 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Coś poszło nie tak, spróbuj jeszcze raz"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Nie da się tego zrobić"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Nie można zapisać zmian"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Nie można usunąć"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s już istnieje"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nie znaleziono"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Plik nie został znaleziony"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Plik jest zbyt duży"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Nieobsługiwane"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Nieobsługiwany typ"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nieobsługiwany format"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Folder oryginałów jest pusty"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Nie znaleziono wyboru"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Nie znaleziono podmiotu"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Konto nie znalezione"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Użytkownik nie znaleziony"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etykieta nie została odnaleziona"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album nie został znaleziony"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Temat nie został znaleziony"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Osoba nie została znaleziona"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Twarz nie została znaleziona"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Niedostępne w trybie publicznym"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Niedostępne w trybie tylko do odczytu"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Proszę zalogować się na swoje konto"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Brak uprawnień"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Wymagana płatność"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Przesyłane dane mogą być obraźliwe"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Przesyłanie nie powiodło się"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Nie wybrano żadnych elementów"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Nie można utworzyć pliku, sprawdź uprawnienia"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Nie można utworzyć folderu, sprawdź uprawnienia"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Nie można się połączyć, spróbuj ponownie"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Wprowadź kod weryfikacyjny"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Nieprawidłowy kod weryfikacyjny. Spróbuj ponownie"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Nieprawidłowe hasło, spróbuj ponownie"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funkcja wyłączona"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Nie wybrano etykiet"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Nie wybrano albumów"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Brak plików do pobrania"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Nie udało się utworzyć pliku zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Nieprawidłowe dane logowania"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Nieprawidłowy link"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nieprawidłowa nazwa"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Zajęty, spróbuj ponownie później"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr ""
|
||||
"Interwał wybudzenia %s jest nieprawidłowy, powinien być równy lub mniejszy "
|
||||
"niż 1 godzina"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Twoje konto nie może być podłączone"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Zbyt wiele żądań"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Niewystarczająca pamięć"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Przekroczony limit"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Zmiany zostały pomyślnie zapisane"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album został utworzony"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album został zapisany"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s został usunięty"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Album został sklonowany"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Plik został rozgrupowany"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Plik został usunięty"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Wybór dodany do %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Dodano jeden wpis do %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d wpisy dodane do %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Usunięto jeden wpis z %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d wpisy usunięte z %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Konto utworzone"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Konto zapisane"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Konto usunięte"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Ustawienia zapisane"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Hasło zostało zmienione"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import zakończony w %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Import został anulowany"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indeksowanie zakończone w %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indeksowanie oryginałów…"
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indeksowanie plików w %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indeksowanie anulowane"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Usunięto %d plików i %d zdjęć"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Przenoszenie plików z %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopiowanie plików z %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Usunięto etykiety"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etykieta zapisana"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Przedmiot zapisany"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Przedmiot usunięty"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Osoba zapisana"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Osoba usunięta"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Przesłany plik"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d plików przesłano w %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Przetwarzanie uploadu..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Przesyłanie zostało przetworzone"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Wybór zatwierdzony"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Wybór zarchiwizowany"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Wybór został przywrócony"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Wybór oznaczony jako prywatny"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albumy zostały usunięte"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip utworzony w %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Trwale usunięty"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s zostało przywrócone"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Pomyślnie zweryfikowano"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Pomyślnie aktywowano"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Portuguese <https://translate.photoprism.app/projects/"
|
||||
"photoprism/backend/pt/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Algo correu mal, tente novamente"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Incapaz de fazer isso"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "As mudanças não foram salvas"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Não foi possível excluir"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s já existe"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Não encontrado"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Arquivo não encontrado"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Arquivo muito grande"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Não compatível"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Tipo não suportado"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Formato sem suporte"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "A pasta dos originais está vazia"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Seleção não encontrada"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entidade não encontrada"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Conta não encontrada"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Usuário não encontrado"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etiqueta não encontrada"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Álbum não encontrado"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Assunto não encontrado"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Pessoa não encontrada"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Rosto não encontrado"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Indisponível em modo público"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Não disponível no modo somente leitura"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Faça o login em sua conta"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Permissão negada"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Pagamento obrigatório"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Envio pode ser ofensivo"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Envio falhou"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Sem itens selecionados"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Falha ao criar arquivo, por favor cheque as permissões"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Falha ao criar pasta, por favor cheque as permissões"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Não foi possível conectar, por favor tente novamente"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Digite o código de verificação"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Código de verificação inválido, tente novamente"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Senha inválida, por favor tente novamente"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Recurso Desativado"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Sem etiquetas selecionadas"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Sem álbuns selecionados"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Sem arquivos disponíveis para baixar"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Falha ao criar arquivo zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Credenciais inválidas"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Link inválido"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nome inválido"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Em uso, por favor tente novamente mais tarde"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "O intervalo de despertar é %s, mas deve ser de 1h ou menos"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Sua conta não pôde ser conectada"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Demasiados pedidos"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Armazenamento insuficiente"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Quota excedida"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "As mudanças foram salvas com sucesso"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Álbum criado"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Álbum salvo"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Álbum %s excluído"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Conteúdo do álbum copiado"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Arquivo removido da pilha"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Arquivo excluído"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Seleção adicionada a %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Uma entrada adicionada a %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d entradas adicionadas a %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Uma entrada removida de %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d entradas removidas de %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Conta criada"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Conta salva"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Conta excluída"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Configurações salvas"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Senha alterada"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importação completa em %d"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importação cancelada"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexação completa em %d"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexando originais..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexando arquivos em %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexação cancelada"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Removidos %d arquivos e %d fotos"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Movendo arquivos de %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Copiando arquivos de %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etiquetas excluídas"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etiqueta salva"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Assunto salvo"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Assunto eliminado"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Pessoa salva"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Pessoa apagada"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Arquivo carregado"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d arquivos enviados em %d"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "A processar carregamento..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "O Upload foi processado"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Seleção aprovada"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Seleção arquivada"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Seleção restaurada"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Seleção marcada como privada"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Álbuns excluídos"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip criado em %d"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Permanentemente excluídas"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s foi restaurado"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Verificado com sucesso"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Ativado com sucesso"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://translate.photoprism.app/"
|
||||
"projects/photoprism/backend/pt_BR/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Algo deu errado, tente novamente"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Incapaz de fazer isso"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "As mudanças não foram salvas"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Não foi possível excluir"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s já existe"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Não encontrado"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Arquivo não encontrado"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Arquivo muito grande"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Não compatível"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Tipo não suportado"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Formato sem suporte"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "A pasta dos originais está vazia"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Seleção não encontrada"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entidade não encontrada"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Conta não encontrada"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Usuário não encontrado"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etiqueta não encontrada"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Álbum não encontrado"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Assunto não encontrado"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Pessoa não encontrada"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Rosto não encontrado"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Indisponível em modo público"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Não disponível no modo somente leitura"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Faça o login em sua conta"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Permissão negada"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Pagamento obrigatório"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Envio pode ser ofensivo"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Envio falhou"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Sem itens selecionados"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Falha ao criar arquivo, por favor cheque as permissões"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Falha ao criar pasta, por favor cheque as permissões"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Não foi possível conectar, por favor tente novamente"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Digite o código de verificação"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Código de verificação inválido, tente novamente"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Senha inválida, por favor tente novamente"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Recurso Desativado"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Sem etiquetas selecionadas"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Sem álbuns selecionados"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Sem arquivos disponíveis para baixar"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Falha ao criar arquivo zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Credenciais inválidas"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Link inválido"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nome inválido"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Ocupado, por favor tente mais tarde"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "O intervalo de despertar é %s, mas deve ser de 1h ou menos"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Sua conta não pôde ser conectada"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Muitas solicitações"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Armazenamento insuficiente"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Cota excedida"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "As mudanças foram salvas com sucesso"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Álbum criado"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Álbum salvo"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Álbum %s excluído"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Conteúdo do álbum copiado"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Arquivo removido da pilha"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Arquivo excluído"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Seleção adicionada a %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Uma entrada adicionada a %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d entradas adicionadas a %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Uma entrada removida de %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d entradas removidas de %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Conta criada"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Conta salva"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Conta excluída"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Configurações salvas"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Senha alterada"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importação completa em %d"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importação cancelada"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexação completa em %d"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexando originais..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexando arquivos em %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexação cancelada"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Removidos %d arquivos e %d fotos"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Movendo arquivos de %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Copiando arquivos de %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etiquetas excluídas"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etiqueta salva"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Assunto salvo"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Assunto eliminado"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Pessoa salva"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Pessoa apagada"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Arquivo carregado"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d arquivos enviados em %d"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Processamento de upload..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "O Upload foi processado"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Seleção aprovada"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Seleção arquivada"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Seleção restaurada"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Seleção marcada como privada"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Álbuns excluídos"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip criado em %d"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Permanentemente excluídas"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s foi restaurado"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Verificado com sucesso"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Ativado com sucesso"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Romanian <https://translate.photoprism.app/projects/"
|
||||
"photoprism/backend/ro/>\n"
|
||||
@@ -13,398 +13,402 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
|
||||
"20)) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Ceva nu a mers bine, încercați din nou"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Nu se poate face asta"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Modificările nu au putut fi salvate"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Nu a putut fi șters"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s deja există"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nu a fost găsit"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Fișier nedescoperit"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Fișier prea mare"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Neacceptat"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Tip neacceptat"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Format neacceptat"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Dosarul Originals este gol"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Selecția nu a fost găsită"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entitatea nu a fost găsită"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Contul nu a fost găsit"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Utilizatorul nu a fost găsit"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Eticheta nu a fost găsită"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album nedescoperit"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Subiectul nu a fost găsit"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Persoana nu a fost găsită"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Fața nu a fost găsită"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Nu este disponibil în modul public"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Nu este disponibil în modul doar pentru citire"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Vă rugăm să vă conectați la contul dvs"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Permisiune refuzată"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Plata necesară"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Încărcarea poate fi ofensatoare"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Încărcarea a eșuat"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Niciun element selectat"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Nu a reușit să creeze fișierul, vă rugăm să verificați permisiunile"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Nu s-a reușit crearea dosarului, vă rugăm să verificați permisiunile"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Nu s-a putut conecta, vă rugăm să încercați din nou"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Introduceți codul de verificare"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Cod de verificare nevalid, încercați din nou"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Parolă invalidă, vă rugăm să încercați din nou"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Caracteristică dezactivată"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Nu sunt selectate etichete"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Nu sunt selectate albume"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Nu există fișiere disponibile pentru descărcare"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Nu a reușit să creeze fișierul zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Acreditări nevalabile"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Legătură invalidă"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Nume invalid"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Ocupat, vă rugăm să încercați din nou mai târziu"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Intervalul de trezire este %s, dar trebuie să fie de 1h sau mai puțin"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Contul dvs. nu a putut fi conectat"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Prea multe cereri"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Depozitare insuficientă"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Cota depășită"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Modificări salvate cu succes"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album creat"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album salvat"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s șters"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Conținutul albumului a fost clonat"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Fișier eliminat din stivă"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fișier șters"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Selecție adăugată la %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "O intrare adăugată la %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d intrări adăugate la %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "O intrare eliminată din %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d intrări eliminate din %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Cont creat"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Cont salvat"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Cont șters"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Setări salvate"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Parola a fost schimbată"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import finalizat în %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importul a fost anulat"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexare finalizată în %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexarea originalelor..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexarea fișierelor în %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexare anulată"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Sau eliminat %d fișiere și %d fotografii"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Mutarea fișierelor din %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Copierea fișierelor din %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etichete șterse"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etichetă salvată"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Subiect salvat"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Subiect eliminat"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Persoană salvată"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Persoană eliminată"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Fișier încărcat"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d fișiere încărcate în %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Procesarea încărcării..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Încărcarea a fost procesată"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Selecție aprobată"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Selecție arhivată"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Selecție restabilită"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Selecție marcată ca fiind privată"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albume șterse"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Fișierul Zip creat în %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Șterse definitiv"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s a fost restaurat"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Verificat cu succes"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Activat cu succes"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Russian <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/ru/>\n"
|
||||
@@ -13,398 +13,402 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Что-то пошло не так, попробуйте еще раз"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Невозможно сделать это"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Изменения не будут сохранены"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Не будет удалено"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s уже существует"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Не найдено"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Файл не найден"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Слишком большой файл"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Не поддерживается"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Неподдерживаемый тип"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Неподдерживаемый формат"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Папка оригиналов пуста"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Выделение не найдено"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Сущность не найдена"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Учетная запись не найдена"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Пользователь не найден"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Метка не найдена"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Альбом не найден"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Объект не найден"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Человек не найден"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Лицо не найдено"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Не доступно в публичном режиме"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Недоступно в режиме только для чтения"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Пожалуйста, войдите в свой аккаунт"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Доступ запрещен"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Требуется оплата"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Загрузка может быть оскорбительной"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Загрузка не удалась"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Нет выделенных элементов"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Не удалось создать файл, проверьте права доступа"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Не удалось создать папку, проверьте права доступа"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Нет соединения, попробуйте еще раз"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "введите код подтверждения"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Неверный код подтверждения. Повторите попытку."
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Неверный пароль, пожалуйста попробуйте еще раз"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Данная возможность отключена"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Нет выделенных меток"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Нет выделенных альбомов"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Нет файлов, доступных для скачивания"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Не удалось создать zip-файл"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Неверные учетные данные"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Неверная ссылка"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Неприемлемое имя"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Занят, повторите попытку позже"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Интервал пробуждения составляет %s, но должен быть 1 час или меньше"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Ваш аккаунт не удалось подключить"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Слишком много запросов"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Недостаточно места для хранения"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Квота превышена"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Изменения сохранены"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Альбом создан"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "\\альбом сохранен"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Альбом %s удален"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Содержимое альбома скоприровано"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Файл удален из очереди"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Файл удалён"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Выделение добавлено к %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Один элемент добавлен к %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d элементов добавлено к %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Один элемент удален из %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d элементов удалено из %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Учетная запись создана"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Учетная запись сохранена"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Учетная запись удалена"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Настройки сохранены"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Пароль изменен"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Импортирование завершено за %d c"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Импортирование отменено"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Индексирование завершено за %d с"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Индексирование Оригиналов..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Индексирование файлов в %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Индексирование отменено"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Удаление %d файлов и %d фотографий"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Перемещение файлов из %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Копирование файлов из %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Метки удалены"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Метки сохранены"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Тема сохранена"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Тема удалена"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Человек спасен"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Лицо удалено"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Файл загружен"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d файлов загружено за %d с"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Обработка загрузки..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Загрузка была обработана"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Утвержденный выбор"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Выбранное помещено в архив"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Выбранное восстановлено"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Выбранное помечено как приватное"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Альбом удален"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip архив создан за %d с"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Постоянно удаляется"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s был восстановлен"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Успешно проверено"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Успешно активировано"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Slovak <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/sk/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Niečo sa pokazilo, skúste to znova"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Nemožno to urobiť"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Zmeny sa neuložili"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Nepodarilo sa odstrániť"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s už existuje"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Nenájdené"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Súbor nenájdený"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Príliš veľký súbor"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Nepodporované"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Nepodporovaný typ"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nepodporovaný formát"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Priečinok Originály je prázdny"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Výber nenájdený"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Subjekt nenájdený"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Účet nenájdený"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Užívateľ nenájdený"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Štítok nenájdený"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album nenájdený"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Predmet nenájdený"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Osoba nenájdená"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Tvár nenájdená"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Nedostupné vo verejnom móde"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "nedostupné v móde len pre čítanie"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Prosím prihláste sa a skúste znova"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Osoba odstránená"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Požadovaná platba"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Nahrané súbory môžu byť urážlivé"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Odovzdávanie zlyhalo"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Neboli vybraté žiadne položky"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Vytváranie súboru zlyhalo, prosím skontrolujte oprávnenia"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Vytváranie zložky zlyhalo, prosím skontrolujte oprávnenia"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Nebolo možné sa pripojiť, skúste to znova"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Zadajte overovací kód"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Neplatný overovací kód, skúste to znova"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Nesprávne heslo, skúste to znova"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funkcia vypnutá"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Neboli vybraté žiadne štítky"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Neboli vybraté žiadne albumy"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Žiadne súbory na stiahnutie k dispozícií"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Nebolo možné vytvoriť súbor ZIP"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Neplatné údaje"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Neplatný odkaz"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Neplatné meno"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Systém zaneprázdnený, prosím skúste znovu neskôr"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Interval prebúdzania je %s, ale musí byť najviac 1 h"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Vaše konto sa nepodarilo pripojiť"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Príliš veľa požiadaviek"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Nedostatočné skladovanie"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Prekročenie kvóty"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Zmeny úspešne uložené"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album vytvorený"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album uložený"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s vymazaný"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Obsah albumu prekopírovaný"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Súbor odstránený zo stohu"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Súbor odstránený"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Výber pridaný do %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Jeden záznam pridaný do %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d záznamov pridaných do %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Jeden záznam odstránený z %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d záznamov odstránených z %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Účet vytvorený"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Účet uložený"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Účet odstránený"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Nastavenia uložené"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Heslo zmenené"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Import hotový za %d sekúnd"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Import zrušený"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexovanie hotové za %d sekúnd"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexovanie originálov..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexovanie súborov v %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexovanie zrušené"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Bolo odstránených %d súborov a %d fotiek"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Presúvanie súborov z %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopírovanie súborov z %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Štítky odstránené"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Štítok uložený"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Predmet uložený"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Predmet odstránený"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Osoba uložená"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Osoba odstránená"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Súbor odstránený"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d súborov nahraných za %d sekúnd"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Spracovanie nahrávania..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Nahrané súbory môžu byť urážlivé"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Označenie schválené"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Označenie archivované"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Označenie obnovené"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Označenie označené ako súkromné"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albumy odstránené"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Súbor ZIP vytvorený za %d sekúnd"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Trvalo odstránené"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s bolo obnovené"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Úspešne overené"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Úspešne aktivované"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: sl\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || "
|
||||
"n%100==4 ? 2 : 3;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Nekaj je šlo narobe, poskusite znova"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Tega ni mogoče storiti"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Sprememb ni bilo mogoče shraniti"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Ni bilo mogoče izbrisati"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s že obstaja"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Ga ni mogoče najti"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Datoteka ni najdena"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Prevelika datoteka"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Nepodprto"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Nepodprta vrsta"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nepodprt format"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Mapa Originali je prazna"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Izbor ni najden"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entiteta ni bila najdena"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Račun ni najden"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Uporabnik ne obstaja"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Oznaka ni bila najdena"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Album ni najden"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Zadeva ni bila najdena"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Oseba ni bila najdena"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Obraza ni mogoče najti"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Ni na voljo v javnem načinu"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Ni na voljo v načinu samo za branje"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Prijavite se v svoj račun"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Dovoljenje Zavrnjeno"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Zahtevano plačilo"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Nalaganje je lahko žaljivo"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Nalaganje neuspešno"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Ni izbranih elementov"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Neuspešno ustvarjanje datoteke, preverite dovoljenja"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Neuspešno ustvarjanje mape, preverite dovoljenja"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Ne morem vzpostaviti povezave, poskusite znova"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "vnesi potrditveno kodo"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Neveljavna koda za preverjanje, poskusite znova"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Nepravilno geslo, poskusite znova"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funkcija je onemogočena"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Ni izbranih nalepk"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Ni izbranih albumov"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Za prenos ni na voljo nobenih datotek"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Ni uspelo ustvariti datoteke zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Neveljavne poverilnice"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Neveljavna povezava"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Neveljavno ime"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Zaseden, poskusite znova pozneje"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Interval prebujanja je %s, vendar mora biti 1h ali manj"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Vašega računa ni bilo mogoče povezati"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Preveč zahtev"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Nezadostno skladiščenje"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kvota je presežena"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Spremembe so bile uspešno shranjene"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Ustvarjen album"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Shranjen album"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s izbrisano"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Vsebina albuma klonirana"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Datoteka odstranjena iz sklada"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Izbrisana datoteka"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Izbor dodan v %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "En vnos dodan v %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d vnosi dodani v %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "En vnos odstranjen iz %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d vnosi odstranjeni iz %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Ustvarjen račun"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Shranjen račun"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Račun je izbrisan"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Nastavitve shranjene"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Geslo spremenjeno"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Uvoz se zaključi v %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Uvoz preklican"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indeksiranje je končano v %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indeksiranje izvirnikov..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indeksiranje datotek v %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indeksiranje preklicano"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Odstranjene %d datoteke in %d fotografije"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Premikanje datotek iz %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopiranje datotek iz %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etikete izbrisane"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Shranjena nalepka"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Zadeva je shranjena"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Predmet izbrisanih"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Rešena oseba"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Izbrisana oseba"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Prenesena datoteka"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d datoteke, naložene v %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Obdelava nalaganja..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Prenos je bil obdelan"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Odobren izbor"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Arhiviran izbor"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Obnovljen izbor"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Izbor označen kot zasebni"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Izbrisani albumi"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip, ustvarjen v %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Trajno izbrisano"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s je bil obnovljen"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Uspešno preverjeno"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Uspešno aktiviran"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Swedish <https://translate.photoprism.app/projects/photoprism/"
|
||||
"backend/sv/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Något gick fel, försök igen"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Det går inte att göra"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Ändringarna kunde inte sparas"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Kunde inte raderas"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s finns redan"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Hittades inte"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Filen kunde inte hittas"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Filen är för stor"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Stöds ej"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Denna typ stöds ej"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Format som inte stöds"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Mappen med originalen är tom"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Urvalet kunde inte hittas"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Entitet kunde inte hittas"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Kontot kunde inte hittas"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Användaren kunde inte hittas"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etikett saknas"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Albumet finns inte"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Ämnet finns inte"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Personen kunde inte hittas"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Ansiktet kunde inte hittas"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Inte tillgängligt i offentligt läge"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Inte tillgänglig i skrivskyddsläge"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Logga in på ditt konto"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Åtkomst nekades"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Betalning krävs"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Uppladdning kan vara stötande"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Uppladdning misslyckades"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Inga objekt har valts"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Det gick inte att skapa en fil, kontrollera behörigheter"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Det gick inte att skapa en mapp, kontrollera behörigheter"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Kunde inte ansluta, försök igen"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Ange verifieringskod"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Ogiltig verifieringskod, försök igen"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Felaktigt lösenord, försök igen"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Funktionen är inaktiverad"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Inga etiketter har valts"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Inga album har valts"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Inga filer finns tillgängliga för nedladdning"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Misslyckades med att skapa en zip-fil"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Ogiltiga autentiseringsuppgifter"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Ogiltig länk"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Felaktigt namn"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Upptagen, försök igen senare"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Uppvakningsintervallet är %s, men måste vara 1 timme eller mindre"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Ditt konto kunde inte anslutas"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "För många förfrågningar"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Otillräcklig lagring"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kvoten överskriden"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Ändringarna har sparats"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Album skapat"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Album sparat"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s raderat"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Innehållet i albumet kopieras"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Filen tas bort från stapeln"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Fil raderad"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Urval tillagt i %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "En post tillagd i %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d poster tillagda till %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "En post borttagen från %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d poster raderade från %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Kontot har skapats"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Kontot sparat"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Kontot raderat"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Inställningarna har sparats"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Lösenordet har ändrats"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Importen slutfördes på %d s"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Importen avbruten"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Indexering slutförd på %d s"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Indexering av original..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Indexering av filer i %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Indexering avbruten"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Tog bort %d filer och %d bilder"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Flyttar filer från %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Kopierar filer från %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etiketter raderade"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etikett sparad"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Ämne sparat"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Ämne raderat"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Person sparad"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Person raderad"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Uppladdad fil"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d filer uppladdade på %d s"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Behandling av uppladdning..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Uppladdningen har behandlats"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Urvalet är godkänt"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Urval arkiverat"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Urvalet har återställts"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Urval markerat som privat"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Album raderade"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip skapad på %d s"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Permanent borttagen"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s har återställts"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Verifierad"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Lyckades aktiverad"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "เกิดข้อผิดพลาด โปรดลองอีกครั้ง"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "ไม่สามารถทำเช่นนั้นได้"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "ไม่สามารถบันทึกการเปลี่ยนแปลง"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "ไม่สามารถลบได้"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s มีอยู่แล้ว"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "ไม่พบ"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "ไม่พบไฟล์"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "ไฟล์ใหญ่เกินไป"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "ไม่รองรับ"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "ประเภทที่ไม่รองรับ"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "รูปแบบที่ไม่สนับสนุน"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "โฟลเดอร์ต้นฉบับว่างเปล่า"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "ไม่พบสิ่งที่เลือก"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "ไม่พบเอนทิตี"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "ไม่พบบัญชี"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "ไม่พบผู้ใช้"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "ไม่พบป้ายกำกับ"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "ไม่พบอัลบั้ม"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "ไม่พบหัวเรื่อง"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "ไม่พบบุคคล"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "ไม่พบใบหน้า"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "ไม่พร้อมใช้งานในโหมดสาธารณะ"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "ไม่พร้อมใช้งานในโหมดอ่านอย่างเดียว"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "กรุณาเข้าสู่ระบบบัญชีของคุณ"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "ปฏิเสธการอนุญาต"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "ต้องชำระเงิน"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "การอัปโหลดอาจไม่เหมาะสม"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "การอัพโหลดล้มเหลว"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "ไม่มีรายการที่เลือก"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "สร้างไฟล์ไม่สำเร็จ โปรดตรวจสอบสิทธิ์"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "สร้างโฟลเดอร์ไม่สำเร็จ โปรดตรวจสอบสิทธิ์"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "ไม่สามารถเชื่อมต่อได้ โปรดลองอีกครั้ง"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "ระบุรหัสยืนยืน"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "รหัสยืนยันไม่ถูกต้อง โปรดลองอีกครั้ง"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "รหัสผ่านไม่ถูกต้อง โปรดลองอีกครั้ง"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "คุณลักษณะถูกปิดใช้งาน"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "ไม่ได้เลือกป้ายกำกับ"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "ไม่ได้เลือกอัลบั้ม"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "ไม่มีไฟล์สำหรับดาวน์โหลด"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "สร้างไฟล์ zip ไม่สำเร็จ"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "ข้อมูลประจำตัวที่ไม่ถูกต้อง"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "ลิงก์ไม่ถูกต้อง"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "ชื่อไม่ถูกต้อง"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "ไม่ว่าง โปรดลองอีกครั้งในภายหลัง"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "ช่วงเวลาปลุกคือ %s แต่ต้องเป็น 1 ชั่วโมงหรือน้อยกว่า"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "ไม่สามารถเชื่อมต่อบัญชีของคุณได้"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "คำขอมากเกินไป"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "พื้นที่เก็บข้อมูลไม่เพียงพอ"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "เกินโควตา"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "บันทึกการเปลี่ยนแปลงเรียบร้อยแล้ว"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "สร้างอัลบั้มแล้ว"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "บันทึกอัลบั้มแล้ว"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "ลบอัลบั้ม %s แล้ว"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "โคลนเนื้อหาในอัลบั้ม"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "ไฟล์ถูกลบออกจากสแต็ค"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "ลบไฟล์แล้ว"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "เพิ่มการเลือกใน %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "เพิ่มหนึ่งรายการใน %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d รายการที่เพิ่มใน %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "ลบหนึ่งรายการจาก %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "รายการ %d ถูกลบออกจาก %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "สร้างบัญชีแล้ว"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "บันทึกบัญชีแล้ว"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "ลบบัญชีแล้ว"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "การตั้งค่าที่บันทึกไว้"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "เปลี่ยนรหัสผ่านแล้ว"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "การนำเข้าเสร็จสมบูรณ์ใน %d วินาที"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "ยกเลิกการนำเข้าแล้ว"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "การสร้างดัชนีเสร็จสิ้นใน %d วินาที"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "กำลังจัดทำดัชนีต้นฉบับ..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "การทำดัชนีไฟล์ใน %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "ยกเลิกการทำดัชนีแล้ว"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "ลบไฟล์ %d และภาพถ่าย %d"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "การย้ายไฟล์จาก %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "การคัดลอกไฟล์จาก %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "ลบป้ายกำกับแล้ว"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "บันทึกป้ายกำกับแล้ว"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "บันทึกหัวเรื่องแล้ว"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "ลบหัวเรื่องแล้ว"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "บุคคลที่บันทึกไว้"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "ลบบุคคลแล้ว"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "อัปโหลดไฟล์แล้ว"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "ไฟล์ %d ที่อัปโหลดใน %d วินาที"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "กำลังประมวลผลการอัปโหลด..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "อัปโหลดได้รับการดำเนินการ"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "การเลือกได้รับการอนุมัติ"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "เก็บถาวรการเลือกแล้ว"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "คืนค่าการเลือกแล้ว"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "การเลือกถูกทำเครื่องหมายเป็นส่วนตัว"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "ลบอัลบั้มแล้ว"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip สร้างใน %d วินาที"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "ลบอย่างถาวร"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s ได้รับการกู้คืนแล้ว"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "ตรวจสอบเรียบร้อยแล้ว"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "เปิดใช้งานสำเร็จแล้ว"
|
||||
|
||||
|
||||
@@ -2,407 +2,411 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-15 12:54+0000\n"
|
||||
"PO-Revision-Date: 2025-03-17 18:17+0000\n"
|
||||
"Last-Translator: Omer Duran <me@omerduran.dev>\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: tr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Bir şeyler ters gitti, tekrar deneyin"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Bunu yapmak mümkün değil"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Değişiklikler kaydedilemedi"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Silinemedi"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s zaten var"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Bulunamadı"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Dosya bulunamadı"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Dosya çok büyük"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Desteklenmiyor"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Desteklenmeyen tür"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Desteklenmeyen format"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Orijinaller klasörü boş"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Seçim bulunamadı"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Varlık bulunamadı"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Hesap bulunamadı"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Kullanıcı bulunamadı"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Etiket bulunamadı"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Albüm bulunamadı"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Özne bulunamadı"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Kişi bulunamadı"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Yüz bulunamadı"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Genel modda mevcut değil"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Salt okunur modda kullanılamaz"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Lütfen hesabınıza giriş yapın"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "İzin reddedildi"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Ödeme gerekli"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Yükleme rahatsız edici olabilir"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Yükleme başarısız"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Seçili öğe yok"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Dosya oluşturulamadı, lütfen izinleri kontrol edin"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Klasör oluşturulamadı, lütfen izinleri kontrol edin"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Bağlanılamadı, lütfen tekrar deneyin"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Doğrulama kodunu giriniz"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Geçersiz doğrulama kodu, lütfen tekrar deneyin"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Geçersiz şifre, lütfen tekrar deneyin"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Özellik devre dışı"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Seçili etiket yok"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Seçili albüm yok"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "İndirilebilecek dosya yok"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Zip dosyası oluşturulamadı"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Geçersiz kimlik bilgileri"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Geçersiz link"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Geçersiz isim"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Meşgul, lütfen daha sonra tekrar deneyin"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Uyandırma aralığı %s'dır, ancak 1 saat veya daha az olmalıdır"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Hesabınız bağlanamadı"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Çok fazla talep var"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Yetersiz depolama"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Kota aşıldı"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Değişiklikler başarıyla kaydedildi"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Albüm oluşturuldu"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Albüm kaydedildi"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Albüm %s silindi"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Albüm içeriği klonlandı"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Dosya yığından kaldırıldı"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Silinmiş dosya"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Seçim %s'a eklendi"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Bir giriş %s'a eklendi"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d girişleri %s'e eklendi"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Bir giriş %s'dan kaldırıldı"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d girişleri %s'den kaldırıldı"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Hesap eklendi"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Hesap kaydedildi"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Hesap silindi"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Ayarlar kaydedildi"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Şifre Değiştirildi"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "İçe aktarma %d s içinde tamamlandı"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "İçe aktarma iptal edildi"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "İndeksleme %d s içinde tamamlandı"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Orijinalleri dizinliyor..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "%s dosya yüklendi"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "İndeksleme iptal edildi"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "%d dosya ve %d fotoğraf kaldırıldı"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Dosyaları %s'dan taşıma"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Dosyaları %s'dan kopyalama"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Etiketler silindi"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Etiket kaydedildi"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Konu kaydedildi"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Konu silindi"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Kurtarılan kişi"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Kişi silindi"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Dosya yüklendi"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d dosyalar %d s içinde yüklendi"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Yükleme işlemi..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Yükleme işlemi tamamlandı"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Seçim onaylandı"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Seçim arşivlendi"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Seçim geri yüklendi"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Özel olarak işaretlenmiş seçim"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Albümler silindi"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip %d s içinde oluşturuldu"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Kalıcı olarak silindi"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s geri yüklendi"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Başarıyla doğrulandı"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Başarıyla etkinleştirildi"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: uk\n"
|
||||
@@ -12,399 +12,403 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Щось пішло не так, спробуйте ще раз"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Неможливо це зробити"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Зміни не можливо зберегти"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Не можливо видалити"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s вже існує"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Не знайдено"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Файл не знайдено"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Файл занадто великий"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Не підтримується"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Непідтримуваний тип"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Непідтримуваний формат"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Папка з оригіналами порожня"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Вибір не знайдено"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Об'єкт не знайдено"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Обліковий запис не знайдено"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Користувача не знайдено"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Мітку не знайдено"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Альбом не знайдено"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Тема не знайдена"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Особистість не знайдена"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Обличчя не знайдено"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Недоступно в публічному режимі"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "не доступно в режимі \"тільки читання\""
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Будь ласка, увійдіть до свого облікового запису"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "В доступі відмовлено"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Потрібна оплата"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Завантаження може бути образливим"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Помилка вивантаження"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Нічого не вибрано"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Помилка створення файла, перевірте дозволи"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Не вдалося створити папку, перевірте права доступу"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Не можливо підключитися, спробуйте знову"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Введіть код верифікації"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Невірний код верифікації, спробуйте знову"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "Невірний пароль, спробуйте знову"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Функцію вимкнено"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Мітки не вибрано"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Альбоми не вибрано"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Немає доступних файлів для завантаження"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Не вдалося створити zip-файл"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Недійсні облікові дані"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Невірне посилання"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Невірне ім'я"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Зайнято, спробуйте пізніше"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr ""
|
||||
"Інтервал пробудження становить %s, але має становити 1 годину або менше"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Ваш обліковий запис не вдалося підключити"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "Занадто багато запитів"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Недостатнє зберігання"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Перевищено квоту"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Зміни успішно збережено"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Альбом створено"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Альбом збережено"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Альбом %s видалено"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Вміст альбому клоновано"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Файл видалено з стеку"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Файл видалено"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Вибір додано до %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Один запис додано до %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d записів додано до %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Один запис видалено з %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d записів видалено з %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Обліковий запис створено"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Обліковий запис збережено"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Обліковий запис видалено"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Налаштування збережено"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "Пароль змінено"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Імпортування тривало %d с"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Імпортування скасовано"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Індексування тривало %d с"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Індексуємо оригінали..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Індексуємо файли в %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Індексування скасовано"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Видалено %d файлів та %d фотографій"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Переносимо файли з %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Копіюємо файли з %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Мітки видалено"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Мітку збережено"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Тема збережена"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Тема видалена"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Людина збережена"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Людина видалена"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "Файл завантажено"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "%d файлів вивантажено за %d с"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Обробка завантаження..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Завантаження оброблено"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Вибір затверджено"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Вибране заархівовано"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Вибране відновлено"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Вибіране позначено як приватне"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Альбом видалено"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip створено за %d с"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Остаточно видалено"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s було відновлено"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Верифікація успішна"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Активація успішна"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: none\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "Đã xảy ra lỗi, hãy thử lại"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "Không thể làm điều đó"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "Không thể lưu các thay đổi"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "Không thể xóa được"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s đã tồn tại"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "Không tìm thấy"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "Không tìm thấy tập tin"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "Tệp quá lớn"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "Không được hỗ trợ"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "Loại không được hỗ trợ"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "Định dạng không được hỗ trợ"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "Thư mục gốc trống"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "Không tìm thấy lựa chọn"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "Không tìm thấy thực thể"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "Tài khoản không được tìm thấy"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "Không tìm thấy người dùng"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "Không tìm thấy nhãn"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "Không tìm thấy album"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "Không tìm thấy chủ đề"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "Không tìm thấy người"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "Không tìm thấy khuôn mặt"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "Không khả dụng ở chế độ công khai"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "Không khả dụng ở chế độ chỉ đọc"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "Xin hãy đăng nhập vào tài khoản của bạn"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "Quyền bị từ chối"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "Yêu cầu thanh toán"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "Tải lên có thể gây khó chịu"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "Tải lên không thành công"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "Không có mục nào được chọn"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "Không tạo được tệp, vui lòng kiểm tra quyền"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "Không tạo được thư mục, vui lòng kiểm tra quyền"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "Không thể kết nối, vui lòng thử lại"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "Nhập mã xác nhận"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "Mã xác minh không hợp lệ, vui lòng thử lại"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "mật mã không hợp lệ, vui lòng thử lại"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "Tính năng bị tắt"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "Không có nhãn nào được chọn"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "Không có album nào được chọn"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "Không có tập tin nào để tải xuống"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "Không tạo được tệp zip"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "Thông tin không hợp lệ"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "Liên kết không hợp lệ"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "Tên không hợp lệ"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "Đang bận, vui lòng thử lại sau"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "Khoảng thời gian đánh thức là %s nhưng phải từ 1 giờ trở xuống"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "Tài khoản của bạn không thể kết nối được"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "quá nhiều yêu cầu"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "Không đủ dung lượng lưu trữ"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "Vượt quá hạn ngạch"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "Đã lưu thay đổi thành công"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "Đã tạo album"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "Đã lưu album"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "Album %s đã bị xóa"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "Nội dung album được sao chép"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "Đã xóa tệp khỏi ngăn xếp"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "Đã xóa tệp"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "Đã thêm lựa chọn vào %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "Đã thêm một mục vào %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "Các mục %d được thêm vào %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "Đã xóa một mục khỏi %s"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "Các mục %d đã bị xóa khỏi %s"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "Tài khoản đã được tạo"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "Đã lưu tài khoản"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "Tài khoản đã bị xóa"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "Đã lưu cài đặt"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "mật khẩu đã được thay đổi"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "Quá trình nhập hoàn tất sau %d giây"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "Đã hủy nhập"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "Việc lập chỉ mục hoàn tất sau %d giây"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "Lập chỉ mục bản gốc..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "Lập chỉ mục các tệp trong %s"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "Đã hủy lập chỉ mục"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "Đã xóa tệp %d và ảnh %d"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "Di chuyển tệp từ %s"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "Sao chép tập tin từ %s"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "Đã xóa nhãn"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "Đã lưu nhãn"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "Đã lưu chủ đề"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "Chủ đề đã bị xóa"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "Người đã được cứu"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "Người đã bị xóa"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "File đã được tải lên"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "Các tệp %d được tải lên trong %d giây"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "Đang xử lý tải lên..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "Tải lên đã được xử lý"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "Lựa chọn đã được phê duyệt"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "Đã lưu trữ lựa chọn"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "Đã khôi phục lựa chọn"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "Lựa chọn được đánh dấu là riêng tư"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "Album đã bị xóa"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip được tạo trong %d giây"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "Đã xóa vĩnh viễn"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s đã được khôi phục"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "Đã xác minh thành công"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "Đã kích hoạt thành công"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: DeepL <noreply-mt-deepl@weblate.org>\n"
|
||||
"Language-Team: Chinese (Simplified) <https://translate.photoprism.app/"
|
||||
"projects/photoprism/backend/zh_Hans/>\n"
|
||||
@@ -12,398 +12,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "出错了,再试一次"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "无法做到这一点"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "无法保存变更"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "无法删除"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s 已存在"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "未找到"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "未找到文件"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "文件过大"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "不支持"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "不支持的类型"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "不支持的格式"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "原件文件夹是空的"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "未找到所选内容"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "未找到实体"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "未找到账户"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "未找到用户"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "未找到标签"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "未找到相册"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "未找到主题"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "未找到人物"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "未找到面孔"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "在公开模式下不可用"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "在只读模式下不可用"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "请登录你的账户"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "没有权限"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "需要付款"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "上传内容可能具有冒犯性"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "上传失败"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "未选择任何项目"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "创建文件失败,请检查权限"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "创建目录失败,请检查权限"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "无法连接,请重试"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "输入验证码"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "验证码无效,请重试"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "无效密码,请重试"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "功能已禁用"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "未选择标签"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "未选择相册"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "没有可供下载的文件"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "创建压缩文件失败"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "无效凭证"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "无效链接"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "无效名称"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "忙碌中,请稍后重试"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "唤醒间隔为 %s,但必须小于等于 1 小时"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "你的账户无法连接"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "请求太多"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "存储不足"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "超出配额"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "更改成功保存"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "相册已创建"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "相册已保存"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "相册 %s 已删除"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "相册内容已复制"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "文件已从堆中移除"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "文件已删除"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "所选项目已加入 %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "条目已添加到 %s"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d 个条目已添加到 %s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "条目已从 %s 移除"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d 个条目已从 %s 移除"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "账户已创建"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "账户已保存"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "账户已删除"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "设置已保存"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "密码已更改"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "导入成功,耗时 %d 秒"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "导入已取消"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "索引成功,耗时 %d 秒"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "索引源文件..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "索引 %s 中的文件"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "索引已取消"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "移除了 %d 个文件和 %d 张照片"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "正在从 %s 中移动文件"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "正在从 %s 中复制文件"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "标签已移除"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "标签已保存"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "主题已保存"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "主题已删除"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "人物已保存"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "人物已删除"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "已上传文件"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "已上传 %d 个文件,耗时 %d 秒"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "处理上传..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "上传已被处理"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "所选项已批准"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "所选项已归档"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "所选项已恢复"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "所选项已设为私有"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "相册已删除"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip 文件创建成功,耗时 %d 秒"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "已永久删除"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s 已恢复"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "验证成功"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "已成功激活"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-11 19:22+0000\n"
|
||||
"PO-Revision-Date: 2025-03-11 19:36+0000\n"
|
||||
"POT-Creation-Date: 2025-10-17 17:32+0000\n"
|
||||
"PO-Revision-Date: 2025-10-22 08:25+0000\n"
|
||||
"Last-Translator: Google Cloud Translation Basic <noreply-mt-google-"
|
||||
"translate@weblate.org>\n"
|
||||
"Language-Team: Chinese (Traditional) <https://translate.photoprism.app/"
|
||||
@@ -13,398 +13,402 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 5.9.2\n"
|
||||
"X-Generator: Weblate 5.13.3\n"
|
||||
|
||||
#: messages.go:103
|
||||
#: messages.go:104
|
||||
msgid "Something went wrong, try again"
|
||||
msgstr "出错了,再试一次"
|
||||
|
||||
#: messages.go:104
|
||||
#: messages.go:105
|
||||
msgid "Unable to do that"
|
||||
msgstr "无法做到这一点"
|
||||
|
||||
#: messages.go:105
|
||||
#: messages.go:106
|
||||
msgid "Changes could not be saved"
|
||||
msgstr "無法儲存更改項目"
|
||||
|
||||
#: messages.go:106
|
||||
#: messages.go:107
|
||||
msgid "Could not be deleted"
|
||||
msgstr "無法刪除"
|
||||
|
||||
#: messages.go:107
|
||||
#: messages.go:108
|
||||
#, c-format
|
||||
msgid "%s already exists"
|
||||
msgstr "%s 已存在"
|
||||
|
||||
#: messages.go:108
|
||||
#: messages.go:109
|
||||
msgid "Not found"
|
||||
msgstr "未找到"
|
||||
|
||||
#: messages.go:109
|
||||
#: messages.go:110
|
||||
msgid "File not found"
|
||||
msgstr "未找到檔案"
|
||||
|
||||
#: messages.go:110
|
||||
#: messages.go:111
|
||||
msgid "File too large"
|
||||
msgstr "文件過大"
|
||||
|
||||
#: messages.go:111
|
||||
#: messages.go:112
|
||||
msgid "Unsupported"
|
||||
msgstr "不支援"
|
||||
|
||||
#: messages.go:112
|
||||
#: messages.go:113
|
||||
msgid "Unsupported type"
|
||||
msgstr "不支援的類型"
|
||||
|
||||
#: messages.go:113
|
||||
#: messages.go:114
|
||||
msgid "Unsupported format"
|
||||
msgstr "不支持的格式"
|
||||
|
||||
#: messages.go:114
|
||||
#: messages.go:115
|
||||
msgid "Originals folder is empty"
|
||||
msgstr "原稿文件夾是空的"
|
||||
|
||||
#: messages.go:115
|
||||
#: messages.go:116
|
||||
msgid "Selection not found"
|
||||
msgstr "未找到選取項目"
|
||||
|
||||
#: messages.go:116
|
||||
#: messages.go:117
|
||||
msgid "Entity not found"
|
||||
msgstr "未找到實體"
|
||||
|
||||
#: messages.go:117
|
||||
#: messages.go:118
|
||||
msgid "Account not found"
|
||||
msgstr "未找到帳號"
|
||||
|
||||
#: messages.go:118
|
||||
#: messages.go:119
|
||||
msgid "User not found"
|
||||
msgstr "未找到使用者"
|
||||
|
||||
#: messages.go:119
|
||||
#: messages.go:120
|
||||
msgid "Label not found"
|
||||
msgstr "未找到標籤"
|
||||
|
||||
#: messages.go:120
|
||||
#: messages.go:121
|
||||
msgid "Album not found"
|
||||
msgstr "未找到相簿"
|
||||
|
||||
#: messages.go:121
|
||||
#: messages.go:122
|
||||
msgid "Subject not found"
|
||||
msgstr "未找到主體"
|
||||
|
||||
#: messages.go:122
|
||||
#: messages.go:123
|
||||
msgid "Person not found"
|
||||
msgstr "找不到人"
|
||||
|
||||
#: messages.go:123
|
||||
#: messages.go:124
|
||||
msgid "Face not found"
|
||||
msgstr "找不到面貌"
|
||||
|
||||
#: messages.go:124
|
||||
#: messages.go:125
|
||||
msgid "Not available in public mode"
|
||||
msgstr "不適用於公開模式"
|
||||
|
||||
#: messages.go:125
|
||||
#: messages.go:126
|
||||
msgid "Not available in read-only mode"
|
||||
msgstr "不適用於唯讀模式"
|
||||
|
||||
#: messages.go:126
|
||||
#: messages.go:127
|
||||
msgid "Please log in to your account"
|
||||
msgstr "請登入您的帳戶"
|
||||
|
||||
#: messages.go:127
|
||||
#: messages.go:128
|
||||
msgid "Permission denied"
|
||||
msgstr "權限遭拒"
|
||||
|
||||
#: messages.go:128
|
||||
#: messages.go:129
|
||||
msgid "Payment required"
|
||||
msgstr "需要付款"
|
||||
|
||||
#: messages.go:130
|
||||
msgid "Upload might be offensive"
|
||||
msgstr "所上傳檔案可能會冒犯其他人"
|
||||
|
||||
#: messages.go:129
|
||||
#: messages.go:131
|
||||
msgid "Upload failed"
|
||||
msgstr "上傳失敗"
|
||||
|
||||
#: messages.go:130
|
||||
#: messages.go:132
|
||||
msgid "No items selected"
|
||||
msgstr "未選取任何項目"
|
||||
|
||||
#: messages.go:131
|
||||
#: messages.go:133
|
||||
msgid "Failed creating file, please check permissions"
|
||||
msgstr "建立文件失敗,請檢查權限"
|
||||
|
||||
#: messages.go:132
|
||||
#: messages.go:134
|
||||
msgid "Failed creating folder, please check permissions"
|
||||
msgstr "建立目錄失敗,請檢查權限"
|
||||
|
||||
#: messages.go:133
|
||||
#: messages.go:135
|
||||
msgid "Could not connect, please try again"
|
||||
msgstr "無法連線,請重試"
|
||||
|
||||
#: messages.go:134
|
||||
#: messages.go:136
|
||||
msgid "Enter verification code"
|
||||
msgstr "輸入驗證碼"
|
||||
|
||||
#: messages.go:135
|
||||
#: messages.go:137
|
||||
msgid "Invalid verification code, please try again"
|
||||
msgstr "驗證碼無效,請重試"
|
||||
|
||||
#: messages.go:136
|
||||
#: messages.go:138
|
||||
msgid "Invalid password, please try again"
|
||||
msgstr "密碼無效,請重試"
|
||||
|
||||
#: messages.go:137
|
||||
#: messages.go:139
|
||||
msgid "Feature disabled"
|
||||
msgstr "功能未開啟"
|
||||
|
||||
#: messages.go:138
|
||||
#: messages.go:140
|
||||
msgid "No labels selected"
|
||||
msgstr "未選擇標籤"
|
||||
|
||||
#: messages.go:139
|
||||
#: messages.go:141
|
||||
msgid "No albums selected"
|
||||
msgstr "未選取相簿"
|
||||
|
||||
#: messages.go:140
|
||||
#: messages.go:142
|
||||
msgid "No files available for download"
|
||||
msgstr "没有可以下載的檔案"
|
||||
|
||||
#: messages.go:141
|
||||
#: messages.go:143
|
||||
msgid "Failed to create zip file"
|
||||
msgstr "建立 zip 檔失敗"
|
||||
|
||||
#: messages.go:142
|
||||
#: messages.go:144
|
||||
msgid "Invalid credentials"
|
||||
msgstr "認證無效"
|
||||
|
||||
#: messages.go:143
|
||||
#: messages.go:145
|
||||
msgid "Invalid link"
|
||||
msgstr "超連結無效"
|
||||
|
||||
#: messages.go:144
|
||||
#: messages.go:146
|
||||
msgid "Invalid name"
|
||||
msgstr "無效名稱"
|
||||
|
||||
#: messages.go:145
|
||||
#: messages.go:147
|
||||
msgid "Busy, please try again later"
|
||||
msgstr "忙碌中,請稍候再試"
|
||||
|
||||
#: messages.go:146
|
||||
#: messages.go:148
|
||||
#, c-format
|
||||
msgid "The wakeup interval is %s, but must be 1h or less"
|
||||
msgstr "喚醒間隔為 %s,但必須少於1 小時"
|
||||
|
||||
#: messages.go:147
|
||||
#: messages.go:149
|
||||
msgid "Your account could not be connected"
|
||||
msgstr "您的賬戶無法連接"
|
||||
|
||||
#: messages.go:148
|
||||
#: messages.go:150
|
||||
msgid "Too many requests"
|
||||
msgstr "请求太多"
|
||||
|
||||
#: messages.go:149
|
||||
#: messages.go:151
|
||||
msgid "Insufficient storage"
|
||||
msgstr "儲存空間不足"
|
||||
|
||||
#: messages.go:150
|
||||
#: messages.go:152
|
||||
msgid "Quota exceeded"
|
||||
msgstr "超過配額"
|
||||
|
||||
#: messages.go:153
|
||||
#: messages.go:155
|
||||
msgid "Changes successfully saved"
|
||||
msgstr "成功儲存變更"
|
||||
|
||||
#: messages.go:154
|
||||
#: messages.go:156
|
||||
msgid "Album created"
|
||||
msgstr "相簿已建立"
|
||||
|
||||
#: messages.go:155
|
||||
#: messages.go:157
|
||||
msgid "Album saved"
|
||||
msgstr "相簿已儲存"
|
||||
|
||||
#: messages.go:156
|
||||
#: messages.go:158
|
||||
#, c-format
|
||||
msgid "Album %s deleted"
|
||||
msgstr "相簿 %s 已刪除"
|
||||
|
||||
#: messages.go:157
|
||||
#: messages.go:159
|
||||
msgid "Album contents cloned"
|
||||
msgstr "相簿内容已被複製"
|
||||
|
||||
#: messages.go:158
|
||||
#: messages.go:160
|
||||
msgid "File removed from stack"
|
||||
msgstr "檔案已從堆疊中移除"
|
||||
|
||||
#: messages.go:159
|
||||
#: messages.go:161
|
||||
msgid "File deleted"
|
||||
msgstr "檔案已刪除"
|
||||
|
||||
#: messages.go:160
|
||||
#: messages.go:162
|
||||
#, c-format
|
||||
msgid "Selection added to %s"
|
||||
msgstr "選取項目已加入 %s"
|
||||
|
||||
#: messages.go:161
|
||||
#: messages.go:163
|
||||
#, c-format
|
||||
msgid "One entry added to %s"
|
||||
msgstr "已在 %s 增加一個項目"
|
||||
|
||||
#: messages.go:162
|
||||
#: messages.go:164
|
||||
#, c-format
|
||||
msgid "%d entries added to %s"
|
||||
msgstr "%d個項目已加入%s"
|
||||
|
||||
#: messages.go:163
|
||||
#: messages.go:165
|
||||
#, c-format
|
||||
msgid "One entry removed from %s"
|
||||
msgstr "已從 %s 移除一個項目"
|
||||
|
||||
#: messages.go:164
|
||||
#: messages.go:166
|
||||
#, c-format
|
||||
msgid "%d entries removed from %s"
|
||||
msgstr "%d 個項目已從 %s 移除"
|
||||
|
||||
#: messages.go:165
|
||||
#: messages.go:167
|
||||
msgid "Account created"
|
||||
msgstr "帳號已建立"
|
||||
|
||||
#: messages.go:166
|
||||
#: messages.go:168
|
||||
msgid "Account saved"
|
||||
msgstr "帳號已儲存"
|
||||
|
||||
#: messages.go:167
|
||||
#: messages.go:169
|
||||
msgid "Account deleted"
|
||||
msgstr "帳號已刪除"
|
||||
|
||||
#: messages.go:168
|
||||
#: messages.go:170
|
||||
msgid "Settings saved"
|
||||
msgstr "設定已儲存"
|
||||
|
||||
#: messages.go:169
|
||||
#: messages.go:171
|
||||
msgid "Password changed"
|
||||
msgstr "密碼已更改"
|
||||
|
||||
#: messages.go:170
|
||||
#: messages.go:172
|
||||
#, c-format
|
||||
msgid "Import completed in %d s"
|
||||
msgstr "匯入成功, 共用 %d 秒"
|
||||
|
||||
#: messages.go:171
|
||||
#: messages.go:173
|
||||
msgid "Import canceled"
|
||||
msgstr "匯入取消"
|
||||
|
||||
#: messages.go:172
|
||||
#: messages.go:174
|
||||
#, c-format
|
||||
msgid "Indexing completed in %d s"
|
||||
msgstr "索引建立成功, 共用 %d 秒"
|
||||
|
||||
#: messages.go:173
|
||||
#: messages.go:175
|
||||
msgid "Indexing originals..."
|
||||
msgstr "索引原始檔案..."
|
||||
|
||||
#: messages.go:174
|
||||
#: messages.go:176
|
||||
#, c-format
|
||||
msgid "Indexing files in %s"
|
||||
msgstr "建立 %s 中的檔案索引"
|
||||
|
||||
#: messages.go:175
|
||||
#: messages.go:177
|
||||
msgid "Indexing canceled"
|
||||
msgstr "建立索引取消"
|
||||
|
||||
#: messages.go:176
|
||||
#: messages.go:178
|
||||
#, c-format
|
||||
msgid "Removed %d files and %d photos"
|
||||
msgstr "刪除了 %d 個檔案和 %d 張照片"
|
||||
|
||||
#: messages.go:177
|
||||
#: messages.go:179
|
||||
#, c-format
|
||||
msgid "Moving files from %s"
|
||||
msgstr "正在從 %s 中移動檔案"
|
||||
|
||||
#: messages.go:178
|
||||
#: messages.go:180
|
||||
#, c-format
|
||||
msgid "Copying files from %s"
|
||||
msgstr "正在從 %s 中複製檔案"
|
||||
|
||||
#: messages.go:179
|
||||
#: messages.go:181
|
||||
msgid "Labels deleted"
|
||||
msgstr "已刪除標籤"
|
||||
|
||||
#: messages.go:180
|
||||
#: messages.go:182
|
||||
msgid "Label saved"
|
||||
msgstr "標籤已儲存"
|
||||
|
||||
#: messages.go:181
|
||||
#: messages.go:183
|
||||
msgid "Subject saved"
|
||||
msgstr "主題已儲存"
|
||||
|
||||
#: messages.go:182
|
||||
#: messages.go:184
|
||||
msgid "Subject deleted"
|
||||
msgstr "主題已刪除"
|
||||
|
||||
#: messages.go:183
|
||||
#: messages.go:185
|
||||
msgid "Person saved"
|
||||
msgstr "人物已儲存"
|
||||
|
||||
#: messages.go:184
|
||||
#: messages.go:186
|
||||
msgid "Person deleted"
|
||||
msgstr "人物已刪除"
|
||||
|
||||
#: messages.go:185
|
||||
#: messages.go:187
|
||||
msgid "File uploaded"
|
||||
msgstr "檔案上傳成功"
|
||||
|
||||
#: messages.go:186
|
||||
#: messages.go:188
|
||||
#, c-format
|
||||
msgid "%d files uploaded in %d s"
|
||||
msgstr "已上傳 %d 個檔案, 共用 %d 秒"
|
||||
|
||||
#: messages.go:187
|
||||
#: messages.go:189
|
||||
msgid "Processing upload..."
|
||||
msgstr "正在處理上傳..."
|
||||
|
||||
#: messages.go:188
|
||||
#: messages.go:190
|
||||
msgid "Upload has been processed"
|
||||
msgstr "上傳已處理完畢"
|
||||
|
||||
#: messages.go:189
|
||||
#: messages.go:191
|
||||
msgid "Selection approved"
|
||||
msgstr "選取項目已認可"
|
||||
|
||||
#: messages.go:190
|
||||
#: messages.go:192
|
||||
msgid "Selection archived"
|
||||
msgstr "選取項目已封存"
|
||||
|
||||
#: messages.go:191
|
||||
#: messages.go:193
|
||||
msgid "Selection restored"
|
||||
msgstr "選取項目已被復原"
|
||||
|
||||
#: messages.go:192
|
||||
#: messages.go:194
|
||||
msgid "Selection marked as private"
|
||||
msgstr "選取項目已設為私人"
|
||||
|
||||
#: messages.go:193
|
||||
#: messages.go:195
|
||||
msgid "Albums deleted"
|
||||
msgstr "相簿已刪除"
|
||||
|
||||
#: messages.go:194
|
||||
#: messages.go:196
|
||||
#, c-format
|
||||
msgid "Zip created in %d s"
|
||||
msgstr "Zip檔建立成功, 共用 %d 秒"
|
||||
|
||||
#: messages.go:195
|
||||
#: messages.go:197
|
||||
msgid "Permanently deleted"
|
||||
msgstr "永久刪除"
|
||||
|
||||
#: messages.go:196
|
||||
#: messages.go:198
|
||||
#, c-format
|
||||
msgid "%s has been restored"
|
||||
msgstr "%s 已被回復"
|
||||
|
||||
#: messages.go:197
|
||||
#: messages.go:199
|
||||
msgid "Successfully verified"
|
||||
msgstr "驗證成功"
|
||||
|
||||
#: messages.go:198
|
||||
#: messages.go:200
|
||||
msgid "Successfully activated"
|
||||
msgstr "激活成功"
|
||||
|
||||
|
||||
2
assets/models/.gitignore
vendored
Normal file
2
assets/models/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
||||
66
assets/static/js/browser-check.js
Normal file
66
assets/static/js/browser-check.js
Normal file
@@ -0,0 +1,66 @@
|
||||
'use strict';
|
||||
|
||||
(function () {
|
||||
function supportsModernJs() {
|
||||
var checks = [
|
||||
{ ok: function () { return typeof window.Promise === 'function'; }, reason: 'Promise' },
|
||||
{ ok: function () { return typeof window.Symbol === 'function'; }, reason: 'Symbol' },
|
||||
{ ok: function () { return typeof window.fetch === 'function'; }, reason: 'fetch' },
|
||||
{ ok: function () { return typeof window.URL === 'function'; }, reason: 'URL' },
|
||||
{ ok: function () { return typeof window.URLSearchParams === 'function'; }, reason: 'URLSearchParams' },
|
||||
{ ok: function () { return typeof window.AbortController === 'function'; }, reason: 'AbortController' },
|
||||
{ ok: function () { return typeof Object.assign === 'function'; }, reason: 'Object.assign' },
|
||||
{ ok: function () { return typeof Array.from === 'function'; }, reason: 'Array.from' },
|
||||
{ ok: function () { return typeof Array.prototype.flat === 'function'; }, reason: 'Array.prototype.flat' },
|
||||
{
|
||||
ok: function () {
|
||||
var script = document.createElement('script');
|
||||
return 'noModule' in script;
|
||||
},
|
||||
reason: 'script.noModule'
|
||||
}
|
||||
];
|
||||
|
||||
for (var i = 0; i < checks.length; i++) {
|
||||
if (!checks[i].ok()) {
|
||||
return { ok: false, reason: checks[i].reason };
|
||||
}
|
||||
}
|
||||
|
||||
return { ok: true };
|
||||
}
|
||||
|
||||
function showUnsupportedMessage(message) {
|
||||
var body = document.body;
|
||||
if (body && body.className.indexOf('unsupported-browser') === -1) {
|
||||
body.className += ' unsupported-browser';
|
||||
}
|
||||
|
||||
var progress = document.getElementById('progress');
|
||||
if (progress) {
|
||||
progress.style.display = 'none';
|
||||
}
|
||||
|
||||
var busy = document.getElementById('busy-overlay');
|
||||
if (busy) {
|
||||
busy.style.display = 'none';
|
||||
}
|
||||
|
||||
var splashInfo = document.getElementById('splash-info');
|
||||
if (splashInfo) {
|
||||
splashInfo.innerHTML = '';
|
||||
var info = document.createElement('div');
|
||||
info.className = 'splash-warning';
|
||||
info.textContent = message;
|
||||
splashInfo.appendChild(info);
|
||||
}
|
||||
}
|
||||
|
||||
var support = supportsModernJs();
|
||||
window.__PHOTOPRISM_SUPPORTS__ = support.ok;
|
||||
|
||||
if (!support.ok) {
|
||||
window.__PHOTOPRISM_SUPPORTS_REASON__ = support.reason;
|
||||
showUnsupportedMessage('PhotoPrism requires a current version of Chrome, Safari, Edge, or Firefox. Please update your browser or switch to a supported device.');
|
||||
}
|
||||
})();
|
||||
@@ -28,8 +28,8 @@
|
||||
<div class="splash-logo">
|
||||
{{template "logo.gohtml" .}}
|
||||
</div>
|
||||
<progress id="progress" class="html-progress" max="100"></progress>
|
||||
<progress id="progress" class="html-progress" role="progressbar" max="100"></progress>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="busy-overlay"><div class="splash-center"><progress id="busy-progress" class="html-progress" max="100"></progress></div></div>
|
||||
<div id="busy-overlay"><div class="splash-center"><progress id="busy-progress" class="html-progress" role="progressbar" max="100"></progress></div></div>
|
||||
2
assets/templates/app.js.gohtml
Normal file
2
assets/templates/app.js.gohtml
Normal file
@@ -0,0 +1,2 @@
|
||||
<script src="{{ .config.StaticUri }}/js/browser-check.js"></script>
|
||||
<script src="{{ .config.JsUri }}"></script>
|
||||
@@ -36,6 +36,6 @@
|
||||
<body class="{{ .config.Flags }} nojs">
|
||||
|
||||
{{template "app.gohtml" .}}
|
||||
<script src="{{ .config.JsUri }}"></script>
|
||||
{{template "app.js.gohtml" .}}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -19,6 +19,6 @@
|
||||
<body class="{{ .config.Flags }} nojs">
|
||||
|
||||
{{template "app.gohtml" .}}
|
||||
<script src="{{ .config.JsUri }}"></script>
|
||||
{{template "app.js.gohtml" .}}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -32,6 +32,6 @@
|
||||
<body class="{{ .config.Flags }} nojs">
|
||||
|
||||
{{template "app.gohtml" .}}
|
||||
<script src="{{ .config.JsUri }}"></script>
|
||||
{{template "app.js.gohtml" .}}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -55,6 +55,8 @@ services:
|
||||
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # Don't use TensorFlow for image classification
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # Flag photos as private that MAY be offensive (requires TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_NSFW: "false" # Allows uploads that may be offensive
|
||||
PHOTOPRISM_UPLOAD_ALLOW: "" # restricts uploads to these file types (comma-separated list of EXTENSIONS; leave blank to allow all)
|
||||
PHOTOPRISM_UPLOAD_ARCHIVES: "true" # allows upload of zip archives (will be extracted before import)
|
||||
PHOTOPRISM_DARKTABLE_PRESETS: "false" # Enables Darktable presets and disables concurrent RAW conversion
|
||||
PHOTOPRISM_THUMB_FILTER: "lanczos" # Resample filter, best to worst: blackman, lanczos, cubic, linear
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # Enables on-demand thumbnail rendering (high memory and cpu usage)
|
||||
@@ -62,12 +64,12 @@ services:
|
||||
# PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
|
||||
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # On-demand rendering size limit (default 7680, min 720, max 7680)
|
||||
PHOTOPRISM_JPEG_SIZE: 7680 # Size limit for converted image files in pixels (720-30000)
|
||||
TF_CPP_MIN_LOG_LEVEL: 0 # Show TensorFlow log messages for development
|
||||
TF_CPP_MIN_LOG_LEVEL: 1 # Show TensorFlow log messages for development
|
||||
## Enable TensorFlow AVX2 support for modern Intel CPUs (requires starting the container as root):
|
||||
# PHOTOPRISM_INIT: "tensorflow-amd64-avx2"
|
||||
## Hardware video transcoding config (optional):
|
||||
# PHOTOPRISM_FFMPEG_BUFFERS: "64" # FFmpeg capture buffers (default: 32)
|
||||
# PHOTOPRISM_FFMPEG_BITRATE: "32" # FFmpeg encoding bitrate limit in Mbit/s (default: 50)
|
||||
# PHOTOPRISM_FFMPEG_BITRATE: "32" # FFmpeg encoding bitrate limit in Mbps (default: 60)
|
||||
# PHOTOPRISM_FFMPEG_ENCODER: "h264_v4l2m2m" # Use Video4Linux for AVC transcoding (default: libx264)
|
||||
# PHOTOPRISM_FFMPEG_ENCODER: "h264_qsv" # Use Intel Quick Sync Video for AVC transcoding (default: libx264)
|
||||
# PHOTOPRISM_INIT: "intel-graphics tensorflow-amd64-avx2" # Enable TensorFlow AVX2 & Intel Graphics support
|
||||
@@ -120,8 +122,8 @@ volumes:
|
||||
go-mod:
|
||||
driver: local
|
||||
|
||||
## Create shared "photoprism-develop" network for connecting with services in other compose.yaml files
|
||||
## Create shared "photoprism" network for connecting with services in other compose.yaml files
|
||||
networks:
|
||||
default:
|
||||
name: shared
|
||||
name: photoprism
|
||||
driver: bridge
|
||||
|
||||
190
compose.intel.yaml
Normal file
190
compose.intel.yaml
Normal file
@@ -0,0 +1,190 @@
|
||||
services:
|
||||
## PhotoPrism (Development Environment for Intel QSV hardware transcoding)
|
||||
photoprism:
|
||||
build: .
|
||||
image: photoprism/photoprism:develop
|
||||
depends_on:
|
||||
- mariadb
|
||||
- dummy-webdav
|
||||
- dummy-oidc
|
||||
stop_grace_period: 15s
|
||||
privileged: true
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
- apparmor:unconfined
|
||||
## Expose HTTP and debug ports
|
||||
ports:
|
||||
- "2342:2342" # Default HTTP port (host:container)
|
||||
- "2443:2443" # Default TLS port (host:container)
|
||||
- "2343:2343" # Acceptance Test HTTP port (host:container)
|
||||
- "40000:40000" # Go Debugger (host:container)
|
||||
shm_size: "2gb"
|
||||
## Set links and labels for use with Traefik reverse proxy
|
||||
links:
|
||||
- "traefik:localssl.dev"
|
||||
- "traefik:app.localssl.dev"
|
||||
- "traefik:keycloak.localssl.dev"
|
||||
- "traefik:dummy-oidc.localssl.dev"
|
||||
- "traefik:dummy-webdav.localssl.dev"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.photoprism.loadbalancer.server.port=2342"
|
||||
- "traefik.http.services.photoprism.loadbalancer.server.scheme=http"
|
||||
- "traefik.http.routers.photoprism.entrypoints=websecure"
|
||||
- "traefik.http.routers.photoprism.rule=Host(`localssl.dev`) || HostRegexp(`^.+\\.localssl\\.dev`)"
|
||||
- "traefik.http.routers.photoprism.priority=2"
|
||||
- "traefik.http.routers.photoprism.tls.domains[0].main=localssl.dev"
|
||||
- "traefik.http.routers.photoprism.tls.domains[0].sans=*.localssl.dev"
|
||||
- "traefik.http.routers.photoprism.tls=true"
|
||||
## Configure development environment
|
||||
environment:
|
||||
## Run as a non-root user after initialization (supported: 0, 33, 50-99, 500-600, and 900-1200):
|
||||
PHOTOPRISM_UID: ${UID:-1000} # user id, should match your host user id
|
||||
PHOTOPRISM_GID: ${GID:-1000} # group id
|
||||
## Access Management:
|
||||
PHOTOPRISM_ADMIN_USER: "admin" # admin login username
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # initial admin password (8-72 characters)
|
||||
PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password)
|
||||
PHOTOPRISM_REGISTER_URI: "https://keycloak.localssl.dev/admin/"
|
||||
PHOTOPRISM_PASSWORD_RESET_URI: "https://keycloak.localssl.dev/realms/master/login-actions/reset-credentials"
|
||||
PHOTOPRISM_USAGE_INFO: "true"
|
||||
PHOTOPRISM_FILES_QUOTA: "100"
|
||||
## Customization:
|
||||
PHOTOPRISM_DEFAULT_LOCALE: "en" # default user interface language, e.g. "en" or "de"
|
||||
PHOTOPRISM_PLACES_LOCALE: "local" # location details language, e.g. "local", "en", or
|
||||
## OpenID Connect (pre-configured for local tests):
|
||||
## see https://keycloak.localssl.dev/realms/master/.well-known/openid-configuration
|
||||
PHOTOPRISM_OIDC_URI: "https://keycloak.localssl.dev/realms/master"
|
||||
PHOTOPRISM_OIDC_CLIENT: "photoprism-develop"
|
||||
PHOTOPRISM_OIDC_SECRET: "9d8351a0-ca01-4556-9c37-85eb634869b9"
|
||||
PHOTOPRISM_OIDC_PROVIDER: "Keycloak"
|
||||
PHOTOPRISM_OIDC_REGISTER: "true"
|
||||
PHOTOPRISM_OIDC_WEBDAV: "true"
|
||||
PHOTOPRISM_DISABLE_OIDC: "false"
|
||||
## LDAP Authentication (pre-configured for local tests):
|
||||
PHOTOPRISM_LDAP_URI: "ldap://dummy-ldap:389"
|
||||
PHOTOPRISM_LDAP_INSECURE: "true"
|
||||
PHOTOPRISM_LDAP_SYNC: "true"
|
||||
PHOTOPRISM_LDAP_BIND: "simple"
|
||||
PHOTOPRISM_LDAP_BIND_DN: "cn"
|
||||
PHOTOPRISM_LDAP_BASE_DN: "dc=localssl,dc=dev"
|
||||
PHOTOPRISM_LDAP_ROLE: ""
|
||||
PHOTOPRISM_LDAP_ROLE_DN: "ou=photoprism-*,ou=groups,dc=localssl,dc=dev"
|
||||
PHOTOPRISM_LDAP_WEBDAV_DN: "ou=photoprism-webdav,ou=groups,dc=localssl,dc=dev"
|
||||
## HTTPS/TLS Options:
|
||||
## see https://docs.photoprism.app/getting-started/using-https/
|
||||
PHOTOPRISM_DISABLE_TLS: "true"
|
||||
PHOTOPRISM_DEFAULT_TLS: "true"
|
||||
## Site Information:
|
||||
PHOTOPRISM_SITE_URL: "https://app.localssl.dev/" # server URL in the format "http(s)://domain.name(:port)/(path)"
|
||||
PHOTOPRISM_SITE_CAPTION: "AI-Powered Photos App"
|
||||
PHOTOPRISM_SITE_DESCRIPTION: "Tags and finds pictures without getting in your way!"
|
||||
PHOTOPRISM_SITE_AUTHOR: "@photoprism_app"
|
||||
PHOTOPRISM_DEBUG: "true"
|
||||
PHOTOPRISM_READONLY: "false"
|
||||
PHOTOPRISM_EXPERIMENTAL: "true"
|
||||
PHOTOPRISM_HTTP_MODE: "debug"
|
||||
PHOTOPRISM_HTTP_HOST: "0.0.0.0"
|
||||
PHOTOPRISM_HTTP_PORT: 2342
|
||||
PHOTOPRISM_HTTP_COMPRESSION: "gzip" # improves transfer speed and bandwidth utilization (none or gzip)
|
||||
PHOTOPRISM_DATABASE_DRIVER: "mysql"
|
||||
PHOTOPRISM_DATABASE_SERVER: "mariadb:4001"
|
||||
PHOTOPRISM_DATABASE_NAME: "photoprism"
|
||||
PHOTOPRISM_DATABASE_USER: "root"
|
||||
PHOTOPRISM_DATABASE_PASSWORD: "photoprism"
|
||||
PHOTOPRISM_TEST_DRIVER: "sqlite"
|
||||
# PHOTOPRISM_TEST_DSN_MYSQL8: "root:photoprism@tcp(mysql:4001)/photoprism?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true&timeout=15s"
|
||||
PHOTOPRISM_ASSETS_PATH: "/go/src/github.com/photoprism/photoprism/assets"
|
||||
PHOTOPRISM_STORAGE_PATH: "/go/src/github.com/photoprism/photoprism/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "/go/src/github.com/photoprism/photoprism/storage/originals"
|
||||
PHOTOPRISM_ORIGINALS_LIMIT: 128000 # sets originals file size limit to 128 GB
|
||||
PHOTOPRISM_IMPORT_PATH: "/go/src/github.com/photoprism/photoprism/storage/import"
|
||||
PHOTOPRISM_DISABLE_CHOWN: "false" # disables updating storage permissions via chmod and chown on startup
|
||||
PHOTOPRISM_DISABLE_BACKUPS: "false" # disables backing up albums and photo metadata to YAML files
|
||||
PHOTOPRISM_DISABLE_WEBDAV: "false" # disables built-in WebDAV server
|
||||
PHOTOPRISM_DISABLE_SETTINGS: "false" # disables settings UI and API
|
||||
PHOTOPRISM_DISABLE_PLACES: "false" # disables reverse geocoding and maps
|
||||
PHOTOPRISM_DISABLE_EXIFTOOL: "false" # disables creating JSON metadata sidecar files with ExifTool
|
||||
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
|
||||
PHOTOPRISM_DISABLE_RAW: "false" # disables indexing and conversion of RAW images
|
||||
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_NSFW: "false" # allows uploads that MAY be offensive (no effect without TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_ALLOW: "" # restricts uploads to these file types (comma-separated list of EXTENSIONS; leave blank to allow all)
|
||||
PHOTOPRISM_UPLOAD_ARCHIVES: "true" # allows upload of zip archives (will be extracted before import)
|
||||
PHOTOPRISM_THUMB_LIBRARY: "auto" # image processing library to be used for generating thumbnails (auto, imaging, vips)
|
||||
PHOTOPRISM_THUMB_FILTER: "auto" # downscaling filter (imaging best to worst: blackman, lanczos, cubic, linear, nearest)
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage)
|
||||
## Intel Quick Sync Video (QSV) (https://docs.photoprism.app/getting-started/advanced/transcoding/#intel-quick-sync):
|
||||
PHOTOPRISM_FFMPEG_ENCODER: "intel" # H.264/AVC encoder (software, intel, nvidia, apple, raspberry, or vaapi)
|
||||
PHOTOPRISM_FFMPEG_SIZE: "1920" # video size limit in pixels (720-7680) (default: 3840)
|
||||
# PHOTOPRISM_FFMPEG_BITRATE: "64" # video bitrate limit in Mbps (default: 60)
|
||||
## Run/install on first startup (options: update tensorflow https intel gpu davfs yt-dlp):
|
||||
PHOTOPRISM_INIT: "https intel tensorflow"
|
||||
## External dependencies and tools:
|
||||
TF_CPP_MIN_LOG_LEVEL: 1
|
||||
GOCACHE: "/go/src/github.com/photoprism/photoprism/.local/gocache"
|
||||
CODEX_HOME: "/go/src/github.com/photoprism/photoprism/.local/codex"
|
||||
## Share hardware devices with FFmpeg for hardware video transcoding:
|
||||
devices:
|
||||
- "/dev/dri:/dev/dri"
|
||||
working_dir: "/go/src/github.com/photoprism/photoprism"
|
||||
volumes:
|
||||
- ".:/go/src/github.com/photoprism/photoprism"
|
||||
- "./storage:/photoprism"
|
||||
- "go-mod:/go/pkg/mod"
|
||||
|
||||
mariadb:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: mariadb
|
||||
qdrant:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: qdrant
|
||||
photoprism-vision:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: photoprism-vision
|
||||
ollama:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: ollama
|
||||
traefik:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: traefik
|
||||
dummy-webdav:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: dummy-webdav
|
||||
dummy-oidc:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: dummy-oidc
|
||||
dummy-ldap:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: dummy-ldap
|
||||
keycloak:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: keycloak
|
||||
prometheus:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: prometheus
|
||||
|
||||
## Create named volume for Go module cache
|
||||
volumes:
|
||||
go-mod:
|
||||
driver: local
|
||||
mariadb:
|
||||
driver: local
|
||||
|
||||
## Create shared "photoprism" network for connecting with services in other compose.yaml files
|
||||
networks:
|
||||
default:
|
||||
name: photoprism
|
||||
driver: bridge
|
||||
@@ -12,6 +12,7 @@ services:
|
||||
- "2344:2342" # HTTP port (host:container)
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.latest.loadbalancer.server.port=2342"
|
||||
- "traefik.http.routers.latest.entrypoints=websecure"
|
||||
- "traefik.http.routers.latest.rule=Host(`latest.localssl.dev`)"
|
||||
@@ -50,6 +51,8 @@ services:
|
||||
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_NSFW: "false" # allows uploads that MAY be offensive (no effect without TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_ALLOW: "" # restricts uploads to these file types (comma-separated list of EXTENSIONS; leave blank to allow all)
|
||||
PHOTOPRISM_UPLOAD_ARCHIVES: "true" # allows upload of zip archives (will be extracted before import)
|
||||
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
|
||||
PHOTOPRISM_THUMB_FILTER: "lanczos" # resample filter, best to worst: blackman, lanczos, cubic, linear
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage)
|
||||
@@ -57,13 +60,13 @@ services:
|
||||
# PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
|
||||
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # on-demand rendering size limit (default 7680, min 720, max 7680)
|
||||
PHOTOPRISM_JPEG_SIZE: 7680 # size limit for converted image files in pixels (720-30000)
|
||||
TF_CPP_MIN_LOG_LEVEL: 0 # show TensorFlow log messages for development
|
||||
TF_CPP_MIN_LOG_LEVEL: 1 # show TensorFlow log messages for development
|
||||
working_dir: "/photoprism"
|
||||
volumes:
|
||||
- "./storage:/photoprism/storage"
|
||||
- "./storage/originals:/photoprism/originals"
|
||||
|
||||
## Join shared "photoprism-develop" network
|
||||
## Join shared "photoprism" network
|
||||
networks:
|
||||
default:
|
||||
name: photoprism
|
||||
|
||||
@@ -6,7 +6,7 @@ services:
|
||||
## Docs: https://docs.photoprism.org/
|
||||
photoprism-local:
|
||||
image: photoprism/photoprism:local
|
||||
stop_grace_period: 10s
|
||||
stop_grace_period: 15s
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
- apparmor:unconfined
|
||||
@@ -14,6 +14,7 @@ services:
|
||||
- "2345:2342" # HTTP port (host:container)
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.latest.loadbalancer.server.port=2342"
|
||||
- "traefik.http.routers.latest.entrypoints=websecure"
|
||||
- "traefik.http.routers.latest.rule=Host(`local.localssl.dev`)"
|
||||
@@ -51,6 +52,8 @@ services:
|
||||
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_NSFW: "false" # allows uploads that MAY be offensive (no effect without TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_ALLOW: "" # restricts uploads to these file types (comma-separated list of EXTENSIONS; leave blank to allow all)
|
||||
PHOTOPRISM_UPLOAD_ARCHIVES: "true" # allows upload of zip archives (will be extracted before import)
|
||||
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
|
||||
PHOTOPRISM_THUMB_FILTER: "lanczos" # resample filter, best to worst: blackman, lanczos, cubic, linear
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage)
|
||||
@@ -58,8 +61,8 @@ services:
|
||||
# PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
|
||||
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # on-demand rendering size limit (default 7680, min 720, max 7680)
|
||||
PHOTOPRISM_JPEG_SIZE: 7680 # size limit for converted image files in pixels (720-30000)
|
||||
TF_CPP_MIN_LOG_LEVEL: 0 # show TensorFlow log messages for development
|
||||
# PHOTOPRISM_INIT: "http gpu tensorflow" # Options: "update https gpu tensorflow davfs clitools clean"
|
||||
TF_CPP_MIN_LOG_LEVEL: 1 # show TensorFlow log messages for development
|
||||
# PHOTOPRISM_INIT: "http gpu tensorflow yt-dlp" # Options: "update https gpu tensorflow davfs clitools clean"
|
||||
PHOTOPRISM_FFMPEG_ENCODER: "nvidia" # Options: "software", "intel", "nvidia", "apple", "raspberry"
|
||||
PHOTOPRISM_STORAGE_PATH: "/photoprism/storage"
|
||||
PHOTOPRISM_ORIGINALS_PATH: "/photoprism/storage/originals"
|
||||
@@ -70,7 +73,7 @@ services:
|
||||
volumes:
|
||||
- "./storage:/photoprism/storage"
|
||||
|
||||
## Join shared "photoprism-develop" network
|
||||
## Join shared "photoprism" network
|
||||
networks:
|
||||
default:
|
||||
name: photoprism
|
||||
|
||||
@@ -145,7 +145,7 @@ services:
|
||||
MYSQL_PASSWORD: "photoprism"
|
||||
MYSQL_ROOT_PASSWORD: "photoprism"
|
||||
|
||||
## Join shared "photoprism-develop" network
|
||||
## Join shared "photoprism" network
|
||||
networks:
|
||||
default:
|
||||
name: photoprism
|
||||
|
||||
@@ -15,7 +15,7 @@ services:
|
||||
MYSQL_PASSWORD: "photoprism"
|
||||
MYSQL_ROOT_PASSWORD: "photoprism"
|
||||
|
||||
## Join shared "photoprism-develop" network
|
||||
## Join shared "photoprism" network
|
||||
networks:
|
||||
default:
|
||||
name: photoprism
|
||||
|
||||
@@ -3,11 +3,13 @@ services:
|
||||
photoprism:
|
||||
build: .
|
||||
image: photoprism/photoprism:develop
|
||||
runtime: nvidia
|
||||
depends_on:
|
||||
- mariadb
|
||||
- dummy-webdav
|
||||
- dummy-oidc
|
||||
stop_grace_period: 10s
|
||||
stop_grace_period: 15s
|
||||
privileged: true
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
- apparmor:unconfined
|
||||
@@ -22,11 +24,14 @@ services:
|
||||
links:
|
||||
- "traefik:localssl.dev"
|
||||
- "traefik:app.localssl.dev"
|
||||
- "traefik:vision.localssl.dev"
|
||||
- "traefik:qdrant.localssl.dev"
|
||||
- "traefik:keycloak.localssl.dev"
|
||||
- "traefik:dummy-oidc.localssl.dev"
|
||||
- "traefik:dummy-webdav.localssl.dev"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.photoprism.loadbalancer.server.port=2342"
|
||||
- "traefik.http.services.photoprism.loadbalancer.server.scheme=http"
|
||||
- "traefik.http.routers.photoprism.entrypoints=websecure"
|
||||
@@ -48,6 +53,9 @@ services:
|
||||
PHOTOPRISM_PASSWORD_RESET_URI: "https://keycloak.localssl.dev/realms/master/login-actions/reset-credentials"
|
||||
PHOTOPRISM_USAGE_INFO: "true"
|
||||
PHOTOPRISM_FILES_QUOTA: "100"
|
||||
## Customization:
|
||||
PHOTOPRISM_DEFAULT_LOCALE: "en" # default user interface language, e.g. "en" or "de"
|
||||
PHOTOPRISM_PLACES_LOCALE: "local" # location details language, e.g. "local", "en", or
|
||||
## OpenID Connect (pre-configured for local tests):
|
||||
## see https://keycloak.localssl.dev/realms/master/.well-known/openid-configuration
|
||||
PHOTOPRISM_OIDC_URI: "https://keycloak.localssl.dev/realms/master"
|
||||
@@ -106,44 +114,115 @@ services:
|
||||
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_NSFW: "false" # allows uploads that MAY be offensive (no effect without TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_ALLOW: "" # restricts uploads to these file types (comma-separated list of EXTENSIONS; leave blank to allow all)
|
||||
PHOTOPRISM_UPLOAD_ARCHIVES: "true" # allows upload of zip archives (will be extracted before import)
|
||||
PHOTOPRISM_THUMB_LIBRARY: "auto" # image processing library to be used for generating thumbnails (auto, imaging, vips)
|
||||
PHOTOPRISM_THUMB_FILTER: "auto" # downscaling filter (imaging best to worst: blackman, lanczos, cubic, linear, nearest)
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage)
|
||||
TF_CPP_MIN_LOG_LEVEL: 0 # show TensorFlow log messages for development
|
||||
## Nvidia Video Transcoding (https://docs.photoprism.app/getting-started/advanced/transcoding/#nvidia-container-toolkit):
|
||||
## Run/install on first startup (options: update tensorflow https intel gpu davfs yt-dlp):
|
||||
PHOTOPRISM_INIT: "https tensorflow-gpu"
|
||||
## Computer Vision API (https://docs.photoprism.app/getting-started/config-options/#computer-vision):
|
||||
PHOTOPRISM_VISION_API: "true" # server: enables service API endpoints under /api/v1/vision (requires access token)
|
||||
PHOTOPRISM_VISION_URI: "" # client: service URI, e.g. http://hostname/api/v1/vision (leave blank to disable)
|
||||
PHOTOPRISM_VISION_KEY: "" # client: service access token (for authentication)
|
||||
## NVIDIA GPU Hardware Acceleration (see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html):
|
||||
NVIDIA_VISIBLE_DEVICES: "all"
|
||||
NVIDIA_DRIVER_CAPABILITIES: "compute,video,utility"
|
||||
NVIDIA_DRIVER_CAPABILITIES: "all"
|
||||
PHOTOPRISM_FFMPEG_ENCODER: "nvidia" # H.264/AVC encoder (software, intel, nvidia, apple, raspberry, or vaapi)
|
||||
PHOTOPRISM_FFMPEG_SIZE: "1920" # video size limit in pixels (720-7680) (default: 3840)
|
||||
PHOTOPRISM_FFMPEG_BITRATE: "50" # video bitrate limit in Mbit/s (default: 50)
|
||||
## Run/install on first startup (options: update https gpu ffmpeg tensorflow davfs clitools clean):
|
||||
PHOTOPRISM_INIT: "https tensorflow"
|
||||
## Share hardware devices with FFmpeg and TensorFlow (optional):
|
||||
PHOTOPRISM_FFMPEG_BITRATE: "64" # video bitrate limit in Mbps (default: 60)
|
||||
## External dependencies and tools:
|
||||
TF_CPP_MIN_LOG_LEVEL: 1
|
||||
GOCACHE: "/go/src/github.com/photoprism/photoprism/.local/gocache"
|
||||
CODEX_HOME: "/go/src/github.com/photoprism/photoprism/.local/codex"
|
||||
## Shared devices for video hardware transcoding (optional):
|
||||
# devices:
|
||||
# - "/dev/dri:/dev/dri" # Intel QSV (Broadwell and later) or VAAPI (Haswell and earlier)
|
||||
# - "/dev/nvidia0:/dev/nvidia0" # Nvidia CUDA
|
||||
# - "/dev/nvidiactl:/dev/nvidiactl"
|
||||
# - "/dev/nvidia-modeset:/dev/nvidia-modeset"
|
||||
# - "/dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl"
|
||||
# - "/dev/nvidia-uvm:/dev/nvidia-uvm"
|
||||
# - "/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools"
|
||||
# - "/dev/dri:/dev/dri" # Required Intel QSV or VAAPI hardware transcoding
|
||||
# - "/dev/video11:/dev/video11" # Video4Linux Video Encode Device (h264_v4l2m2m)
|
||||
working_dir: "/go/src/github.com/photoprism/photoprism"
|
||||
volumes:
|
||||
- ".:/go/src/github.com/photoprism/photoprism"
|
||||
- "./storage:/photoprism"
|
||||
- "go-mod:/go/pkg/mod"
|
||||
## NVIDIA GPU Hardware Acceleration (see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html):
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: "nvidia"
|
||||
capabilities: [gpu]
|
||||
count: "all"
|
||||
|
||||
## Ollama Large-Language Model Runner
|
||||
## run "ollama pull [name]:[version]" to download a vision model
|
||||
## listed at <https://ollama.com/search?c=vision>, for example:
|
||||
## docker compose exec ollama ollama pull gemma3:latest
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
stop_grace_period: 15s
|
||||
## Only starts this service if the "all", "ollama", or "vision" profile is specified::
|
||||
## docker compose --profile ollama up -d
|
||||
profiles: ["all", "ollama", "vision"]
|
||||
## Insecurely exposes the Ollama service on port 11434
|
||||
## without authentication (for private networks only):
|
||||
# ports:
|
||||
# - "11434:11434"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.ollama.loadbalancer.server.port=11434"
|
||||
- "traefik.http.routers.ollama.rule=Host(`ollama.localssl.dev`)"
|
||||
- "traefik.http.routers.ollama.entrypoints=websecure"
|
||||
- "traefik.http.routers.ollama.tls=true"
|
||||
environment:
|
||||
## Ollama Configuration Options:
|
||||
OLLAMA_HOST: "0.0.0.0:11434"
|
||||
OLLAMA_MODELS: "/root/.ollama" # model storage path (see volumes section below)
|
||||
OLLAMA_MAX_QUEUE: "100" # maximum number of queued requests
|
||||
OLLAMA_NUM_PARALLEL: "1" # maximum number of parallel requests
|
||||
OLLAMA_MAX_LOADED_MODELS: "1" # maximum number of loaded models per GPU
|
||||
OLLAMA_LOAD_TIMEOUT: "5m" # maximum time for loading models (default "5m")
|
||||
OLLAMA_KEEP_ALIVE: "5m" # duration that models stay loaded in memory (default "5m")
|
||||
OLLAMA_CONTEXT_LENGTH: "4096" # maximum input context length
|
||||
OLLAMA_MULTIUSER_CACHE: "false" # optimize prompt caching for multi-user scenarios
|
||||
OLLAMA_NOPRUNE: "false" # disables pruning of model blobs at startup
|
||||
OLLAMA_NOHISTORY: "true" # disables readline history
|
||||
OLLAMA_FLASH_ATTENTION: "false" # enables the experimental flash attention feature
|
||||
OLLAMA_KV_CACHE_TYPE: "f16" # cache quantization (f16, q8_0, or q4_0)
|
||||
OLLAMA_SCHED_SPREAD: "false" # allows scheduling models across all GPUs.
|
||||
OLLAMA_NEW_ENGINE: "true" # enables the new Ollama engine
|
||||
# OLLAMA_DEBUG: "true" # shows additional debug information
|
||||
# OLLAMA_INTEL_GPU: "true" # enables experimental Intel GPU detection
|
||||
## NVIDIA GPU Hardware Acceleration (see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html):
|
||||
NVIDIA_VISIBLE_DEVICES: "all"
|
||||
NVIDIA_DRIVER_CAPABILITIES: "compute,utility"
|
||||
volumes:
|
||||
- "./storage/services/ollama:/root/.ollama"
|
||||
## NVIDIA GPU Hardware Acceleration (see https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html):
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: "nvidia"
|
||||
count: 1
|
||||
capabilities: [ gpu ]
|
||||
count: "all"
|
||||
|
||||
mariadb:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: mariadb
|
||||
qdrant:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: qdrant
|
||||
open-webui:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: open-webui
|
||||
photoprism-vision:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
service: photoprism-vision
|
||||
traefik:
|
||||
extends:
|
||||
file: ./compose.yaml
|
||||
@@ -176,7 +255,7 @@ volumes:
|
||||
mariadb:
|
||||
driver: local
|
||||
|
||||
## Create shared "photoprism-develop" network for connecting with services in other compose.yaml files
|
||||
## Create shared "photoprism" network for connecting with services in other compose.yaml files
|
||||
networks:
|
||||
default:
|
||||
name: photoprism
|
||||
|
||||
@@ -24,7 +24,6 @@ services:
|
||||
- "go-mod:/go/pkg/mod"
|
||||
shm_size: "2gb"
|
||||
environment:
|
||||
PHOTOPRISM_INIT: "https"
|
||||
PHOTOPRISM_ADMIN_USER: "admin" # admin login username
|
||||
PHOTOPRISM_ADMIN_PASSWORD: "photoprism" # initial admin password (8-72 characters)
|
||||
PHOTOPRISM_AUTH_MODE: "password" # authentication mode (public, password)
|
||||
@@ -58,6 +57,8 @@ services:
|
||||
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_NSFW: "false" # allows uploads that MAY be offensive (no effect without TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_ALLOW: "" # restricts uploads to these file types (comma-separated list of EXTENSIONS; leave blank to allow all)
|
||||
PHOTOPRISM_UPLOAD_ARCHIVES: "true" # allows upload of zip archives (will be extracted before import)
|
||||
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
|
||||
PHOTOPRISM_THUMB_FILTER: "lanczos" # resample filter, best to worst: blackman, lanczos, cubic, linear
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage)
|
||||
@@ -65,8 +66,12 @@ services:
|
||||
# PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
|
||||
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # on-demand rendering size limit (default 7680, min 720, max 7680)
|
||||
PHOTOPRISM_JPEG_SIZE: 7680 # size limit for converted image files in pixels (720-30000)
|
||||
TF_CPP_MIN_LOG_LEVEL: 0 # show TensorFlow log messages for development
|
||||
|
||||
## Run/install on first startup (options: update tensorflow https intel gpu davfs yt-dlp):
|
||||
PHOTOPRISM_INIT: "https"
|
||||
## External dependencies and tools:
|
||||
TF_CPP_MIN_LOG_LEVEL: 1
|
||||
GOCACHE: "/go/src/github.com/photoprism/photoprism/.local/gocache"
|
||||
CODEX_HOME: "/go/src/github.com/photoprism/photoprism/.local/codex"
|
||||
## PostgreSQL Database Server
|
||||
## Docs: https://www.postgresql.org/docs/
|
||||
postgres:
|
||||
|
||||
@@ -12,6 +12,7 @@ services:
|
||||
- "2344:2342" # HTTP port (host:container)
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.preview.loadbalancer.server.port=2342"
|
||||
- "traefik.http.routers.preview.entrypoints=websecure"
|
||||
- "traefik.http.routers.preview.rule=Host(`preview.localssl.dev`)"
|
||||
@@ -50,6 +51,8 @@ services:
|
||||
PHOTOPRISM_DISABLE_TENSORFLOW: "false" # disables all features depending on TensorFlow
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_NSFW: "false" # allows uploads that MAY be offensive (no effect without TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_ALLOW: "" # restricts uploads to these file types (comma-separated list of EXTENSIONS; leave blank to allow all)
|
||||
PHOTOPRISM_UPLOAD_ARCHIVES: "true" # allows upload of zip archives (will be extracted before import)
|
||||
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
|
||||
PHOTOPRISM_THUMB_FILTER: "lanczos" # resample filter, best to worst: blackman, lanczos, cubic, linear
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage)
|
||||
@@ -57,13 +60,13 @@ services:
|
||||
# PHOTOPRISM_THUMB_SIZE: 4096 # Retina 4K, DCI 4K (requires more storage); 7680 for 8K Ultra HD
|
||||
PHOTOPRISM_THUMB_SIZE_UNCACHED: 7680 # on-demand rendering size limit (default 7680, min 720, max 7680)
|
||||
PHOTOPRISM_JPEG_SIZE: 7680 # size limit for converted image files in pixels (720-30000)
|
||||
TF_CPP_MIN_LOG_LEVEL: 0 # show TensorFlow log messages for development
|
||||
TF_CPP_MIN_LOG_LEVEL: 1 # show TensorFlow log messages for development
|
||||
working_dir: "/photoprism"
|
||||
volumes:
|
||||
- "./storage:/photoprism/storage"
|
||||
- "./storage/originals:/photoprism/originals"
|
||||
|
||||
## Join shared "photoprism-develop" network
|
||||
## Join shared "photoprism" network
|
||||
networks:
|
||||
default:
|
||||
name: photoprism
|
||||
|
||||
191
compose.yaml
191
compose.yaml
@@ -10,7 +10,7 @@ services:
|
||||
- mariadb
|
||||
- dummy-webdav
|
||||
- dummy-oidc
|
||||
stop_grace_period: 10s
|
||||
stop_grace_period: 15s
|
||||
security_opt:
|
||||
- seccomp:unconfined
|
||||
- apparmor:unconfined
|
||||
@@ -25,11 +25,14 @@ services:
|
||||
links:
|
||||
- "traefik:localssl.dev"
|
||||
- "traefik:app.localssl.dev"
|
||||
- "traefik:vision.localssl.dev"
|
||||
- "traefik:qdrant.localssl.dev"
|
||||
- "traefik:keycloak.localssl.dev"
|
||||
- "traefik:dummy-oidc.localssl.dev"
|
||||
- "traefik:dummy-webdav.localssl.dev"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.photoprism.loadbalancer.server.port=2342"
|
||||
- "traefik.http.services.photoprism.loadbalancer.server.scheme=http"
|
||||
- "traefik.http.routers.photoprism.entrypoints=websecure"
|
||||
@@ -55,6 +58,9 @@ services:
|
||||
PHOTOPRISM_PASSWORD_RESET_URI: "https://keycloak.localssl.dev/realms/master/login-actions/reset-credentials"
|
||||
PHOTOPRISM_USAGE_INFO: "true"
|
||||
PHOTOPRISM_FILES_QUOTA: "100"
|
||||
## Customization:
|
||||
PHOTOPRISM_DEFAULT_LOCALE: "en" # default user interface language, e.g. "en" or "de"
|
||||
PHOTOPRISM_PLACES_LOCALE: "local" # location details language, e.g. "local", "en", or "de"
|
||||
## OpenID Connect (pre-configured for local tests):
|
||||
## see https://keycloak.localssl.dev/realms/master/.well-known/openid-configuration
|
||||
PHOTOPRISM_OIDC_URI: "https://keycloak.localssl.dev/realms/master"
|
||||
@@ -113,26 +119,29 @@ services:
|
||||
PHOTOPRISM_RAW_PRESETS: "false" # enables applying user presets when converting RAW images (reduces performance)
|
||||
PHOTOPRISM_DETECT_NSFW: "false" # automatically flags photos as private that MAY be offensive (requires TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_NSFW: "false" # allows uploads that MAY be offensive (no effect without TensorFlow)
|
||||
PHOTOPRISM_UPLOAD_ALLOW: "" # restricts uploads to these file types (comma-separated list of EXTENSIONS; leave blank to allow all)
|
||||
PHOTOPRISM_UPLOAD_ARCHIVES: "true" # allows upload of zip archives (will be extracted before import)
|
||||
PHOTOPRISM_THUMB_LIBRARY: "auto" # image processing library to be used for generating thumbnails (auto, imaging, vips)
|
||||
PHOTOPRISM_THUMB_FILTER: "auto" # downscaling filter (imaging best to worst: blackman, lanczos, cubic, linear, nearest)
|
||||
PHOTOPRISM_THUMB_UNCACHED: "true" # enables on-demand thumbnail rendering (high memory and cpu usage)
|
||||
TF_CPP_MIN_LOG_LEVEL: 0 # show TensorFlow log messages for development
|
||||
## Video Transcoding (https://docs.photoprism.app/getting-started/advanced/transcoding/):
|
||||
# PHOTOPRISM_FFMPEG_ENCODER: "software" # H.264/AVC encoder (software, intel, nvidia, apple, raspberry, or vaapi)
|
||||
# PHOTOPRISM_FFMPEG_SIZE: "1920" # video size limit in pixels (720-7680) (default: 3840)
|
||||
# PHOTOPRISM_FFMPEG_BITRATE: "32" # video bitrate limit in Mbit/s (default: 50)
|
||||
# LIBVA_DRIVER_NAME: "i965" # For Intel architectures Haswell and older which do not support QSV yet but use VAAPI instead
|
||||
## Run/install on first startup (options: update https gpu ffmpeg tensorflow davfs clitools clean):
|
||||
PHOTOPRISM_INIT: "https tensorflow"
|
||||
## Share hardware devices with FFmpeg and TensorFlow (optional):
|
||||
PHOTOPRISM_FFMPEG_SIZE: "1920" # video size limit in pixels (720-7680) (default: 3840)
|
||||
# PHOTOPRISM_FFMPEG_BITRATE: "64" # video bitrate limit in Mbps (default: 60)
|
||||
## Run/install on first startup (options: update tensorflow https intel gpu davfs yt-dlp):
|
||||
PHOTOPRISM_INIT: "https"
|
||||
## Computer Vision API (https://docs.photoprism.app/getting-started/config-options/#computer-vision):
|
||||
PHOTOPRISM_VISION_API: "true" # server: enables service API endpoints under /api/v1/vision (requires access token)
|
||||
PHOTOPRISM_VISION_URI: "" # client: service URI, e.g. http://hostname/api/v1/vision (leave blank to disable)
|
||||
PHOTOPRISM_VISION_KEY: "" # client: service access token (for authentication)
|
||||
## External dependencies and tools:
|
||||
TF_CPP_MIN_LOG_LEVEL: 1
|
||||
GOCACHE: "/go/src/github.com/photoprism/photoprism/.local/gocache"
|
||||
CODEX_HOME: "/go/src/github.com/photoprism/photoprism/.local/codex"
|
||||
## Shared devices for video hardware transcoding (optional):
|
||||
# devices:
|
||||
# - "/dev/dri:/dev/dri" # Intel QSV (Broadwell and later) or VAAPI (Haswell and earlier)
|
||||
# - "/dev/nvidia0:/dev/nvidia0" # Nvidia CUDA
|
||||
# - "/dev/nvidiactl:/dev/nvidiactl"
|
||||
# - "/dev/nvidia-modeset:/dev/nvidia-modeset"
|
||||
# - "/dev/nvidia-nvswitchctl:/dev/nvidia-nvswitchctl"
|
||||
# - "/dev/nvidia-uvm:/dev/nvidia-uvm"
|
||||
# - "/dev/nvidia-uvm-tools:/dev/nvidia-uvm-tools"
|
||||
# - "/dev/dri:/dev/dri" # Required Intel QSV or VAAPI hardware transcoding
|
||||
# - "/dev/video11:/dev/video11" # Video4Linux Video Encode Device (h264_v4l2m2m)
|
||||
working_dir: "/go/src/github.com/photoprism/photoprism"
|
||||
volumes:
|
||||
@@ -145,6 +154,7 @@ services:
|
||||
## Release Notes: https://mariadb.com/kb/en/changes-improvements-in-mariadb-1011/
|
||||
mariadb:
|
||||
image: mariadb:11
|
||||
stop_grace_period: 15s
|
||||
security_opt: # see https://github.com/MariaDB/mariadb-docker/issues/434#issuecomment-1136151239
|
||||
- seccomp:unconfined
|
||||
- apparmor:unconfined
|
||||
@@ -164,11 +174,155 @@ services:
|
||||
MARIADB_PASSWORD: "photoprism"
|
||||
MARIADB_ROOT_PASSWORD: "photoprism"
|
||||
|
||||
## Qdrant (Vector Database)
|
||||
## Docs: https://qdrant.tech/documentation/guides/installation/#docker-compose
|
||||
## Release Notes: https://github.com/qdrant/qdrant/releases
|
||||
## Web UI: https://qdrant.localssl.dev/dashboard
|
||||
qdrant:
|
||||
image: qdrant/qdrant:latest
|
||||
profiles: [ "all", "qdrant" ]
|
||||
stop_grace_period: 15s
|
||||
links:
|
||||
- "traefik:localssl.dev"
|
||||
- "traefik:app.localssl.dev"
|
||||
- "traefik:vision.localssl.dev"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.qdrant.loadbalancer.server.port=6333"
|
||||
- "traefik.http.services.qdrant.loadbalancer.server.scheme=http"
|
||||
- "traefik.http.routers.qdrant.entrypoints=websecure"
|
||||
- "traefik.http.routers.qdrant.rule=Host(`qdrant.localssl.dev`)"
|
||||
- "traefik.http.routers.qdrant.priority=3"
|
||||
- "traefik.http.routers.qdrant.tls.domains[0].main=localssl.dev"
|
||||
- "traefik.http.routers.qdrant.tls.domains[0].sans=*.localssl.dev"
|
||||
- "traefik.http.routers.qdrant.tls=true"
|
||||
expose:
|
||||
- 6333
|
||||
- 6334
|
||||
- 6335
|
||||
volumes:
|
||||
- "./.qdrant.yaml:/qdrant/config/production.yaml"
|
||||
- "./storage/services/qdrant:/qdrant/storage"
|
||||
|
||||
## Ollama Large-Language Model Runner
|
||||
## run "ollama pull [name]:[version]" to download a vision model
|
||||
## listed at <https://ollama.com/search?c=vision>, for example:
|
||||
## docker compose exec ollama ollama pull gemma3:latest
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
stop_grace_period: 10s
|
||||
## Only starts this service if the "all", "ollama", or "vision" profile is specified::
|
||||
## docker compose --profile ollama up -d
|
||||
profiles: [ "all", "ollama", "vision" ]
|
||||
## Insecurely exposes the Ollama service on port 11434
|
||||
## without authentication (for private networks only):
|
||||
# ports:
|
||||
# - "11434:11434"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.ollama.loadbalancer.server.port=11434"
|
||||
- "traefik.http.routers.ollama.rule=Host(`ollama.localssl.dev`)"
|
||||
- "traefik.http.routers.ollama.entrypoints=websecure"
|
||||
- "traefik.http.routers.ollama.tls=true"
|
||||
environment:
|
||||
## Ollama Configuration Options:
|
||||
OLLAMA_HOST: "0.0.0.0:11434"
|
||||
OLLAMA_MODELS: "/root/.ollama" # model storage path (see volumes section below)
|
||||
OLLAMA_MAX_QUEUE: "100" # maximum number of queued requests
|
||||
OLLAMA_NUM_PARALLEL: "1" # maximum number of parallel requests
|
||||
OLLAMA_MAX_LOADED_MODELS: "1" # maximum number of loaded models per GPU
|
||||
OLLAMA_LOAD_TIMEOUT: "5m" # maximum time for loading models (default "5m")
|
||||
OLLAMA_KEEP_ALIVE: "5m" # duration that models stay loaded in memory (default "5m")
|
||||
OLLAMA_CONTEXT_LENGTH: "4096" # maximum input context length
|
||||
OLLAMA_MULTIUSER_CACHE: "false" # optimize prompt caching for multi-user scenarios
|
||||
OLLAMA_NOPRUNE: "false" # disables pruning of model blobs at startup
|
||||
OLLAMA_NOHISTORY: "true" # disables readline history
|
||||
OLLAMA_FLASH_ATTENTION: "false" # enables the experimental flash attention feature
|
||||
OLLAMA_KV_CACHE_TYPE: "f16" # cache quantization (f16, q8_0, or q4_0)
|
||||
OLLAMA_SCHED_SPREAD: "false" # allows scheduling models across all GPUs.
|
||||
OLLAMA_NEW_ENGINE: "true" # enables the new Ollama engine
|
||||
# OLLAMA_DEBUG: "true" # shows additional debug information
|
||||
# OLLAMA_INTEL_GPU: "true" # enables experimental Intel GPU detection
|
||||
## NVIDIA GPU Hardware Acceleration (optional):
|
||||
# NVIDIA_VISIBLE_DEVICES: "all"
|
||||
# NVIDIA_DRIVER_CAPABILITIES: "compute,utility"
|
||||
volumes:
|
||||
- "./storage/services/ollama:/root/.ollama"
|
||||
## NVIDIA GPU Hardware Acceleration (optional):
|
||||
# deploy:
|
||||
# resources:
|
||||
# reservations:
|
||||
# devices:
|
||||
# - driver: "nvidia"
|
||||
# capabilities: [ gpu ]
|
||||
# count: "all"
|
||||
|
||||
## Open WebUI, a Web Interface for Ollama
|
||||
## see https://github.com/open-webui/open-webui
|
||||
open-webui:
|
||||
image: ghcr.io/open-webui/open-webui:main
|
||||
stop_grace_period: 10s
|
||||
## Only starts this service if the "all", "ollama", "open-webui", or "vision" profile is specified::
|
||||
## docker compose --profile ollama up -d
|
||||
profiles: [ "all", "ollama", "open-webui", "vision" ]
|
||||
## Exposes Open WebUI at http://localhost:8080 (use https://chat.localssl.dev/ to access it through Traefik):
|
||||
ports:
|
||||
- "127.0.0.1:8080:8080"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=photoprism"
|
||||
- "traefik.http.services.open-webui.loadbalancer.server.port=8080"
|
||||
- "traefik.http.routers.open-webui.rule=Host(`chat.localssl.dev`) || Host(`open-webui.localssl.dev`) || Host(`ollama-ui.localssl.dev`)"
|
||||
- "traefik.http.routers.open-webui.entrypoints=websecure"
|
||||
- "traefik.http.routers.open-webui.tls=true"
|
||||
environment:
|
||||
WEBUI_URL: "https://chat.localssl.dev"
|
||||
# WEBUI_SECRET_KEY: ""
|
||||
OLLAMA_BASE_URL: "http://ollama:11434"
|
||||
ANONYMIZED_TELEMETRY: "false" # disable Chroma telemetry
|
||||
HF_HUB_DISABLE_TELEMETRY: "1" # disable Hugging Face telemetry
|
||||
# HUGGING_FACE_HUB_TOKEN: "" # see https://huggingface.co/docs/hub/en/security-tokens
|
||||
volumes:
|
||||
- "./storage/services/open-webui:/app/backend/data"
|
||||
|
||||
## PhotoPrism® Computer Vision API
|
||||
## see https://github.com/photoprism/photoprism-vision
|
||||
photoprism-vision:
|
||||
image: photoprism/vision:latest
|
||||
stop_grace_period: 15s
|
||||
## Only starts this service if the "all" or "vision" profile is specified::
|
||||
## docker compose --profile vision up -d
|
||||
profiles: [ "all", "vision" ]
|
||||
working_dir: "/app"
|
||||
links:
|
||||
- "traefik:localssl.dev"
|
||||
- "traefik:app.localssl.dev"
|
||||
- "traefik:qdrant.localssl.dev"
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.qdrant.loadbalancer.server.port=5000"
|
||||
- "traefik.http.services.qdrant.loadbalancer.server.scheme=http"
|
||||
- "traefik.http.routers.qdrant.entrypoints=websecure"
|
||||
- "traefik.http.routers.qdrant.rule=Host(`vision.localssl.dev`)"
|
||||
- "traefik.http.routers.qdrant.priority=3"
|
||||
- "traefik.http.routers.qdrant.tls.domains[0].main=localssl.dev"
|
||||
- "traefik.http.routers.qdrant.tls.domains[0].sans=*.localssl.dev"
|
||||
- "traefik.http.routers.qdrant.tls=true"
|
||||
expose:
|
||||
- 5000
|
||||
environment:
|
||||
TF_CPP_MIN_LOG_LEVEL: 2
|
||||
## Ollama client configuration (for the service, see below):
|
||||
OLLAMA_ENABLED: "true"
|
||||
OLLAMA_HOST: "http://ollama:11434"
|
||||
|
||||
## Traefik v3 (Reverse Proxy)
|
||||
## includes "*.localssl.dev" SSL certificate for test environments
|
||||
## Docs: https://doc.traefik.io/traefik/
|
||||
traefik:
|
||||
image: photoprism/traefik:latest
|
||||
stop_grace_period: 15s
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
ports:
|
||||
@@ -182,6 +336,7 @@ services:
|
||||
## Dummy WebDAV Server
|
||||
dummy-webdav:
|
||||
image: photoprism/dummy-webdav:240627
|
||||
stop_grace_period: 30s
|
||||
environment:
|
||||
WEBDAV_USERNAME: admin
|
||||
WEBDAV_PASSWORD: photoprism
|
||||
@@ -198,6 +353,7 @@ services:
|
||||
## Dummy OIDC Identity Provider
|
||||
dummy-oidc:
|
||||
image: photoprism/dummy-oidc:240627
|
||||
stop_grace_period: 30s
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.dummy-oidc.loadbalancer.server.port=9998"
|
||||
@@ -212,6 +368,7 @@ services:
|
||||
## Docs: https://glauth.github.io/docs/
|
||||
dummy-ldap:
|
||||
image: glauth/glauth-plugins:latest
|
||||
stop_grace_period: 15s
|
||||
ports:
|
||||
- "127.0.0.1:389:389"
|
||||
labels:
|
||||
@@ -231,6 +388,7 @@ services:
|
||||
## Login with "user / photoprism" and "admin / photoprism".
|
||||
keycloak:
|
||||
image: quay.io/keycloak/keycloak:25.0
|
||||
stop_grace_period: 30s
|
||||
command: "start-dev" # development mode, do not use this in production!
|
||||
links:
|
||||
- "traefik:localssl.dev"
|
||||
@@ -262,7 +420,8 @@ services:
|
||||
## ./photoprism client add --id=cs5cpu17n6gj2qo5 --secret=xcCbOrw6I0vcoXzhnOmXhjpVSyFq0l0e -s metrics -n Prometheus -e 60 -t 1
|
||||
prometheus:
|
||||
image: prom/prometheus:latest
|
||||
profiles: ["all", "auth", "prometheus"]
|
||||
stop_grace_period: 15s
|
||||
profiles: [ "all", "auth", "prometheus" ]
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.services.prometheus.loadbalancer.server.port=9090"
|
||||
@@ -282,7 +441,7 @@ volumes:
|
||||
mariadb:
|
||||
driver: local
|
||||
|
||||
## Create shared "photoprism-develop" network for connecting with services in other compose.yaml files
|
||||
## Create shared "photoprism" network for connecting with services in other compose.yaml files
|
||||
networks:
|
||||
default:
|
||||
name: photoprism
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
FROM photoprism/photoprism:preview-ce AS build
|
||||
|
||||
# Set environment variables
|
||||
ENV TF_CPP_MIN_LOG_LEVEL=2 \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
ENV TF_CPP_MIN_LOG_LEVEL=4 \
|
||||
TF_ENABLE_ONEDNN_OPTS=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
PHOTOPRISM_STORAGE_PATH="/photoprism/storage" \
|
||||
PHOTOPRISM_DEBUG="false" \
|
||||
PHOTOPRISM_READONLY="false" \
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
services:
|
||||
demo:
|
||||
restart: always
|
||||
command: photoprism --public start
|
||||
image: photoprism/demo:latest
|
||||
container_name: demo
|
||||
depends_on:
|
||||
@@ -14,6 +13,8 @@ services:
|
||||
volumes:
|
||||
- "./config:/photoprism/storage/config"
|
||||
environment:
|
||||
PHOTOPRISM_DEMO: "true"
|
||||
PHOTOPRISM_PUBLIC: "true"
|
||||
PHOTOPRISM_SITE_URL: "https://demo.yourdomain.com/"
|
||||
# PHOTOPRISM_CDN_URL: "https://demo-cdn.yourdomain.com/"
|
||||
PHOTOPRISM_SITE_TITLE: "PhotoPrism"
|
||||
@@ -26,7 +27,7 @@ services:
|
||||
|
||||
traefik:
|
||||
restart: always
|
||||
image: traefik:v3.1
|
||||
image: traefik:v3.5
|
||||
container_name: traefik
|
||||
ports:
|
||||
- "80:80"
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
FROM photoprism/photoprism:preview-ce-debian AS build
|
||||
|
||||
# Set environment variables
|
||||
ENV TF_CPP_MIN_LOG_LEVEL=2 \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
ENV TF_CPP_MIN_LOG_LEVEL=4 \
|
||||
TF_ENABLE_ONEDNN_OPTS=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
PHOTOPRISM_STORAGE_PATH="/photoprism/storage" \
|
||||
PHOTOPRISM_DEBUG="false" \
|
||||
PHOTOPRISM_READONLY="false" \
|
||||
|
||||
@@ -6,7 +6,7 @@ serversTransport:
|
||||
# Required to proxy services with self-signed HTTPS certificates:
|
||||
insecureSkipVerify: true
|
||||
|
||||
# Open ports ond protocols (HTTP will be redirected to HTTPS):
|
||||
# Open ports and protocols (HTTP will be redirected to HTTPS):
|
||||
entryPoints:
|
||||
web:
|
||||
address: ":80"
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
FROM photoprism/photoprism:preview-ce-ubuntu AS build
|
||||
|
||||
# Set environment variables
|
||||
ENV TF_CPP_MIN_LOG_LEVEL=2 \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
ENV TF_CPP_MIN_LOG_LEVEL=4 \
|
||||
TF_ENABLE_ONEDNN_OPTS=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
PHOTOPRISM_STORAGE_PATH="/photoprism/storage" \
|
||||
PHOTOPRISM_DEBUG="false" \
|
||||
PHOTOPRISM_READONLY="false" \
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
FROM photoprism/photoprism:unstable-ce AS build
|
||||
|
||||
# Set environment variables
|
||||
ENV TF_CPP_MIN_LOG_LEVEL=2 \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
ENV TF_CPP_MIN_LOG_LEVEL=4 \
|
||||
TF_ENABLE_ONEDNN_OPTS=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
PHOTOPRISM_STORAGE_PATH="/photoprism/storage" \
|
||||
PHOTOPRISM_DEBUG="false" \
|
||||
PHOTOPRISM_READONLY="false" \
|
||||
|
||||
@@ -30,14 +30,16 @@ ENV PHOTOPRISM_ARCH=$TARGETARCH \
|
||||
NODE_ENV="production" \
|
||||
DEBIAN_FRONTEND="noninteractive" \
|
||||
TMPDIR="/tmp" \
|
||||
TF_CPP_MIN_LOG_LEVEL="0" \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
TF_VERSION=1.15.2 \
|
||||
TF_CPP_MIN_LOG_LEVEL=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
GOPATH="/go" \
|
||||
GOBIN="/usr/local/bin" \
|
||||
GO111MODULE="on" \
|
||||
CGO_CFLAGS="-g -O2 -Wno-return-local-addr" \
|
||||
PROG="photoprism" \
|
||||
S6_KEEP_ENV=1 \
|
||||
S6_VERBOSITY=0 \
|
||||
S6_LOGGING=0
|
||||
|
||||
# Copy scripts and package sources config.
|
||||
@@ -62,6 +64,7 @@ RUN echo 'APT::Acquire::Retries "3";' > /etc/apt/apt.conf.d/80retries && \
|
||||
iputils-ping dnsutils \
|
||||
&& \
|
||||
/scripts/install-nodejs.sh && \
|
||||
/scripts/install-yt-dlp.sh && \
|
||||
/scripts/install-libheif.sh && \
|
||||
/scripts/install-tensorflow.sh && \
|
||||
echo "ALL ALL=(ALL) NOPASSWD:SETENV: ALL" >> /etc/sudoers.d/all && \
|
||||
|
||||
@@ -29,8 +29,9 @@ ENV PHOTOPRISM_ARCH=$TARGETARCH \
|
||||
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib" \
|
||||
TMPDIR="/tmp" \
|
||||
DEBIAN_FRONTEND="noninteractive" \
|
||||
TF_CPP_MIN_LOG_LEVEL="2" \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
TF_CPP_MIN_LOG_LEVEL=4 \
|
||||
TF_ENABLE_ONEDNN_OPTS=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
PROG="photoprism"
|
||||
|
||||
# Copy scripts and package sources config.
|
||||
|
||||
@@ -30,8 +30,9 @@ ENV PHOTOPRISM_ARCH=$TARGETARCH \
|
||||
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib" \
|
||||
DEBIAN_FRONTEND="noninteractive" \
|
||||
TMPDIR="/tmp" \
|
||||
TF_CPP_MIN_LOG_LEVEL="0" \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
TF_CPP_MIN_LOG_LEVEL=1 \
|
||||
TF_ENABLE_ONEDNN_OPTS=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
GOPATH="/go" \
|
||||
GOBIN="/usr/local/bin" \
|
||||
GO111MODULE="on" \
|
||||
@@ -70,6 +71,7 @@ RUN echo 'APT::Acquire::Retries "3";' > /etc/apt/apt.conf.d/80retries && \
|
||||
&& \
|
||||
/scripts/install-nodejs.sh && \
|
||||
/scripts/install-tensorflow.sh && \
|
||||
/scripts/install-onnx.sh && \
|
||||
/scripts/install-darktable.sh && \
|
||||
echo "ALL ALL=(ALL) NOPASSWD:SETENV: ALL" >> /etc/sudoers.d/all && \
|
||||
mkdir -p /etc/skel/.config/go/telemetry && \
|
||||
|
||||
@@ -29,8 +29,9 @@ ENV PHOTOPRISM_ARCH=$TARGETARCH \
|
||||
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib" \
|
||||
TMPDIR="/tmp" \
|
||||
DEBIAN_FRONTEND="noninteractive" \
|
||||
TF_CPP_MIN_LOG_LEVEL="2" \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
TF_CPP_MIN_LOG_LEVEL=4 \
|
||||
TF_ENABLE_ONEDNN_OPTS=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
PROG="photoprism"
|
||||
|
||||
# copy scripts and debian backports sources list
|
||||
|
||||
@@ -30,8 +30,9 @@ ENV PHOTOPRISM_ARCH=$TARGETARCH \
|
||||
LD_LIBRARY_PATH="/usr/local/lib:/usr/lib" \
|
||||
DEBIAN_FRONTEND="noninteractive" \
|
||||
TMPDIR="/tmp" \
|
||||
TF_CPP_MIN_LOG_LEVEL="0" \
|
||||
MALLOC_ARENA_MAX="4" \
|
||||
TF_CPP_MIN_LOG_LEVEL=1 \
|
||||
TF_ENABLE_ONEDNN_OPTS=1 \
|
||||
MALLOC_ARENA_MAX=2 \
|
||||
GOPATH="/go" \
|
||||
GOBIN="/usr/local/bin" \
|
||||
GO111MODULE="on" \
|
||||
@@ -53,6 +54,7 @@ RUN echo 'APT::Acquire::Retries "3";' > /etc/apt/apt.conf.d/80retries && \
|
||||
apt-get update && apt-get -qq dist-upgrade && \
|
||||
apt-get -qq install \
|
||||
apt-utils \
|
||||
ripgrep \
|
||||
gpg \
|
||||
pkg-config \
|
||||
software-properties-common \
|
||||
@@ -111,6 +113,7 @@ RUN echo 'APT::Acquire::Retries "3";' > /etc/apt/apt.conf.d/80retries && \
|
||||
/scripts/install-nodejs.sh && \
|
||||
/scripts/install-mariadb.sh mariadb-client && \
|
||||
/scripts/install-tensorflow.sh && \
|
||||
/scripts/install-onnx.sh && \
|
||||
/scripts/install-darktable.sh && \
|
||||
/scripts/install-go-tools.sh && \
|
||||
echo "ALL ALL=(ALL) NOPASSWD:SETENV: ALL" >> /etc/sudoers.d/all && \
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user