Compare commits
371 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2cc0312ca | ||
|
|
e3ca7c73ce | ||
|
|
654a9da297 | ||
|
|
7a1af5fb5b | ||
|
|
a4b91826ba | ||
|
|
a7ea815642 | ||
|
|
ea6e79448d | ||
|
|
77813a2acd | ||
|
|
dff48c3295 | ||
|
|
e91962b0b6 | ||
|
|
e0778d2bdd | ||
|
|
631bfd83e9 | ||
|
|
4b31588484 | ||
|
|
8886c90d1e | ||
|
|
f5d8604e59 | ||
|
|
a0574ab045 | ||
|
|
e1de842ffb | ||
|
|
ca134e9ed3 | ||
|
|
1a2554fe95 | ||
|
|
13da605435 | ||
|
|
df2e9863ed | ||
|
|
199205a07c | ||
|
|
94eb2ec197 | ||
|
|
58fce248c1 | ||
|
|
dcd097b5b0 | ||
|
|
040c735243 | ||
|
|
4eedc9423a | ||
|
|
c4876d46b4 | ||
|
|
8400258f07 | ||
|
|
8f29a51277 | ||
|
|
b34c9131ca | ||
|
|
a733e82c21 | ||
|
|
5d8a53b8ec | ||
|
|
dac297b942 | ||
|
|
dc02e16575 | ||
|
|
d8af084933 | ||
|
|
477e646fba | ||
|
|
5307ef3a58 | ||
|
|
4c3b4dea96 | ||
|
|
c811f54958 | ||
|
|
becf10cee6 | ||
|
|
bb72210fc1 | ||
|
|
da65314df5 | ||
|
|
fbf3653831 | ||
|
|
9e7f06ed44 | ||
|
|
c137fc5e79 | ||
|
|
9c8e7a23a6 | ||
|
|
71eb147c13 | ||
|
|
5cae2bffb2 | ||
|
|
972c2da98e | ||
|
|
8a83cc2886 | ||
|
|
c94778dbc1 | ||
|
|
9f0b5829c0 | ||
|
|
7bc98f0dd9 | ||
|
|
1c677722b3 | ||
|
|
99639632dd | ||
|
|
91bb323a16 | ||
|
|
852ddb8acc | ||
|
|
9732ad543b | ||
|
|
37cdd74d73 | ||
|
|
c1830d8fd1 | ||
|
|
7dc1b44d1e | ||
|
|
3f2cc73936 | ||
|
|
94129d3aa5 | ||
|
|
5ea5930d82 | ||
|
|
efdc4fa3c0 | ||
|
|
888dec1593 | ||
|
|
82376e4f17 | ||
|
|
2805395f77 | ||
|
|
f5d1316212 | ||
|
|
b46e8ec4b2 | ||
|
|
878538c151 | ||
|
|
a959a90582 | ||
|
|
c8b6e7661b | ||
|
|
9183371062 | ||
|
|
8641c30530 | ||
|
|
388f6e94f0 | ||
|
|
2dd57a2f40 | ||
|
|
92c3d0cf6c | ||
|
|
c5d402ad62 | ||
|
|
ecdd62eb3c | ||
|
|
4a57f968f8 | ||
|
|
30af3b93ed | ||
|
|
6a5103964f | ||
|
|
6b3dc35f35 | ||
|
|
648fadedd3 | ||
|
|
75df306424 | ||
|
|
ace982f5e6 | ||
|
|
b7614c9164 | ||
|
|
85275d4473 | ||
|
|
17df97fccd | ||
|
|
49e5234872 | ||
|
|
39c654da00 | ||
|
|
b53914ee11 | ||
|
|
ad04f1b631 | ||
|
|
2724d6f5d9 | ||
|
|
d116d79182 | ||
|
|
9763635e5b | ||
|
|
5a9b63ff3b | ||
|
|
2cc326ccf5 | ||
|
|
a41ebccba8 | ||
|
|
d06ced7272 | ||
|
|
cf29d2d495 | ||
|
|
4352a358a7 | ||
|
|
7827be89c8 | ||
|
|
818d21ba57 | ||
|
|
ab5aea8328 | ||
|
|
5e2ebd13b9 | ||
|
|
76233e7646 | ||
|
|
be80e77e93 | ||
|
|
005f9af69b | ||
|
|
14dfd24d11 | ||
|
|
c7c8934e2c | ||
|
|
5af972bb22 | ||
|
|
73189581b0 | ||
|
|
84fd663a56 | ||
|
|
35e431c5a4 | ||
|
|
4988d9c49a | ||
|
|
d0c44aeaaf | ||
|
|
f922d69310 | ||
|
|
f8295635c1 | ||
|
|
4cdd24c871 | ||
|
|
0f273b89ff | ||
|
|
71d9a42688 | ||
|
|
b64639dc4c | ||
|
|
361e5407cf | ||
|
|
0b0d555c69 | ||
|
|
239003fa6c | ||
|
|
b52c4fc04f | ||
|
|
cd620d2134 | ||
|
|
98dd4b537c | ||
|
|
784bdf82e2 | ||
|
|
348f9d5601 | ||
|
|
b6a384ce0b | ||
|
|
5953c2835f | ||
|
|
802c5ca87f | ||
|
|
12bd211516 | ||
|
|
8878d7c9d4 | ||
|
|
139e4384b1 | ||
|
|
f9661af3f7 | ||
|
|
6d3602f9c6 | ||
|
|
a2dde9cd24 | ||
|
|
cab20de6d1 | ||
|
|
e553b6cc9b | ||
|
|
b1442ebfd1 | ||
|
|
9524632cdc | ||
|
|
5da3cf67ce | ||
|
|
31cecfead3 | ||
|
|
a38b07fa34 | ||
|
|
d1d3c73d25 | ||
|
|
c6d09e5270 | ||
|
|
4e7da2799c | ||
|
|
07a11f6920 | ||
|
|
e4487c4876 | ||
|
|
d45004f44d | ||
|
|
efb98c8457 | ||
|
|
119a5ca8d8 | ||
|
|
1c5787946f | ||
|
|
2e4e7befe5 | ||
|
|
666d559e72 | ||
|
|
3b7d4ce600 | ||
|
|
25bcbabb58 | ||
|
|
8f59b8b951 | ||
|
|
6a2aa4c4a4 | ||
|
|
18783e11c7 | ||
|
|
2f0671ee6e | ||
|
|
6fb41f9429 | ||
|
|
7b58c02b1a | ||
|
|
7d252afddb | ||
|
|
b0d13ab09c | ||
|
|
d584196215 | ||
|
|
537ee2e656 | ||
|
|
1a5b19ff69 | ||
|
|
ae28f6ef01 | ||
|
|
f0baf18339 | ||
|
|
c18e0dc66a | ||
|
|
30329df0dd | ||
|
|
008eeeea4e | ||
|
|
7338b5de59 | ||
|
|
e213bb2216 | ||
|
|
2fc7356cf4 | ||
|
|
46d4d0b51e | ||
|
|
5b25b03ea3 | ||
|
|
a09dd57391 | ||
|
|
5e51a3f0ad | ||
|
|
6b32686443 | ||
|
|
f4130a9724 | ||
|
|
e8daa6b97d | ||
|
|
174fae82ac | ||
|
|
fada358607 | ||
|
|
ba6f6f11c5 | ||
|
|
91accba3b9 | ||
|
|
a5768ce402 | ||
|
|
53b1c9208a | ||
|
|
f840431d41 | ||
|
|
fc3222cd2d | ||
|
|
e800cf20cb | ||
|
|
f71b2bda38 | ||
|
|
18e7d5bfea | ||
|
|
50eef93272 | ||
|
|
e0ad3e0fc7 | ||
|
|
38ec8b3e3b | ||
|
|
9cee85c4d6 | ||
|
|
72679891af | ||
|
|
b9207f7e48 | ||
|
|
db3a36bd02 | ||
|
|
623b6ceecc | ||
|
|
f2ff1053b0 | ||
|
|
2643259a93 | ||
|
|
ecb9871f92 | ||
|
|
ddf87440b2 | ||
|
|
38977588b4 | ||
|
|
b84d05b602 | ||
|
|
2de97487f3 | ||
|
|
9f3cbad14f | ||
|
|
7522a8eb9a | ||
|
|
cf37ad5914 | ||
|
|
9a6a092518 | ||
|
|
ec060745e9 | ||
|
|
99e33145db | ||
|
|
97fcee53c0 | ||
|
|
6d2b7459b5 | ||
|
|
05fed0bd6f | ||
|
|
94b4ad6279 | ||
|
|
b0eb28143a | ||
|
|
8eca74cfab | ||
|
|
0f6ea75bb7 | ||
|
|
5d8129600d | ||
|
|
5f1028a535 | ||
|
|
1eb1b10348 | ||
|
|
7c3f602d12 | ||
|
|
346ad9a3e2 | ||
|
|
d267e7f0b7 | ||
|
|
47d54e82df | ||
|
|
b3195504f1 | ||
|
|
285079c12b | ||
|
|
e93260593a | ||
|
|
432d9097d2 | ||
|
|
592374b795 | ||
|
|
2e854ee108 | ||
|
|
101a22c0cd | ||
|
|
bca0943e19 | ||
|
|
897dbb30cf | ||
|
|
6c8a9bd461 | ||
|
|
57e9404729 | ||
|
|
e5842e83c7 | ||
|
|
de345228b5 | ||
|
|
26c6d501e0 | ||
|
|
8d2ddd8985 | ||
|
|
ce1a787bfb | ||
|
|
d75f4b30f3 | ||
|
|
5648924852 | ||
|
|
408a62a9a1 | ||
|
|
476de2a95d | ||
|
|
046b1418f2 | ||
|
|
6f971a0f63 | ||
|
|
94a774a7d2 | ||
|
|
86e24c747e | ||
|
|
9e0bc31d42 | ||
|
|
4487b2a923 | ||
|
|
0ff332bd11 | ||
|
|
0ecb576ff9 | ||
|
|
88d40bc34a | ||
|
|
e70b3abaa9 | ||
|
|
1e8098bbab | ||
|
|
a8b8c4cde4 | ||
|
|
795eb1bb36 | ||
|
|
f43ae1c480 | ||
|
|
6bf18b47a8 | ||
|
|
024ccb117f | ||
|
|
5f6f432a80 | ||
|
|
a6db7dfa8b | ||
|
|
a3e1a43f79 | ||
|
|
5d5c367d7d | ||
|
|
3b01cb035e | ||
|
|
f813183fcf | ||
|
|
347792bf74 | ||
|
|
6822079a03 | ||
|
|
ed1de0cd18 | ||
|
|
aa16591b9f | ||
|
|
4c58a99e4f | ||
|
|
ff0c7ac104 | ||
|
|
fe4982d51b | ||
|
|
2fc719f720 | ||
|
|
06b15a6ed0 | ||
|
|
c0c15644a3 | ||
|
|
90dec95b6e | ||
|
|
de4c972501 | ||
|
|
ed3184fd0b | ||
|
|
df8cc5d6c3 | ||
|
|
88739fcb70 | ||
|
|
3c5d0dc0cd | ||
|
|
02d4a560a1 | ||
|
|
3ab46781b1 | ||
|
|
e895b55f6d | ||
|
|
6c84c9dfc9 | ||
|
|
52d971ceab | ||
|
|
def2389b57 | ||
|
|
93267b5b83 | ||
|
|
43c0e689f9 | ||
|
|
4239112dec | ||
|
|
37f3f0e621 | ||
|
|
af994b4818 | ||
|
|
a2760cb1d1 | ||
|
|
04df7f6e05 | ||
|
|
a1e17968d1 | ||
|
|
0ecd772958 | ||
|
|
3bda8dfa32 | ||
|
|
28cdecea93 | ||
|
|
be9d786ef9 | ||
|
|
b9f330fa18 | ||
|
|
4603ca00e6 | ||
|
|
f7ba4848bc | ||
|
|
7d171c9787 | ||
|
|
07307823ca | ||
|
|
04466968dc | ||
|
|
d39717a2d5 | ||
|
|
b1b26062fc | ||
|
|
4e825fe621 | ||
|
|
bb913f81a3 | ||
|
|
b4aae7fab3 | ||
|
|
631ad78efc | ||
|
|
62a49c3c63 | ||
|
|
dc5e218526 | ||
|
|
ab71c7b80b | ||
|
|
6b17e94b86 | ||
|
|
6ba6f78c3e | ||
|
|
5d7dbe354a | ||
|
|
716efd23fe | ||
|
|
b6342eca0a | ||
|
|
85220c4bf6 | ||
|
|
b00459d077 | ||
|
|
990312fafb | ||
|
|
07df35bad4 | ||
|
|
1f0372c4b5 | ||
|
|
612272ef80 | ||
|
|
bea8d103bf | ||
|
|
7bb3595d46 | ||
|
|
14baddba32 | ||
|
|
8d84f2a557 | ||
|
|
357c7e7597 | ||
|
|
8089989083 | ||
|
|
6d3c4e51ac | ||
|
|
ecc841b5f7 | ||
|
|
682ce12ac2 | ||
|
|
169081d503 | ||
|
|
c71e29a772 | ||
|
|
07300cb9c9 | ||
|
|
58d40a1d81 | ||
|
|
c5d19154f2 | ||
|
|
d304873049 | ||
|
|
ffe62a2577 | ||
|
|
19ae3851e8 | ||
|
|
348ca80292 | ||
|
|
91f5ba9eab | ||
|
|
640cc4c717 | ||
|
|
886c56e4b7 | ||
|
|
53a806af87 | ||
|
|
d0dfb04585 | ||
|
|
96637b30a4 | ||
|
|
ab2eaf136e | ||
|
|
6481b384ee | ||
|
|
efd654d08e | ||
|
|
1a8925b0aa | ||
|
|
bb1ca9ee92 | ||
|
|
4eec2841f4 | ||
|
|
3ce438f4d6 | ||
|
|
444330d91f | ||
|
|
3455871f40 | ||
|
|
99a3ddfefa | ||
|
|
ffb8e897cf |
@@ -6,5 +6,24 @@ root = true
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
trim_trailing_whitespaces = true
|
||||
indent_style = tab
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
quote_type = single
|
||||
max_line_length = off
|
||||
|
||||
[*.js]
|
||||
quote_type = double
|
||||
ij_javascript_use_double_quotes = true
|
||||
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.xml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.json]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
266
.tx/config
@@ -1,399 +1,399 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
host = https://api.transifex.com
|
||||
|
||||
[friendica.addon_advancedcontentfilter_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_advancedcontentfilter_messagespo]
|
||||
file_filter = advancedcontentfilter/lang/<lang>/messages.po
|
||||
source_file = advancedcontentfilter/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_blackout_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_blackout_messagespo]
|
||||
file_filter = blackout/lang/<lang>/messages.po
|
||||
source_file = blackout/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_blockem_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_blockem_messagespo]
|
||||
file_filter = blockem/lang/<lang>/messages.po
|
||||
source_file = blockem/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_blogger_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_blogger_messagespo]
|
||||
file_filter = blogger/lang/<lang>/messages.po
|
||||
source_file = blogger/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_buffer_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_buffer_messagespo]
|
||||
file_filter = buffer/lang/<lang>/messages.po
|
||||
source_file = buffer/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_buglink_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_buglink_messagespo]
|
||||
file_filter = buglink/lang/<lang>/messages.po
|
||||
source_file = buglink/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_catavatar_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_catavatar_messagespo]
|
||||
file_filter = catavatar/lang/<lang>/messages.po
|
||||
source_file = catavatar/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_cookienotice_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_cookienotice_messagespo]
|
||||
file_filter = cookienotice/lang/<lang>/messages.po
|
||||
source_file = cookienotice/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_curweather_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_curweather_messagespo]
|
||||
file_filter = curweather/lang/<lang>/messages.po
|
||||
source_file = curweather/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_diaspora_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_diaspora_messagespo]
|
||||
file_filter = diaspora/lang/<lang>/messages.po
|
||||
source_file = diaspora/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_dwpost_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_dwpost_messagespo]
|
||||
file_filter = dwpost/lang/<lang>/messages.po
|
||||
source_file = dwpost/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_forumdirectory_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_forumdirectory_messagespo]
|
||||
file_filter = forumdirectory/lang/<lang>/messages.po
|
||||
source_file = forumdirectory/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_fromapp_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_fromapp_messagespo]
|
||||
file_filter = fromapp/lang/<lang>/messages.po
|
||||
source_file = fromapp/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_fromgplus_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_fromgplus_messagespo]
|
||||
file_filter = fromgplus/lang/<lang>/messages.po
|
||||
source_file = fromgplus/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_geonames_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_geonames_messagespo]
|
||||
file_filter = geonames/lang/<lang>/messages.po
|
||||
source_file = geonames/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_gnot_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_gnot_messagespo]
|
||||
file_filter = gnot/lang/<lang>/messages.po
|
||||
source_file = gnot/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_gravatar_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_gravatar_messagespo]
|
||||
file_filter = gravatar/lang/<lang>/messages.po
|
||||
source_file = gravatar/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_group_text_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_group_text_messagespo]
|
||||
file_filter = group_text/lang/<lang>/messages.po
|
||||
source_file = group_text/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_ifttt_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_ifttt_messagespo]
|
||||
file_filter = ifttt/lang/<lang>/messages.po
|
||||
source_file = ifttt/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_ijpost_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_ijpost_messagespo]
|
||||
file_filter = ijpost/lang/<lang>/messages.po
|
||||
source_file = ijpost/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_impressum_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_impressum_messagespo]
|
||||
file_filter = impressum/lang/<lang>/messages.po
|
||||
source_file = impressum/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_infiniteimprobabilitydrive_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_infiniteimprobabilitydrive_messagespo]
|
||||
file_filter = infiniteimprobabilitydrive/lang/<lang>/messages.po
|
||||
source_file = infiniteimprobabilitydrive/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_irc_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_irc_messagespo]
|
||||
file_filter = irc/lang/<lang>/messages.po
|
||||
source_file = irc/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_jappixmini_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_jappixmini_messagespo]
|
||||
file_filter = jappixmini/lang/<lang>/messages.po
|
||||
source_file = jappixmini/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_js_upload_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_js_upload_messagespo]
|
||||
file_filter = js_upload/lang/<lang>/messages.po
|
||||
source_file = js_upload/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_krynn_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_krynn_messagespo]
|
||||
file_filter = krynn/lang/<lang>/messages.po
|
||||
source_file = krynn/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_langfilter_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_langfilter_messagespo]
|
||||
file_filter = langfilter/lang/<lang>/messages.po
|
||||
source_file = langfilter/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_libertree_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_libertree_messagespo]
|
||||
file_filter = libertree/lang/<lang>/messages.po
|
||||
source_file = libertree/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_libravatar_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_libravatar_messagespo]
|
||||
file_filter = libravatar/lang/<lang>/messages.po
|
||||
source_file = libravatar/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_ljpost_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_ljpost_messagespo]
|
||||
file_filter = ljpost/lang/<lang>/messages.po
|
||||
source_file = ljpost/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_mailstream_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_mailstream_messagespo]
|
||||
file_filter = mailstream/lang/<lang>/messages.po
|
||||
source_file = mailstream/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_mathjax_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_mathjax_messagespo]
|
||||
file_filter = mathjax/lang/<lang>/messages.po
|
||||
source_file = mathjax/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_membersince_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_membersince_messagespo]
|
||||
file_filter = membersince/lang/<lang>/messages.po
|
||||
source_file = membersince/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_morechoice_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_morechoice_messagespo]
|
||||
file_filter = morechoice/lang/<lang>/messages.po
|
||||
source_file = morechoice/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_morepokes_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_morepokes_messagespo]
|
||||
file_filter = morepokes/lang/<lang>/messages.po
|
||||
source_file = morepokes/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_newmemberwidget_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_newmemberwidget_messagespo]
|
||||
file_filter = newmemberwidget/lang/<lang>/messages.po
|
||||
source_file = newmemberwidget/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_notifyall_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_notifyall_messagespo]
|
||||
file_filter = notifyall/lang/<lang>/messages.po
|
||||
source_file = notifyall/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_notimeline_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_notimeline_messagespo]
|
||||
file_filter = notimeline/lang/<lang>/messages.po
|
||||
source_file = notimeline/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_nsfw_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_nsfw_messagespo]
|
||||
file_filter = nsfw/lang/<lang>/messages.po
|
||||
source_file = nsfw/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_numfriends_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_numfriends_messagespo]
|
||||
file_filter = numfriends/lang/<lang>/messages.po
|
||||
source_file = numfriends/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_openstreetmap_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_openstreetmap_messagespo]
|
||||
file_filter = openstreetmap/lang/<lang>/messages.po
|
||||
source_file = openstreetmap/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_pageheader_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_pageheader_messagespo]
|
||||
file_filter = pageheader/lang/<lang>/messages.po
|
||||
source_file = pageheader/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_piwik_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_piwik_messagespo]
|
||||
file_filter = piwik/lang/<lang>/messages.po
|
||||
source_file = piwik/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_planets_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_planets_messagespo]
|
||||
file_filter = planets/lang/<lang>/messages.po
|
||||
source_file = planets/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_public_server_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_public_server_messagespo]
|
||||
file_filter = public_server/lang/<lang>/messages.po
|
||||
source_file = public_server/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_pumpio_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_pumpio_messagespo]
|
||||
file_filter = pumpio/lang/<lang>/messages.po
|
||||
source_file = pumpio/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_qcomment_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_qcomment_messagespo]
|
||||
file_filter = qcomment/lang/<lang>/messages.po
|
||||
source_file = qcomment/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_randplace_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_randplace_messagespo]
|
||||
file_filter = randplace/lang/<lang>/messages.po
|
||||
source_file = randplace/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_remote_permissions_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_remote_permissions_messagespo]
|
||||
file_filter = remote_permissions/lang/<lang>/messages.po
|
||||
source_file = remote_permissions/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_rendertime_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_rendertime_messagespo]
|
||||
file_filter = rendertime/lang/<lang>/messages.po
|
||||
source_file = rendertime/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_securemail_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_securemail_messagespo]
|
||||
file_filter = securemail/lang/<lang>/messages.po
|
||||
source_file = securemail/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_showmore_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_showmore_messagespo]
|
||||
file_filter = showmore/lang/<lang>/messages.po
|
||||
source_file = showmore/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_smileybutton_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_smileybutton_messagespo]
|
||||
file_filter = smileybutton/lang/<lang>/messages.po
|
||||
source_file = smileybutton/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_startpage_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_startpage_messagespo]
|
||||
file_filter = startpage/lang/<lang>/messages.po
|
||||
source_file = startpage/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_statusnet_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_statusnet_messagespo]
|
||||
file_filter = statusnet/lang/<lang>/messages.po
|
||||
source_file = statusnet/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_superblock_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_superblock_messagespo]
|
||||
file_filter = superblock/lang/<lang>/messages.po
|
||||
source_file = superblock/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_testdrive_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_testdrive_messagespo]
|
||||
file_filter = testdrive/lang/<lang>/messages.po
|
||||
source_file = testdrive/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_tictac_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_tictac_messagespo]
|
||||
file_filter = tictac/lang/<lang>/messages.po
|
||||
source_file = tictac/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_tumblr_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_tumblr_messagespo]
|
||||
file_filter = tumblr/lang/<lang>/messages.po
|
||||
source_file = tumblr/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_twitter_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_twitter_messagespo]
|
||||
file_filter = twitter/lang/<lang>/messages.po
|
||||
source_file = twitter/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_viewsrc_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_viewsrc_messagespo]
|
||||
file_filter = viewsrc/lang/<lang>/messages.po
|
||||
source_file = viewsrc/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_webrtc_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_webrtc_messagespo]
|
||||
file_filter = webrtc/lang/<lang>/messages.po
|
||||
source_file = webrtc/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_widgets_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_widgets_messagespo]
|
||||
file_filter = widgets/lang/<lang>/messages.po
|
||||
source_file = widgets/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_windowsphonepush_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_windowsphonepush_messagespo]
|
||||
file_filter = windowsphonepush/lang/<lang>/messages.po
|
||||
source_file = windowsphonepush/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_wppost_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_wppost_messagespo]
|
||||
file_filter = wppost/lang/<lang>/messages.po
|
||||
source_file = wppost/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
[friendica.addon_xmpp_messagespo]
|
||||
[o:Friendica:p:friendica:r:addon_xmpp_messagespo]
|
||||
file_filter = xmpp/lang/<lang>/messages.po
|
||||
source_file = xmpp/lang/C/messages.po
|
||||
source_lang = en
|
||||
type = PO
|
||||
type = PO
|
||||
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
matrix:
|
||||
include:
|
||||
- PHP_MAJOR_VERSION: 7.4
|
||||
PHP_VERSION: 7.4.18
|
||||
|
||||
platform: releaser/release # This prevents executing this pipeline at other servers than ci.friendi.ca
|
||||
# This prevents executing this pipeline at other servers than ci.friendi.ca
|
||||
labels:
|
||||
location: friendica
|
||||
type: releaser
|
||||
|
||||
skip_clone: true
|
||||
|
||||
@@ -36,7 +34,7 @@ pipeline:
|
||||
settings:
|
||||
backend: "filesystem"
|
||||
restore: true
|
||||
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
||||
cache_key: "{{ .Repo.Name }}_php7.4_{{ arch }}_{{ os }}"
|
||||
archive_format: "gzip"
|
||||
mount:
|
||||
- '.composer'
|
||||
@@ -47,7 +45,7 @@ pipeline:
|
||||
branch: [ develop, '*-rc' ]
|
||||
event: push
|
||||
composer_install:
|
||||
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
||||
image: friendicaci/php7.4:php7.4.33
|
||||
commands:
|
||||
- export COMPOSER_HOME=.composer
|
||||
- composer validate
|
||||
@@ -102,37 +100,12 @@ pipeline:
|
||||
repo: friendica/friendica-addons
|
||||
branch: [ develop, '*-rc' ]
|
||||
event: push
|
||||
upload_artifacts:
|
||||
publish_artifacts:
|
||||
image: alpine
|
||||
secrets:
|
||||
- source: sftp_host
|
||||
target: lftp_host
|
||||
- source: sftp_user
|
||||
target: lftp_user
|
||||
- source: ssh_key
|
||||
target: lftp_key
|
||||
environment:
|
||||
LFTP_PORT: "22"
|
||||
LFTP_SOURCE: "build"
|
||||
LFTP_TARGET: "/http"
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts
|
||||
commands:
|
||||
- apk add lftp openssh openssl
|
||||
- touch drone.key
|
||||
- chmod 400 drone.key
|
||||
- echo "$LFTP_KEY" | openssl base64 -A -d > drone.key
|
||||
- lftp -c "
|
||||
set net:timeout 5;
|
||||
set net:max-retries 2;
|
||||
set net:reconnect-interval-base 5;
|
||||
set sftp:auto-confirm true;
|
||||
set sftp:connect-program 'ssh -q -a -x -i drone.key';
|
||||
connect sftp://$LFTP_USER:@$LFTP_HOST:$LFTP_PORT;
|
||||
cd $LFTP_TARGET;
|
||||
mput $LFTP_SOURCE/*;
|
||||
"
|
||||
- rm drone.key
|
||||
- cp -fr build/* /tmp/friendica_files/
|
||||
volumes:
|
||||
- files:/tmp/friendica_files
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
branch: [ develop, '*-rc' ]
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
matrix:
|
||||
include:
|
||||
- PHP_MAJOR_VERSION: 7.4
|
||||
PHP_VERSION: 7.4.18
|
||||
|
||||
platform: releaser/release # This prevents executing this pipeline at other servers than ci.friendi.ca
|
||||
# This prevents executing this pipeline at other servers than ci.friendi.ca
|
||||
labels:
|
||||
location: friendica
|
||||
type: releaser
|
||||
|
||||
skip_clone: true
|
||||
|
||||
@@ -34,7 +32,7 @@ pipeline:
|
||||
settings:
|
||||
backend: "filesystem"
|
||||
restore: true
|
||||
cache_key: "{{ .Repo.Name }}_php${PHP_MAJOR_VERSION}_{{ arch }}_{{ os }}"
|
||||
cache_key: "{{ .Repo.Name }}_php7.4_{{ arch }}_{{ os }}"
|
||||
archive_format: "gzip"
|
||||
mount:
|
||||
- '.composer'
|
||||
@@ -44,7 +42,7 @@ pipeline:
|
||||
repo: friendica/friendica-addons
|
||||
event: tag
|
||||
composer_install:
|
||||
image: friendicaci/php${PHP_MAJOR_VERSION}:php${PHP_VERSION}
|
||||
image: friendicaci/php7.4:php7.4.33
|
||||
commands:
|
||||
- export COMPOSER_HOME=.composer
|
||||
- composer validate
|
||||
@@ -96,37 +94,12 @@ pipeline:
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
event: tag
|
||||
upload_artifacts:
|
||||
publish_artifacts:
|
||||
image: alpine
|
||||
secrets:
|
||||
- source: sftp_host
|
||||
target: lftp_host
|
||||
- source: sftp_user
|
||||
target: lftp_user
|
||||
- source: ssh_key
|
||||
target: lftp_key
|
||||
environment:
|
||||
LFTP_PORT: "22"
|
||||
LFTP_SOURCE: "build"
|
||||
LFTP_TARGET: "/http"
|
||||
volumes:
|
||||
- /etc/hosts:/etc/hosts
|
||||
commands:
|
||||
- apk add lftp openssh openssl
|
||||
- touch drone.key
|
||||
- chmod 400 drone.key
|
||||
- echo "$LFTP_KEY" | openssl base64 -A -d > drone.key
|
||||
- lftp -c "
|
||||
set net:timeout 5;
|
||||
set net:max-retries 2;
|
||||
set net:reconnect-interval-base 5;
|
||||
set sftp:auto-confirm true;
|
||||
set sftp:connect-program 'ssh -q -a -x -i drone.key';
|
||||
connect sftp://$LFTP_USER:@$LFTP_HOST:$LFTP_PORT;
|
||||
cd $LFTP_TARGET;
|
||||
mput $LFTP_SOURCE/*;
|
||||
"
|
||||
- rm drone.key
|
||||
- cp -fr build/* /tmp/friendica_files/
|
||||
volumes:
|
||||
- files:/tmp/friendica_files
|
||||
when:
|
||||
repo: friendica/friendica-addons
|
||||
event: tag
|
||||
|
||||
@@ -55,7 +55,7 @@ use Symfony\Component\ExpressionLanguage;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
function advancedcontentfilter_install(App $a)
|
||||
function advancedcontentfilter_install()
|
||||
{
|
||||
Hook::register('dbstructure_definition' , __FILE__, 'advancedcontentfilter_dbstructure_definition');
|
||||
Hook::register('prepare_body_content_filter', __FILE__, 'advancedcontentfilter_prepare_body_content_filter');
|
||||
@@ -64,33 +64,37 @@ function advancedcontentfilter_install(App $a)
|
||||
Hook::add('dbstructure_definition' , __FILE__, 'advancedcontentfilter_dbstructure_definition');
|
||||
DBStructure::performUpdate();
|
||||
|
||||
Logger::notice("installed advancedcontentfilter");
|
||||
Logger::notice('installed advancedcontentfilter');
|
||||
}
|
||||
|
||||
/*
|
||||
* Hooks
|
||||
*/
|
||||
|
||||
function advancedcontentfilter_dbstructure_definition(App $a, &$database)
|
||||
function advancedcontentfilter_dbstructure_definition(&$database)
|
||||
{
|
||||
$database["advancedcontentfilter_rules"] = [
|
||||
"comment" => "Advancedcontentfilter addon rules",
|
||||
"fields" => [
|
||||
"id" => ["type" => "int unsigned", "not null" => "1", "extra" => "auto_increment", "primary" => "1", "comment" => "Auto incremented rule id"],
|
||||
"uid" => ["type" => "int unsigned", "not null" => "1", "comment" => "Owner user id"],
|
||||
"name" => ["type" => "varchar(255)", "not null" => "1", "comment" => "Rule name"],
|
||||
"expression" => ["type" => "mediumtext" , "not null" => "1", "comment" => "Expression text"],
|
||||
"serialized" => ["type" => "mediumtext" , "not null" => "1", "comment" => "Serialized parsed expression"],
|
||||
"active" => ["type" => "boolean" , "not null" => "1", "default" => "1", "comment" => "Whether the rule is active or not"],
|
||||
"created" => ["type" => "datetime" , "not null" => "1", "default" => DBA::NULL_DATETIME, "comment" => "Creation date"],
|
||||
$database['advancedcontentfilter_rules'] = [
|
||||
'comment' => 'Advancedcontentfilter addon rules',
|
||||
'fields' => [
|
||||
'id' => ['type' => 'int unsigned', 'not null' => '1', 'extra' => 'auto_increment', 'primary' => '1', 'comment' => 'Auto incremented rule id'],
|
||||
'uid' => ['type' => 'int unsigned', 'not null' => '1', 'comment' => 'Owner user id'],
|
||||
'name' => ['type' => 'varchar(255)', 'not null' => '1', 'comment' => 'Rule name'],
|
||||
'expression' => ['type' => 'mediumtext' , 'not null' => '1', 'comment' => 'Expression text'],
|
||||
'serialized' => ['type' => 'mediumtext' , 'not null' => '1', 'comment' => 'Serialized parsed expression'],
|
||||
'active' => ['type' => 'boolean' , 'not null' => '1', 'default' => '1', 'comment' => 'Whether the rule is active or not'],
|
||||
'created' => ['type' => 'datetime' , 'not null' => '1', 'default' => DBA::NULL_DATETIME, 'comment' => 'Creation date'],
|
||||
],
|
||||
"indexes" => [
|
||||
"PRIMARY" => ["id"],
|
||||
"uid_active" => ["uid", "active"],
|
||||
'indexes' => [
|
||||
'PRIMARY' => ['id'],
|
||||
'uid_active' => ['uid', 'active'],
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $item Prepared by either Model\Item::prepareBody or advancedcontentfilter_prepare_item_row
|
||||
* @return array
|
||||
*/
|
||||
function advancedcontentfilter_get_filter_fields(array $item)
|
||||
{
|
||||
$vars = [];
|
||||
@@ -111,7 +115,7 @@ function advancedcontentfilter_get_filter_fields(array $item)
|
||||
return $vars;
|
||||
}
|
||||
|
||||
function advancedcontentfilter_prepare_body_content_filter(App $a, &$hook_data)
|
||||
function advancedcontentfilter_prepare_body_content_filter(&$hook_data)
|
||||
{
|
||||
static $expressionLanguage;
|
||||
|
||||
@@ -119,21 +123,21 @@ function advancedcontentfilter_prepare_body_content_filter(App $a, &$hook_data)
|
||||
$expressionLanguage = new ExpressionLanguage\ExpressionLanguage();
|
||||
}
|
||||
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$vars = advancedcontentfilter_get_filter_fields($hook_data['item']);
|
||||
|
||||
$rules = DI::cache()->get('rules_' . local_user());
|
||||
$rules = DI::cache()->get('rules_' . DI::userSession()->getLocalUserId());
|
||||
if (!isset($rules)) {
|
||||
$rules = DBA::toArray(DBA::select(
|
||||
'advancedcontentfilter_rules',
|
||||
['name', 'expression', 'serialized'],
|
||||
['uid' => local_user(), 'active' => true]
|
||||
['uid' => DI::userSession()->getLocalUserId(), 'active' => true]
|
||||
));
|
||||
|
||||
DI::cache()->set('rules_' . local_user(), $rules);
|
||||
DI::cache()->set('rules_' . DI::userSession()->getLocalUserId(), $rules);
|
||||
}
|
||||
|
||||
if ($rules) {
|
||||
@@ -159,9 +163,9 @@ function advancedcontentfilter_prepare_body_content_filter(App $a, &$hook_data)
|
||||
}
|
||||
|
||||
|
||||
function advancedcontentfilter_addon_settings(App $a, array &$data)
|
||||
function advancedcontentfilter_addon_settings(array &$data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -176,9 +180,14 @@ function advancedcontentfilter_addon_settings(App $a, array &$data)
|
||||
* Module
|
||||
*/
|
||||
|
||||
/**
|
||||
* This is a statement rather than an actual function definition. The simple
|
||||
* existence of this method is checked to figure out if the addon offers a
|
||||
* module.
|
||||
*/
|
||||
function advancedcontentfilter_module() {}
|
||||
|
||||
function advancedcontentfilter_init(App $a)
|
||||
function advancedcontentfilter_init()
|
||||
{
|
||||
if (DI::args()->getArgc() > 1 && DI::args()->getArgv()[1] == 'api') {
|
||||
$slim = new \Slim\App();
|
||||
@@ -192,14 +201,14 @@ function advancedcontentfilter_init(App $a)
|
||||
}
|
||||
}
|
||||
|
||||
function advancedcontentfilter_content(App $a)
|
||||
function advancedcontentfilter_content()
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return Login::form('/' . implode('/', DI::args()->getArgv()));
|
||||
}
|
||||
|
||||
if (DI::args()->getArgc() > 1 && DI::args()->getArgv()[1] == 'help') {
|
||||
$user = User::getById(local_user());
|
||||
$user = User::getById(DI::userSession()->getLocalUserId());
|
||||
|
||||
$lang = $user['language'];
|
||||
|
||||
@@ -243,7 +252,7 @@ function advancedcontentfilter_content(App $a)
|
||||
'rule_expression' => DI::l10n()->t('Rule Expression'),
|
||||
'cancel' => DI::l10n()->t('Cancel'),
|
||||
],
|
||||
'$current_theme' => $a->getCurrentTheme(),
|
||||
'$current_theme' => DI::app()->getCurrentTheme(),
|
||||
'$rules' => advancedcontentfilter_get_rules(),
|
||||
'$form_security_token' => BaseModule::getFormSecurityToken()
|
||||
]);
|
||||
@@ -262,30 +271,20 @@ function advancedcontentfilter_build_fields($data)
|
||||
}
|
||||
|
||||
if (!empty($data['expression'])) {
|
||||
$allowed_keys = [
|
||||
'author_id', 'author_link', 'author_name', 'author_avatar',
|
||||
'owner_id', 'owner_link', 'owner_name', 'owner_avatar',
|
||||
'contact_id', 'uid', 'id', 'parent', 'uri',
|
||||
'thr_parent', 'parent_uri',
|
||||
'content_warning',
|
||||
'commented', 'created', 'edited', 'received',
|
||||
'verb', 'object_type', 'postopts', 'plink', 'guid', 'wall', 'private', 'starred',
|
||||
'title', 'body',
|
||||
'file', 'event_id', 'location', 'coord', 'app', 'attach',
|
||||
'rendered_hash', 'rendered_html', 'object',
|
||||
'allow_cid', 'allow_gid', 'deny_cid', 'deny_gid',
|
||||
'item_id', 'item_network', 'author_thumb', 'owner_thumb',
|
||||
'network', 'url', 'name', 'writable', 'self',
|
||||
'cid', 'alias',
|
||||
'event_created', 'event_edited', 'event_start', 'event_finish', 'event_summary',
|
||||
'event_desc', 'event_location', 'event_type', 'event_nofinish', 'event_ignore',
|
||||
'children', 'pagedrop', 'tags', 'hashtags', 'mentions',
|
||||
'attachments',
|
||||
];
|
||||
// Using a dummy item to validate the field existence
|
||||
$condition = ["(`uid` = ? OR `uid` = 0)", DI::userSession()->getLocalUserId()];
|
||||
$params = ['order' => ['uid' => true]];
|
||||
$item_row = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), [], $condition, $params);
|
||||
|
||||
if (!DBA::isResult($item_row)) {
|
||||
throw new HTTPException\NotFoundException(DI::l10n()->t('This addon requires this node having at least one post'));
|
||||
}
|
||||
|
||||
$expressionLanguage = new ExpressionLanguage\ExpressionLanguage();
|
||||
|
||||
$parsedExpression = $expressionLanguage->parse($data['expression'], $allowed_keys);
|
||||
$parsedExpression = $expressionLanguage->parse(
|
||||
$data['expression'],
|
||||
array_keys(advancedcontentfilter_get_filter_fields(advancedcontentfilter_prepare_item_row($item_row)))
|
||||
);
|
||||
|
||||
$serialized = serialize($parsedExpression->getNodes());
|
||||
|
||||
@@ -308,29 +307,29 @@ function advancedcontentfilter_build_fields($data)
|
||||
|
||||
function advancedcontentfilter_get_rules()
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
|
||||
}
|
||||
|
||||
$rules = DBA::toArray(DBA::select('advancedcontentfilter_rules', [], ['uid' => local_user()]));
|
||||
$rules = DBA::toArray(DBA::select('advancedcontentfilter_rules', [], ['uid' => DI::userSession()->getLocalUserId()]));
|
||||
|
||||
return json_encode($rules);
|
||||
}
|
||||
|
||||
function advancedcontentfilter_get_rules_id(ServerRequestInterface $request, ResponseInterface $response, $args)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
|
||||
}
|
||||
|
||||
$rule = DBA::selectFirst('advancedcontentfilter_rules', [], ['id' => $args['id'], 'uid' => local_user()]);
|
||||
$rule = DBA::selectFirst('advancedcontentfilter_rules', [], ['id' => $args['id'], 'uid' => DI::userSession()->getLocalUserId()]);
|
||||
|
||||
return json_encode($rule);
|
||||
}
|
||||
|
||||
function advancedcontentfilter_post_rules(ServerRequestInterface $request)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
|
||||
}
|
||||
|
||||
@@ -350,7 +349,7 @@ function advancedcontentfilter_post_rules(ServerRequestInterface $request)
|
||||
throw new HTTPException\BadRequestException(DI::l10n()->t('The rule name and expression are required.'));
|
||||
}
|
||||
|
||||
$fields['uid'] = local_user();
|
||||
$fields['uid'] = DI::userSession()->getLocalUserId();
|
||||
$fields['created'] = DateTimeFormat::utcNow();
|
||||
|
||||
if (!DBA::insert('advancedcontentfilter_rules', $fields)) {
|
||||
@@ -359,14 +358,14 @@ function advancedcontentfilter_post_rules(ServerRequestInterface $request)
|
||||
|
||||
$rule = DBA::selectFirst('advancedcontentfilter_rules', [], ['id' => DBA::lastInsertId()]);
|
||||
|
||||
DI::cache()->delete('rules_' . local_user());
|
||||
DI::cache()->delete('rules_' . DI::userSession()->getLocalUserId());
|
||||
|
||||
return json_encode(['message' => DI::l10n()->t('Rule successfully added'), 'rule' => $rule]);
|
||||
}
|
||||
|
||||
function advancedcontentfilter_put_rules_id(ServerRequestInterface $request, ResponseInterface $response, $args)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
|
||||
}
|
||||
|
||||
@@ -374,7 +373,7 @@ function advancedcontentfilter_put_rules_id(ServerRequestInterface $request, Res
|
||||
throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid form security token, please refresh the page.'));
|
||||
}
|
||||
|
||||
if (!DBA::exists('advancedcontentfilter_rules', ['id' => $args['id'], 'uid' => local_user()])) {
|
||||
if (!DBA::exists('advancedcontentfilter_rules', ['id' => $args['id'], 'uid' => DI::userSession()->getLocalUserId()])) {
|
||||
throw new HTTPException\NotFoundException(DI::l10n()->t('Rule doesn\'t exist or doesn\'t belong to you.'));
|
||||
}
|
||||
|
||||
@@ -390,14 +389,14 @@ function advancedcontentfilter_put_rules_id(ServerRequestInterface $request, Res
|
||||
throw new HTTPException\ServiceUnavailableException(DBA::errorMessage());
|
||||
}
|
||||
|
||||
DI::cache()->delete('rules_' . local_user());
|
||||
DI::cache()->delete('rules_' . DI::userSession()->getLocalUserId());
|
||||
|
||||
return json_encode(['message' => DI::l10n()->t('Rule successfully updated')]);
|
||||
}
|
||||
|
||||
function advancedcontentfilter_delete_rules_id(ServerRequestInterface $request, ResponseInterface $response, $args)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
|
||||
}
|
||||
|
||||
@@ -405,7 +404,7 @@ function advancedcontentfilter_delete_rules_id(ServerRequestInterface $request,
|
||||
throw new HTTPException\BadRequestException(DI::l10n()->t('Invalid form security token, please refresh the page.'));
|
||||
}
|
||||
|
||||
if (!DBA::exists('advancedcontentfilter_rules', ['id' => $args['id'], 'uid' => local_user()])) {
|
||||
if (!DBA::exists('advancedcontentfilter_rules', ['id' => $args['id'], 'uid' => DI::userSession()->getLocalUserId()])) {
|
||||
throw new HTTPException\NotFoundException(DI::l10n()->t('Rule doesn\'t exist or doesn\'t belong to you.'));
|
||||
}
|
||||
|
||||
@@ -413,14 +412,14 @@ function advancedcontentfilter_delete_rules_id(ServerRequestInterface $request,
|
||||
throw new HTTPException\ServiceUnavailableException(DBA::errorMessage());
|
||||
}
|
||||
|
||||
DI::cache()->delete('rules_' . local_user());
|
||||
DI::cache()->delete('rules_' . DI::userSession()->getLocalUserId());
|
||||
|
||||
return json_encode(['message' => DI::l10n()->t('Rule successfully deleted')]);
|
||||
}
|
||||
|
||||
function advancedcontentfilter_get_variables_guid(ServerRequestInterface $request, ResponseInterface $response, $args)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
throw new HTTPException\UnauthorizedException(DI::l10n()->t('You must be logged in to use this method'));
|
||||
}
|
||||
|
||||
@@ -428,25 +427,35 @@ function advancedcontentfilter_get_variables_guid(ServerRequestInterface $reques
|
||||
throw new HTTPException\BadRequestException(DI::l10n()->t('Missing argument: guid.'));
|
||||
}
|
||||
|
||||
$condition = ["`guid` = ? AND (`uid` = ? OR `uid` = 0)", $args['guid'], local_user()];
|
||||
$condition = ["`guid` = ? AND (`uid` = ? OR `uid` = 0)", $args['guid'], DI::userSession()->getLocalUserId()];
|
||||
$params = ['order' => ['uid' => true]];
|
||||
$item = Post::selectFirstForUser(local_user(), [], $condition, $params);
|
||||
$item_row = Post::selectFirstForUser(DI::userSession()->getLocalUserId(), [], $condition, $params);
|
||||
|
||||
if (!DBA::isResult($item)) {
|
||||
if (!DBA::isResult($item_row)) {
|
||||
throw new HTTPException\NotFoundException(DI::l10n()->t('Unknown post with guid: %s', $args['guid']));
|
||||
}
|
||||
|
||||
$tags = Tag::populateFromItem($item);
|
||||
|
||||
$item['tags'] = $tags['tags'];
|
||||
$item['hashtags'] = $tags['hashtags'];
|
||||
$item['mentions'] = $tags['mentions'];
|
||||
|
||||
$attachments = Post\Media::splitAttachments($item['uri-id'], $item['guid'] ?? '');
|
||||
|
||||
$item['attachments'] = $attachments;
|
||||
|
||||
$return = advancedcontentfilter_get_filter_fields($item);
|
||||
$return = advancedcontentfilter_get_filter_fields(advancedcontentfilter_prepare_item_row($item_row));
|
||||
|
||||
return json_encode(['variables' => str_replace('\\\'', '\'', var_export($return, true))]);
|
||||
}
|
||||
|
||||
/**
|
||||
* This mimimcs the processing performed in Model\Item::prepareBody
|
||||
*
|
||||
* @param array $item_row
|
||||
* @return array
|
||||
* @throws HTTPException\InternalServerErrorException
|
||||
* @throws ImagickException
|
||||
*/
|
||||
function advancedcontentfilter_prepare_item_row(array $item_row): array
|
||||
{
|
||||
$tags = Tag::populateFromItem($item_row);
|
||||
|
||||
$item_row['tags'] = $tags['tags'];
|
||||
$item_row['hashtags'] = $tags['hashtags'];
|
||||
$item_row['mentions'] = $tags['mentions'];
|
||||
$item_row['attachments'] = Post\Media::splitAttachments($item_row['uri-id']);
|
||||
|
||||
return $item_row;
|
||||
}
|
||||
|
||||
11894
advancedcontentfilter/asset/vue/dist/vue.js
vendored
Normal file
11
advancedcontentfilter/asset/vue/dist/vue.min.js
vendored
Normal file
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:13-0500\n"
|
||||
"POT-Creation-Date: 2022-05-11 08:54-0400\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"
|
||||
@@ -112,42 +112,46 @@ msgstr ""
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:312 advancedcontentfilter.php:323
|
||||
#: advancedcontentfilter.php:334 advancedcontentfilter.php:370
|
||||
#: advancedcontentfilter.php:401 advancedcontentfilter.php:424
|
||||
#: advancedcontentfilter.php:295
|
||||
msgid "This addon requires this node having at least one post"
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336
|
||||
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:414 advancedcontentfilter.php:437
|
||||
msgid "You must be logged in to use this method"
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:338 advancedcontentfilter.php:374
|
||||
#: advancedcontentfilter.php:405
|
||||
#: advancedcontentfilter.php:351 advancedcontentfilter.php:387
|
||||
#: advancedcontentfilter.php:418
|
||||
msgid "Invalid form security token, please refresh the page."
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:350
|
||||
#: advancedcontentfilter.php:363
|
||||
msgid "The rule name and expression are required."
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:364
|
||||
#: advancedcontentfilter.php:377
|
||||
msgid "Rule successfully added"
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:378 advancedcontentfilter.php:409
|
||||
#: advancedcontentfilter.php:391 advancedcontentfilter.php:422
|
||||
msgid "Rule doesn't exist or doesn't belong to you."
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:395
|
||||
#: advancedcontentfilter.php:408
|
||||
msgid "Rule successfully updated"
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:418
|
||||
#: advancedcontentfilter.php:431
|
||||
msgid "Rule successfully deleted"
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:428
|
||||
#: advancedcontentfilter.php:441
|
||||
msgid "Missing argument: guid."
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:436
|
||||
#: advancedcontentfilter.php:449
|
||||
#, php-format
|
||||
msgid "Unknown post with guid: %s"
|
||||
msgstr ""
|
||||
|
||||
@@ -5,49 +5,45 @@
|
||||
#
|
||||
# Translators:
|
||||
# Ulf Rompe <transifex.com@rompe.org>, 2019
|
||||
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2021
|
||||
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"POT-Creation-Date: 2022-05-11 08:54-0400\n"
|
||||
"PO-Revision-Date: 2018-05-24 06:41+0000\n"
|
||||
"Last-Translator: Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2021\n"
|
||||
"Language-Team: German (https://www.transifex.com/Friendica/teams/12172/de/)\n"
|
||||
"Last-Translator: Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2022\n"
|
||||
"Language-Team: German (https://app.transifex.com/Friendica/teams/12172/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/middlewares.php:49
|
||||
msgid "Method not found"
|
||||
msgstr "Methode nicht gefunden"
|
||||
|
||||
#: advancedcontentfilter.php:136
|
||||
#: advancedcontentfilter.php:154
|
||||
#, php-format
|
||||
msgid "Filtered by rule: %s"
|
||||
msgstr "Nach dieser Regel gefiltert: %s"
|
||||
|
||||
#: advancedcontentfilter.php:150 advancedcontentfilter.php:207
|
||||
#: advancedcontentfilter.php:170 advancedcontentfilter.php:225
|
||||
msgid "Advanced Content Filter"
|
||||
msgstr "Erweiterter Inhaltsfilter"
|
||||
|
||||
#: advancedcontentfilter.php:206
|
||||
#: advancedcontentfilter.php:224
|
||||
msgid "Back to Addon Settings"
|
||||
msgstr "Zurück zu den Addon Einstellungen"
|
||||
|
||||
#: advancedcontentfilter.php:208
|
||||
#: advancedcontentfilter.php:226
|
||||
msgid "Add a Rule"
|
||||
msgstr "Eine Regel hinzufügen"
|
||||
|
||||
#: advancedcontentfilter.php:209
|
||||
#: advancedcontentfilter.php:227
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: advancedcontentfilter.php:210
|
||||
#: advancedcontentfilter.php:228
|
||||
msgid ""
|
||||
"Add and manage your personal content filter rules in this screen. Rules have"
|
||||
" a name and an arbitrary expression that will be matched against post data. "
|
||||
@@ -60,11 +56,11 @@ msgstr ""
|
||||
"gegebenenfalls gefiltert. Für eine Übersicht der verfügbaren Operatoren für "
|
||||
"die Filter, wirf bitte einen Blick auf die Hilfsseite des Addons."
|
||||
|
||||
#: advancedcontentfilter.php:211
|
||||
#: advancedcontentfilter.php:229
|
||||
msgid "Your rules"
|
||||
msgstr "Deine Regeln"
|
||||
|
||||
#: advancedcontentfilter.php:212
|
||||
#: advancedcontentfilter.php:230
|
||||
msgid ""
|
||||
"You have no rules yet! Start adding one by clicking on the button above next"
|
||||
" to the title."
|
||||
@@ -72,98 +68,108 @@ msgstr ""
|
||||
"Du hast bisher noch keine Regeln definiert. Um eine neue Regel zu erstellen,"
|
||||
" verwende bitte den Button neben dem Titel."
|
||||
|
||||
#: advancedcontentfilter.php:213
|
||||
#: advancedcontentfilter.php:231
|
||||
msgid "Disabled"
|
||||
msgstr "Deaktiviert"
|
||||
|
||||
#: advancedcontentfilter.php:214
|
||||
#: advancedcontentfilter.php:232
|
||||
msgid "Enabled"
|
||||
msgstr "Aktiv"
|
||||
|
||||
#: advancedcontentfilter.php:215
|
||||
#: advancedcontentfilter.php:233
|
||||
msgid "Disable this rule"
|
||||
msgstr "Diese Regel deaktivieren"
|
||||
|
||||
#: advancedcontentfilter.php:216
|
||||
#: advancedcontentfilter.php:234
|
||||
msgid "Enable this rule"
|
||||
msgstr "Diese Regel aktivieren"
|
||||
|
||||
#: advancedcontentfilter.php:217
|
||||
#: advancedcontentfilter.php:235
|
||||
msgid "Edit this rule"
|
||||
msgstr "Diese Regel bearbeiten"
|
||||
|
||||
#: advancedcontentfilter.php:218
|
||||
#: advancedcontentfilter.php:236
|
||||
msgid "Edit the rule"
|
||||
msgstr "Die Regel bearbeiten"
|
||||
|
||||
#: advancedcontentfilter.php:219
|
||||
#: advancedcontentfilter.php:237
|
||||
msgid "Save this rule"
|
||||
msgstr "Regel speichern"
|
||||
|
||||
#: advancedcontentfilter.php:220
|
||||
#: advancedcontentfilter.php:238
|
||||
msgid "Delete this rule"
|
||||
msgstr "Diese Regel löschen"
|
||||
|
||||
#: advancedcontentfilter.php:221
|
||||
#: advancedcontentfilter.php:239
|
||||
msgid "Rule"
|
||||
msgstr "Regel"
|
||||
|
||||
#: advancedcontentfilter.php:222
|
||||
#: advancedcontentfilter.php:240
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: advancedcontentfilter.php:223
|
||||
#: advancedcontentfilter.php:241
|
||||
msgid "Add new rule"
|
||||
msgstr "Neue Regel hinzufügen"
|
||||
|
||||
#: advancedcontentfilter.php:224
|
||||
#: advancedcontentfilter.php:242
|
||||
msgid "Rule Name"
|
||||
msgstr "Name der Regel"
|
||||
|
||||
#: advancedcontentfilter.php:225
|
||||
#: advancedcontentfilter.php:243
|
||||
msgid "Rule Expression"
|
||||
msgstr "Ausdruck der Regel"
|
||||
|
||||
#: advancedcontentfilter.php:226
|
||||
#: advancedcontentfilter.php:244
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: advancedcontentfilter.php:293 advancedcontentfilter.php:304
|
||||
#: advancedcontentfilter.php:315 advancedcontentfilter.php:349
|
||||
#: advancedcontentfilter.php:378 advancedcontentfilter.php:399
|
||||
#: advancedcontentfilter.php:295
|
||||
msgid "This addon requires this node having at least one post"
|
||||
msgstr ""
|
||||
"Dieses Addon funktioniert nur, wenn auf diesem Knoten mindestens ein Beitrag"
|
||||
" existiert."
|
||||
|
||||
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336
|
||||
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:414 advancedcontentfilter.php:437
|
||||
msgid "You must be logged in to use this method"
|
||||
msgstr "Du musst angemeldet sein, um diese Methode verwenden zu können "
|
||||
|
||||
#: advancedcontentfilter.php:319 advancedcontentfilter.php:353
|
||||
#: advancedcontentfilter.php:382
|
||||
#: advancedcontentfilter.php:351 advancedcontentfilter.php:387
|
||||
#: advancedcontentfilter.php:418
|
||||
msgid "Invalid form security token, please refresh the page."
|
||||
msgstr "Ungültiges Sciherheitstoken, bitte die Seite neu laden."
|
||||
|
||||
#: advancedcontentfilter.php:331
|
||||
#: advancedcontentfilter.php:363
|
||||
msgid "The rule name and expression are required."
|
||||
msgstr "Der Name der Regel und der Ausdruck sind erforderlich."
|
||||
|
||||
#: advancedcontentfilter.php:343
|
||||
#: advancedcontentfilter.php:377
|
||||
msgid "Rule successfully added"
|
||||
msgstr "Regel erfolgreich hinzugefügt."
|
||||
|
||||
#: advancedcontentfilter.php:357 advancedcontentfilter.php:386
|
||||
#: advancedcontentfilter.php:391 advancedcontentfilter.php:422
|
||||
msgid "Rule doesn't exist or doesn't belong to you."
|
||||
msgstr "Entweder existiert die Regel nicht, oder sie gehört dir nicht."
|
||||
|
||||
#: advancedcontentfilter.php:372
|
||||
#: advancedcontentfilter.php:408
|
||||
msgid "Rule successfully updated"
|
||||
msgstr "Regel wurde erfolgreich aktualisiert."
|
||||
|
||||
#: advancedcontentfilter.php:393
|
||||
#: advancedcontentfilter.php:431
|
||||
msgid "Rule successfully deleted"
|
||||
msgstr "Regel erfolgreich gelöscht."
|
||||
|
||||
#: advancedcontentfilter.php:403
|
||||
#: advancedcontentfilter.php:441
|
||||
msgid "Missing argument: guid."
|
||||
msgstr "Fehlendes Argument: guid."
|
||||
|
||||
#: advancedcontentfilter.php:411
|
||||
#: advancedcontentfilter.php:449
|
||||
#, php-format
|
||||
msgid "Unknown post with guid: %s"
|
||||
msgstr "Unbekannter Beitrag mit der guid: %s"
|
||||
|
||||
#: src/middlewares.php:49
|
||||
msgid "Method not found"
|
||||
msgstr "Methode nicht gefunden"
|
||||
|
||||
@@ -5,7 +5,6 @@ function string_plural_select_de($n){
|
||||
$n = intval($n);
|
||||
return intval($n != 1);
|
||||
}}
|
||||
$a->strings['Method not found'] = 'Methode nicht gefunden';
|
||||
$a->strings['Filtered by rule: %s'] = 'Nach dieser Regel gefiltert: %s';
|
||||
$a->strings['Advanced Content Filter'] = 'Erweiterter Inhaltsfilter';
|
||||
$a->strings['Back to Addon Settings'] = 'Zurück zu den Addon Einstellungen';
|
||||
@@ -28,6 +27,7 @@ $a->strings['Add new rule'] = 'Neue Regel hinzufügen';
|
||||
$a->strings['Rule Name'] = 'Name der Regel';
|
||||
$a->strings['Rule Expression'] = 'Ausdruck der Regel';
|
||||
$a->strings['Cancel'] = 'Abbrechen';
|
||||
$a->strings['This addon requires this node having at least one post'] = 'Dieses Addon funktioniert nur, wenn auf diesem Knoten mindestens ein Beitrag existiert.';
|
||||
$a->strings['You must be logged in to use this method'] = 'Du musst angemeldet sein, um diese Methode verwenden zu können ';
|
||||
$a->strings['Invalid form security token, please refresh the page.'] = 'Ungültiges Sciherheitstoken, bitte die Seite neu laden.';
|
||||
$a->strings['The rule name and expression are required.'] = 'Der Name der Regel und der Ausdruck sind erforderlich.';
|
||||
@@ -37,3 +37,4 @@ $a->strings['Rule successfully updated'] = 'Regel wurde erfolgreich aktualisiert
|
||||
$a->strings['Rule successfully deleted'] = 'Regel erfolgreich gelöscht.';
|
||||
$a->strings['Missing argument: guid.'] = 'Fehlendes Argument: guid.';
|
||||
$a->strings['Unknown post with guid: %s'] = 'Unbekannter Beitrag mit der guid: %s';
|
||||
$a->strings['Method not found'] = 'Methode nicht gefunden';
|
||||
|
||||
@@ -8,48 +8,45 @@
|
||||
# Vladimir Núñez <lapoubelle111@gmail.com>, 2018
|
||||
# Phigger Phigger <automates@lepouete.fr>, 2019
|
||||
# Wil Tur <wiltur@yargl.com>, 2021
|
||||
# Hypolite Petovan <hypolite@mrpetovan.com>, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"POT-Creation-Date: 2022-05-11 08:54-0400\n"
|
||||
"PO-Revision-Date: 2018-05-24 06:41+0000\n"
|
||||
"Last-Translator: Wil Tur <wiltur@yargl.com>, 2021\n"
|
||||
"Last-Translator: Hypolite Petovan <hypolite@mrpetovan.com>, 2022\n"
|
||||
"Language-Team: French (https://www.transifex.com/Friendica/teams/12172/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: src/middlewares.php:49
|
||||
msgid "Method not found"
|
||||
msgstr "Méthode non trouvée"
|
||||
|
||||
#: advancedcontentfilter.php:136
|
||||
#: advancedcontentfilter.php:154
|
||||
#, php-format
|
||||
msgid "Filtered by rule: %s"
|
||||
msgstr "Filtré par règle:%s"
|
||||
|
||||
#: advancedcontentfilter.php:150 advancedcontentfilter.php:207
|
||||
#: advancedcontentfilter.php:170 advancedcontentfilter.php:225
|
||||
msgid "Advanced Content Filter"
|
||||
msgstr "Filtre avancé de contenu"
|
||||
|
||||
#: advancedcontentfilter.php:206
|
||||
#: advancedcontentfilter.php:224
|
||||
msgid "Back to Addon Settings"
|
||||
msgstr "Retour aux paramètres de l'extension"
|
||||
|
||||
#: advancedcontentfilter.php:208
|
||||
#: advancedcontentfilter.php:226
|
||||
msgid "Add a Rule"
|
||||
msgstr "Ajouter une règle"
|
||||
|
||||
#: advancedcontentfilter.php:209
|
||||
#: advancedcontentfilter.php:227
|
||||
msgid "Help"
|
||||
msgstr "Aide"
|
||||
|
||||
#: advancedcontentfilter.php:210
|
||||
#: advancedcontentfilter.php:228
|
||||
msgid ""
|
||||
"Add and manage your personal content filter rules in this screen. Rules have"
|
||||
" a name and an arbitrary expression that will be matched against post data. "
|
||||
@@ -61,11 +58,11 @@ msgstr ""
|
||||
"comparée aux données des messages. Pour une référence complète des "
|
||||
"opérations et variables disponibles, consultez la page d'aide."
|
||||
|
||||
#: advancedcontentfilter.php:211
|
||||
#: advancedcontentfilter.php:229
|
||||
msgid "Your rules"
|
||||
msgstr "Vos règles"
|
||||
|
||||
#: advancedcontentfilter.php:212
|
||||
#: advancedcontentfilter.php:230
|
||||
msgid ""
|
||||
"You have no rules yet! Start adding one by clicking on the button above next"
|
||||
" to the title."
|
||||
@@ -73,98 +70,108 @@ msgstr ""
|
||||
"Vous n'avez encore aucune règle! Ajoutez-en une en cliquant le bouton au-"
|
||||
"dessus près du titre"
|
||||
|
||||
#: advancedcontentfilter.php:213
|
||||
#: advancedcontentfilter.php:231
|
||||
msgid "Disabled"
|
||||
msgstr "Désactivé"
|
||||
|
||||
#: advancedcontentfilter.php:214
|
||||
#: advancedcontentfilter.php:232
|
||||
msgid "Enabled"
|
||||
msgstr "Activé"
|
||||
|
||||
#: advancedcontentfilter.php:215
|
||||
#: advancedcontentfilter.php:233
|
||||
msgid "Disable this rule"
|
||||
msgstr "Désactiver cette règle"
|
||||
|
||||
#: advancedcontentfilter.php:216
|
||||
#: advancedcontentfilter.php:234
|
||||
msgid "Enable this rule"
|
||||
msgstr "Activer cette règle"
|
||||
|
||||
#: advancedcontentfilter.php:217
|
||||
#: advancedcontentfilter.php:235
|
||||
msgid "Edit this rule"
|
||||
msgstr "Modifier cette règle"
|
||||
|
||||
#: advancedcontentfilter.php:218
|
||||
#: advancedcontentfilter.php:236
|
||||
msgid "Edit the rule"
|
||||
msgstr "Modifier la règle"
|
||||
|
||||
#: advancedcontentfilter.php:219
|
||||
#: advancedcontentfilter.php:237
|
||||
msgid "Save this rule"
|
||||
msgstr "Enregistrer cette règle"
|
||||
|
||||
#: advancedcontentfilter.php:220
|
||||
#: advancedcontentfilter.php:238
|
||||
msgid "Delete this rule"
|
||||
msgstr "Supprimer cette règle"
|
||||
|
||||
#: advancedcontentfilter.php:221
|
||||
#: advancedcontentfilter.php:239
|
||||
msgid "Rule"
|
||||
msgstr "Règle"
|
||||
|
||||
#: advancedcontentfilter.php:222
|
||||
#: advancedcontentfilter.php:240
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#: advancedcontentfilter.php:223
|
||||
#: advancedcontentfilter.php:241
|
||||
msgid "Add new rule"
|
||||
msgstr "Ajouter nouvelle règle"
|
||||
|
||||
#: advancedcontentfilter.php:224
|
||||
#: advancedcontentfilter.php:242
|
||||
msgid "Rule Name"
|
||||
msgstr "Nommer règle"
|
||||
|
||||
#: advancedcontentfilter.php:225
|
||||
#: advancedcontentfilter.php:243
|
||||
msgid "Rule Expression"
|
||||
msgstr "Expression de règle"
|
||||
|
||||
#: advancedcontentfilter.php:226
|
||||
#: advancedcontentfilter.php:244
|
||||
msgid "Cancel"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: advancedcontentfilter.php:293 advancedcontentfilter.php:304
|
||||
#: advancedcontentfilter.php:315 advancedcontentfilter.php:349
|
||||
#: advancedcontentfilter.php:378 advancedcontentfilter.php:399
|
||||
#: advancedcontentfilter.php:295
|
||||
msgid "This addon requires this node having at least one post"
|
||||
msgstr ""
|
||||
"Cette extension requiert au moins une publication sur ce serveur pour "
|
||||
"fonctionner"
|
||||
|
||||
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336
|
||||
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:414 advancedcontentfilter.php:437
|
||||
msgid "You must be logged in to use this method"
|
||||
msgstr "Vous devez être connecté pour utiliser cette méthode"
|
||||
|
||||
#: advancedcontentfilter.php:319 advancedcontentfilter.php:353
|
||||
#: advancedcontentfilter.php:382
|
||||
#: advancedcontentfilter.php:351 advancedcontentfilter.php:387
|
||||
#: advancedcontentfilter.php:418
|
||||
msgid "Invalid form security token, please refresh the page."
|
||||
msgstr "Formulaire token de sécurité invalide, rafraîchissez la page"
|
||||
|
||||
#: advancedcontentfilter.php:331
|
||||
#: advancedcontentfilter.php:363
|
||||
msgid "The rule name and expression are required."
|
||||
msgstr "Le nom et l'expression de cette règle sont requis"
|
||||
|
||||
#: advancedcontentfilter.php:343
|
||||
#: advancedcontentfilter.php:377
|
||||
msgid "Rule successfully added"
|
||||
msgstr "Règle bien ajoutée"
|
||||
|
||||
#: advancedcontentfilter.php:357 advancedcontentfilter.php:386
|
||||
#: advancedcontentfilter.php:391 advancedcontentfilter.php:422
|
||||
msgid "Rule doesn't exist or doesn't belong to you."
|
||||
msgstr "Cette règle n'existe pas ou ne vous appartient pas"
|
||||
|
||||
#: advancedcontentfilter.php:372
|
||||
#: advancedcontentfilter.php:408
|
||||
msgid "Rule successfully updated"
|
||||
msgstr "Règle bien mise à jour"
|
||||
|
||||
#: advancedcontentfilter.php:393
|
||||
#: advancedcontentfilter.php:431
|
||||
msgid "Rule successfully deleted"
|
||||
msgstr "Règle bien supprimée"
|
||||
|
||||
#: advancedcontentfilter.php:403
|
||||
#: advancedcontentfilter.php:441
|
||||
msgid "Missing argument: guid."
|
||||
msgstr "Argument manquant: "
|
||||
|
||||
#: advancedcontentfilter.php:411
|
||||
#: advancedcontentfilter.php:449
|
||||
#, php-format
|
||||
msgid "Unknown post with guid: %s"
|
||||
msgstr "Post inconnu avec guid : %s"
|
||||
|
||||
#: src/middlewares.php:49
|
||||
msgid "Method not found"
|
||||
msgstr "Méthode non trouvée"
|
||||
|
||||
@@ -3,9 +3,8 @@
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
$n = intval($n);
|
||||
return intval($n > 1);
|
||||
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['Method not found'] = 'Méthode non trouvée';
|
||||
$a->strings['Filtered by rule: %s'] = 'Filtré par règle:%s';
|
||||
$a->strings['Advanced Content Filter'] = 'Filtre avancé de contenu';
|
||||
$a->strings['Back to Addon Settings'] = 'Retour aux paramètres de l\'extension';
|
||||
@@ -28,6 +27,7 @@ $a->strings['Add new rule'] = 'Ajouter nouvelle règle';
|
||||
$a->strings['Rule Name'] = 'Nommer règle';
|
||||
$a->strings['Rule Expression'] = 'Expression de règle';
|
||||
$a->strings['Cancel'] = 'Annuler';
|
||||
$a->strings['This addon requires this node having at least one post'] = 'Cette extension requiert au moins une publication sur ce serveur pour fonctionner';
|
||||
$a->strings['You must be logged in to use this method'] = 'Vous devez être connecté pour utiliser cette méthode';
|
||||
$a->strings['Invalid form security token, please refresh the page.'] = 'Formulaire token de sécurité invalide, rafraîchissez la page';
|
||||
$a->strings['The rule name and expression are required.'] = 'Le nom et l\'expression de cette règle sont requis';
|
||||
@@ -37,3 +37,4 @@ $a->strings['Rule successfully updated'] = 'Règle bien mise à jour';
|
||||
$a->strings['Rule successfully deleted'] = 'Règle bien supprimée';
|
||||
$a->strings['Missing argument: guid.'] = 'Argument manquant: ';
|
||||
$a->strings['Unknown post with guid: %s'] = 'Post inconnu avec guid : %s';
|
||||
$a->strings['Method not found'] = 'Méthode non trouvée';
|
||||
|
||||
@@ -4,16 +4,16 @@
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Balázs Úr, 2021
|
||||
# Balázs Úr, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:13-0500\n"
|
||||
"POT-Creation-Date: 2022-05-11 08:54-0400\n"
|
||||
"PO-Revision-Date: 2018-05-24 06:41+0000\n"
|
||||
"Last-Translator: Balázs Úr, 2021\n"
|
||||
"Last-Translator: Balázs Úr, 2022\n"
|
||||
"Language-Team: Hungarian (https://www.transifex.com/Friendica/teams/12172/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -122,42 +122,48 @@ msgstr "Szabály kifejezése"
|
||||
msgid "Cancel"
|
||||
msgstr "Mégse"
|
||||
|
||||
#: advancedcontentfilter.php:312 advancedcontentfilter.php:323
|
||||
#: advancedcontentfilter.php:334 advancedcontentfilter.php:370
|
||||
#: advancedcontentfilter.php:401 advancedcontentfilter.php:424
|
||||
#: advancedcontentfilter.php:295
|
||||
msgid "This addon requires this node having at least one post"
|
||||
msgstr ""
|
||||
"Ez a bővítmény megköveteli, hogy ennek a csomópontnak legalább egy "
|
||||
"bejegyzése legyen"
|
||||
|
||||
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336
|
||||
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:414 advancedcontentfilter.php:437
|
||||
msgid "You must be logged in to use this method"
|
||||
msgstr "Bejelentkezve kell lennie a módszer használatához"
|
||||
|
||||
#: advancedcontentfilter.php:338 advancedcontentfilter.php:374
|
||||
#: advancedcontentfilter.php:405
|
||||
#: advancedcontentfilter.php:351 advancedcontentfilter.php:387
|
||||
#: advancedcontentfilter.php:418
|
||||
msgid "Invalid form security token, please refresh the page."
|
||||
msgstr "Érvénytelen űrlap biztonsági token. Frissítse az oldalt."
|
||||
|
||||
#: advancedcontentfilter.php:350
|
||||
#: advancedcontentfilter.php:363
|
||||
msgid "The rule name and expression are required."
|
||||
msgstr "A szabály neve és kifejezése kötelező."
|
||||
|
||||
#: advancedcontentfilter.php:364
|
||||
#: advancedcontentfilter.php:377
|
||||
msgid "Rule successfully added"
|
||||
msgstr "A szabály sikeresen hozzáadva"
|
||||
|
||||
#: advancedcontentfilter.php:378 advancedcontentfilter.php:409
|
||||
#: advancedcontentfilter.php:391 advancedcontentfilter.php:422
|
||||
msgid "Rule doesn't exist or doesn't belong to you."
|
||||
msgstr "A szabály nem létezik vagy nem Önhöz tatozik."
|
||||
|
||||
#: advancedcontentfilter.php:395
|
||||
#: advancedcontentfilter.php:408
|
||||
msgid "Rule successfully updated"
|
||||
msgstr "A szabály sikeresen frissítve"
|
||||
|
||||
#: advancedcontentfilter.php:418
|
||||
#: advancedcontentfilter.php:431
|
||||
msgid "Rule successfully deleted"
|
||||
msgstr "A szabály sikeresen törölve"
|
||||
|
||||
#: advancedcontentfilter.php:428
|
||||
#: advancedcontentfilter.php:441
|
||||
msgid "Missing argument: guid."
|
||||
msgstr "Hiányzó argumentum: guid."
|
||||
|
||||
#: advancedcontentfilter.php:436
|
||||
#: advancedcontentfilter.php:449
|
||||
#, php-format
|
||||
msgid "Unknown post with guid: %s"
|
||||
msgstr "Ismeretlen bejegyzés a következő guid azonosítóval: %s"
|
||||
|
||||
@@ -27,6 +27,7 @@ $a->strings['Add new rule'] = 'Új szabály hozzáadása';
|
||||
$a->strings['Rule Name'] = 'Szabály neve';
|
||||
$a->strings['Rule Expression'] = 'Szabály kifejezése';
|
||||
$a->strings['Cancel'] = 'Mégse';
|
||||
$a->strings['This addon requires this node having at least one post'] = 'Ez a bővítmény megköveteli, hogy ennek a csomópontnak legalább egy bejegyzése legyen';
|
||||
$a->strings['You must be logged in to use this method'] = 'Bejelentkezve kell lennie a módszer használatához';
|
||||
$a->strings['Invalid form security token, please refresh the page.'] = 'Érvénytelen űrlap biztonsági token. Frissítse az oldalt.';
|
||||
$a->strings['The rule name and expression are required.'] = 'A szabály neve és kifejezése kötelező.';
|
||||
|
||||
@@ -3,60 +3,63 @@
|
||||
# This file is distributed under the same license as the Friendica advancedcontentfilter addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# fabrixxm <fabrix.xm@gmail.com>, 2018
|
||||
# Sylke Vicious <silkevicious@gmail.com>, 2021
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-04-17 04:04+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: fabrixxm <fabrix.xm@gmail.com>, 2018\n"
|
||||
"Language-Team: Italian (https://www.transifex.com/Friendica/teams/12172/it/)\n"
|
||||
"POT-Creation-Date: 2022-05-11 08:54-0400\n"
|
||||
"PO-Revision-Date: 2018-05-24 06:41+0000\n"
|
||||
"Last-Translator: Sylke Vicious <silkevicious@gmail.com>, 2021\n"
|
||||
"Language-Team: Italian (https://app.transifex.com/Friendica/teams/12172/it/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: it\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: advancedcontentfilter.php:134
|
||||
#: advancedcontentfilter.php:154
|
||||
#, php-format
|
||||
msgid "Filtered by rule: %s"
|
||||
msgstr "Filtrato dalla regola: %s"
|
||||
|
||||
#: advancedcontentfilter.php:147 advancedcontentfilter.php:204
|
||||
#: advancedcontentfilter.php:170 advancedcontentfilter.php:225
|
||||
msgid "Advanced Content Filter"
|
||||
msgstr "Filtro Avanzato Contenuti"
|
||||
|
||||
#: advancedcontentfilter.php:203
|
||||
#: advancedcontentfilter.php:224
|
||||
msgid "Back to Addon Settings"
|
||||
msgstr "Torna alle impostazioni del componente aggiuntivo"
|
||||
|
||||
#: advancedcontentfilter.php:205
|
||||
#: advancedcontentfilter.php:226
|
||||
msgid "Add a Rule"
|
||||
msgstr "Aggiungi una regola"
|
||||
|
||||
#: advancedcontentfilter.php:206
|
||||
#: advancedcontentfilter.php:227
|
||||
msgid "Help"
|
||||
msgstr "Aiuto"
|
||||
|
||||
#: advancedcontentfilter.php:207
|
||||
#: advancedcontentfilter.php:228
|
||||
msgid ""
|
||||
"Add and manage your personal content filter rules in this screen. Rules have"
|
||||
" a name and an arbitrary expression that will be matched against post data. "
|
||||
"For a complete reference of the available operations and variables, check "
|
||||
"the <a href=\"advancedcontentfilter/help\">help page</a>."
|
||||
"the help page."
|
||||
msgstr ""
|
||||
"Aggiungi e gestisci le tue regole personali di filtro contenuti in questa "
|
||||
"schermata. Le regole hanno un nome e un'espressione arbitraria che sarà "
|
||||
"confrontata con i dati del messaggio. Per un elenco completo delle "
|
||||
"operazioni disponibili, controlla la <a "
|
||||
"href=\"advancedcontentfilter/help\">pagina di aiuto</a>."
|
||||
"operazioni e variabili disponibili, controlla la pagina di aiuto."
|
||||
|
||||
#: advancedcontentfilter.php:208
|
||||
#: advancedcontentfilter.php:229
|
||||
msgid "Your rules"
|
||||
msgstr "Le tue regole"
|
||||
|
||||
#: advancedcontentfilter.php:209
|
||||
#: advancedcontentfilter.php:230
|
||||
msgid ""
|
||||
"You have no rules yet! Start adding one by clicking on the button above next"
|
||||
" to the title."
|
||||
@@ -64,110 +67,106 @@ msgstr ""
|
||||
"Non hai ancora nessuna regola! Aggiungine una cliccando sul bottone qui "
|
||||
"sopra a fianco al titolo."
|
||||
|
||||
#: advancedcontentfilter.php:210
|
||||
#: advancedcontentfilter.php:231
|
||||
msgid "Disabled"
|
||||
msgstr "Disabilitato"
|
||||
|
||||
#: advancedcontentfilter.php:211
|
||||
#: advancedcontentfilter.php:232
|
||||
msgid "Enabled"
|
||||
msgstr "Abilitato"
|
||||
|
||||
#: advancedcontentfilter.php:212
|
||||
#: advancedcontentfilter.php:233
|
||||
msgid "Disable this rule"
|
||||
msgstr "Diabilita questa regola"
|
||||
|
||||
#: advancedcontentfilter.php:213
|
||||
#: advancedcontentfilter.php:234
|
||||
msgid "Enable this rule"
|
||||
msgstr "Abilita questa regola"
|
||||
|
||||
#: advancedcontentfilter.php:214
|
||||
#: advancedcontentfilter.php:235
|
||||
msgid "Edit this rule"
|
||||
msgstr "Modifica questa regola"
|
||||
|
||||
#: advancedcontentfilter.php:215
|
||||
#: advancedcontentfilter.php:236
|
||||
msgid "Edit the rule"
|
||||
msgstr "Modifica la regola"
|
||||
|
||||
#: advancedcontentfilter.php:216
|
||||
#: advancedcontentfilter.php:237
|
||||
msgid "Save this rule"
|
||||
msgstr "Salva questa regola"
|
||||
|
||||
#: advancedcontentfilter.php:217
|
||||
#: advancedcontentfilter.php:238
|
||||
msgid "Delete this rule"
|
||||
msgstr "Elimina questa regola"
|
||||
|
||||
#: advancedcontentfilter.php:218
|
||||
#: advancedcontentfilter.php:239
|
||||
msgid "Rule"
|
||||
msgstr "Regola"
|
||||
|
||||
#: advancedcontentfilter.php:219
|
||||
#: advancedcontentfilter.php:240
|
||||
msgid "Close"
|
||||
msgstr "Chiudi"
|
||||
|
||||
#: advancedcontentfilter.php:220
|
||||
#: advancedcontentfilter.php:241
|
||||
msgid "Add new rule"
|
||||
msgstr "Aggiungi nuova regola"
|
||||
|
||||
#: advancedcontentfilter.php:221
|
||||
#: advancedcontentfilter.php:242
|
||||
msgid "Rule Name"
|
||||
msgstr "Nome Regola"
|
||||
|
||||
#: advancedcontentfilter.php:222
|
||||
#: advancedcontentfilter.php:243
|
||||
msgid "Rule Expression"
|
||||
msgstr "Espressione Regola"
|
||||
|
||||
#: advancedcontentfilter.php:223
|
||||
msgid ""
|
||||
"<p>Examples:</p><ul><li><pre>author_link == "
|
||||
"'https://friendica.mrpetovan.com/profile/hypolite'</pre></li><li>tags</li></ul>"
|
||||
msgstr ""
|
||||
"<p>Esempi:</p><ul><li><pre>author_link == "
|
||||
"'https://friendica.mrpetovan.com/profile/hypolite'</pre></li><li>tags</li></ul>"
|
||||
|
||||
#: advancedcontentfilter.php:224
|
||||
#: advancedcontentfilter.php:244
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
#: advancedcontentfilter.php:290 advancedcontentfilter.php:301
|
||||
#: advancedcontentfilter.php:312 advancedcontentfilter.php:346
|
||||
#: advancedcontentfilter.php:375 advancedcontentfilter.php:396
|
||||
#: advancedcontentfilter.php:295
|
||||
msgid "This addon requires this node having at least one post"
|
||||
msgstr ""
|
||||
|
||||
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336
|
||||
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:414 advancedcontentfilter.php:437
|
||||
msgid "You must be logged in to use this method"
|
||||
msgstr "Devi essere autenticato per usare questo metodo"
|
||||
|
||||
#: advancedcontentfilter.php:316 advancedcontentfilter.php:350
|
||||
#: advancedcontentfilter.php:379
|
||||
#: advancedcontentfilter.php:351 advancedcontentfilter.php:387
|
||||
#: advancedcontentfilter.php:418
|
||||
msgid "Invalid form security token, please refresh the page."
|
||||
msgstr "Token di sicurezza invalido, aggiorna la pagina."
|
||||
|
||||
#: advancedcontentfilter.php:328
|
||||
#: advancedcontentfilter.php:363
|
||||
msgid "The rule name and expression are required."
|
||||
msgstr "Il nome e l'espressione della regola sono richiesti."
|
||||
|
||||
#: advancedcontentfilter.php:340
|
||||
#: advancedcontentfilter.php:377
|
||||
msgid "Rule successfully added"
|
||||
msgstr "Regola aggiunta con successo"
|
||||
|
||||
#: advancedcontentfilter.php:354 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:391 advancedcontentfilter.php:422
|
||||
msgid "Rule doesn't exist or doesn't belong to you."
|
||||
msgstr "La regola non esiste o non ti appartiene."
|
||||
|
||||
#: advancedcontentfilter.php:369
|
||||
#: advancedcontentfilter.php:408
|
||||
msgid "Rule successfully updated"
|
||||
msgstr "Regola aggiornata con successo"
|
||||
|
||||
#: advancedcontentfilter.php:390
|
||||
#: advancedcontentfilter.php:431
|
||||
msgid "Rule successfully deleted"
|
||||
msgstr "Regola eliminata con successo"
|
||||
|
||||
#: advancedcontentfilter.php:400
|
||||
#: advancedcontentfilter.php:441
|
||||
msgid "Missing argument: guid."
|
||||
msgstr "Argomento mancante: guid."
|
||||
|
||||
#: advancedcontentfilter.php:406
|
||||
#: advancedcontentfilter.php:449
|
||||
#, php-format
|
||||
msgid "Unknown post with guid: %s"
|
||||
msgstr "Messaggio con guid %s sconosciuto"
|
||||
|
||||
#: src/middlewares.php:28
|
||||
#: src/middlewares.php:49
|
||||
msgid "Method not found"
|
||||
msgstr "Metodo non trovato"
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
if(! function_exists("string_plural_select_it")) {
|
||||
function string_plural_select_it($n){
|
||||
$n = intval($n);
|
||||
return intval($n != 1);
|
||||
if ($n == 1) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['Filtered by rule: %s'] = 'Filtrato dalla regola: %s';
|
||||
$a->strings['Advanced Content Filter'] = 'Filtro Avanzato Contenuti';
|
||||
$a->strings['Back to Addon Settings'] = 'Torna alle impostazioni del componente aggiuntivo';
|
||||
$a->strings['Add a Rule'] = 'Aggiungi una regola';
|
||||
$a->strings['Help'] = 'Aiuto';
|
||||
$a->strings['Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the <a href="advancedcontentfilter/help">help page</a>.'] = 'Aggiungi e gestisci le tue regole personali di filtro contenuti in questa schermata. Le regole hanno un nome e un\'espressione arbitraria che sarà confrontata con i dati del messaggio. Per un elenco completo delle operazioni disponibili, controlla la <a href="advancedcontentfilter/help">pagina di aiuto</a>.';
|
||||
$a->strings['Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the help page.'] = 'Aggiungi e gestisci le tue regole personali di filtro contenuti in questa schermata. Le regole hanno un nome e un\'espressione arbitraria che sarà confrontata con i dati del messaggio. Per un elenco completo delle operazioni e variabili disponibili, controlla la pagina di aiuto.';
|
||||
$a->strings['Your rules'] = 'Le tue regole';
|
||||
$a->strings['You have no rules yet! Start adding one by clicking on the button above next to the title.'] = 'Non hai ancora nessuna regola! Aggiungine una cliccando sul bottone qui sopra a fianco al titolo.';
|
||||
$a->strings['Disabled'] = 'Disabilitato';
|
||||
@@ -26,7 +26,6 @@ $a->strings['Close'] = 'Chiudi';
|
||||
$a->strings['Add new rule'] = 'Aggiungi nuova regola';
|
||||
$a->strings['Rule Name'] = 'Nome Regola';
|
||||
$a->strings['Rule Expression'] = 'Espressione Regola';
|
||||
$a->strings['<p>Examples:</p><ul><li><pre>author_link == \'https://friendica.mrpetovan.com/profile/hypolite\'</pre></li><li>tags</li></ul>'] = '<p>Esempi:</p><ul><li><pre>author_link == \'https://friendica.mrpetovan.com/profile/hypolite\'</pre></li><li>tags</li></ul>';
|
||||
$a->strings['Cancel'] = 'Annulla';
|
||||
$a->strings['You must be logged in to use this method'] = 'Devi essere autenticato per usare questo metodo';
|
||||
$a->strings['Invalid form security token, please refresh the page.'] = 'Token di sicurezza invalido, aggiorna la pagina.';
|
||||
|
||||
@@ -6,15 +6,16 @@
|
||||
# Translators:
|
||||
# Waldemar Stoczkowski, 2018
|
||||
# Joe Doe, 2021
|
||||
# Piotr Strębski <strebski@gmail.com>, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:13-0500\n"
|
||||
"POT-Creation-Date: 2022-05-11 08:54-0400\n"
|
||||
"PO-Revision-Date: 2018-05-24 06:41+0000\n"
|
||||
"Last-Translator: Joe Doe, 2021\n"
|
||||
"Last-Translator: Piotr Strębski <strebski@gmail.com>, 2022\n"
|
||||
"Language-Team: Polish (https://www.transifex.com/Friendica/teams/12172/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -123,42 +124,46 @@ msgstr "Wyrażanie reguły"
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: advancedcontentfilter.php:312 advancedcontentfilter.php:323
|
||||
#: advancedcontentfilter.php:334 advancedcontentfilter.php:370
|
||||
#: advancedcontentfilter.php:401 advancedcontentfilter.php:424
|
||||
#: advancedcontentfilter.php:295
|
||||
msgid "This addon requires this node having at least one post"
|
||||
msgstr "Ten dodatek wymaga, aby ten węzeł miał co najmniej jeden wpis"
|
||||
|
||||
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336
|
||||
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:414 advancedcontentfilter.php:437
|
||||
msgid "You must be logged in to use this method"
|
||||
msgstr "Musisz być zalogowany, aby skorzystać z tej metody"
|
||||
|
||||
#: advancedcontentfilter.php:338 advancedcontentfilter.php:374
|
||||
#: advancedcontentfilter.php:405
|
||||
#: advancedcontentfilter.php:351 advancedcontentfilter.php:387
|
||||
#: advancedcontentfilter.php:418
|
||||
msgid "Invalid form security token, please refresh the page."
|
||||
msgstr "Nieprawidłowy token zabezpieczający formularz, odśwież stronę."
|
||||
|
||||
#: advancedcontentfilter.php:350
|
||||
#: advancedcontentfilter.php:363
|
||||
msgid "The rule name and expression are required."
|
||||
msgstr "Nazwa reguły i wyrażenie są wymagane."
|
||||
|
||||
#: advancedcontentfilter.php:364
|
||||
#: advancedcontentfilter.php:377
|
||||
msgid "Rule successfully added"
|
||||
msgstr "Reguła została pomyślnie dodana"
|
||||
|
||||
#: advancedcontentfilter.php:378 advancedcontentfilter.php:409
|
||||
#: advancedcontentfilter.php:391 advancedcontentfilter.php:422
|
||||
msgid "Rule doesn't exist or doesn't belong to you."
|
||||
msgstr "Reguła nie istnieje lub nie należy do ciebie."
|
||||
|
||||
#: advancedcontentfilter.php:395
|
||||
#: advancedcontentfilter.php:408
|
||||
msgid "Rule successfully updated"
|
||||
msgstr "Reguła została pomyślnie zaktualizowana"
|
||||
|
||||
#: advancedcontentfilter.php:418
|
||||
#: advancedcontentfilter.php:431
|
||||
msgid "Rule successfully deleted"
|
||||
msgstr "Reguła została pomyślnie usunięta"
|
||||
|
||||
#: advancedcontentfilter.php:428
|
||||
#: advancedcontentfilter.php:441
|
||||
msgid "Missing argument: guid."
|
||||
msgstr "Brakujący argument: guid."
|
||||
|
||||
#: advancedcontentfilter.php:436
|
||||
#: advancedcontentfilter.php:449
|
||||
#, php-format
|
||||
msgid "Unknown post with guid: %s"
|
||||
msgstr "Nieznany post z guid:%s"
|
||||
|
||||
@@ -27,6 +27,7 @@ $a->strings['Add new rule'] = 'Dodaj nową regułę';
|
||||
$a->strings['Rule Name'] = 'Nazwa reguły';
|
||||
$a->strings['Rule Expression'] = 'Wyrażanie reguły';
|
||||
$a->strings['Cancel'] = 'Anuluj';
|
||||
$a->strings['This addon requires this node having at least one post'] = 'Ten dodatek wymaga, aby ten węzeł miał co najmniej jeden wpis';
|
||||
$a->strings['You must be logged in to use this method'] = 'Musisz być zalogowany, aby skorzystać z tej metody';
|
||||
$a->strings['Invalid form security token, please refresh the page.'] = 'Nieprawidłowy token zabezpieczający formularz, odśwież stronę.';
|
||||
$a->strings['The rule name and expression are required.'] = 'Nazwa reguły i wyrażenie są wymagane.';
|
||||
|
||||
@@ -6,15 +6,16 @@
|
||||
# Translators:
|
||||
# Alexey Adamov <2077@tutanota.com>, 2019
|
||||
# Eugene Veresk <eugene.vereshchagin@gmail.com>, 2020
|
||||
# Alexander An <ravnina@gmail.com>, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-04-17 04:04+0200\n"
|
||||
"POT-Creation-Date: 2022-05-11 08:54-0400\n"
|
||||
"PO-Revision-Date: 2018-05-24 06:41+0000\n"
|
||||
"Last-Translator: Eugene Veresk <eugene.vereshchagin@gmail.com>, 2020\n"
|
||||
"Last-Translator: Alexander An <ravnina@gmail.com>, 2022\n"
|
||||
"Language-Team: Russian (https://www.transifex.com/Friendica/teams/12172/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -22,44 +23,44 @@ msgstr ""
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: advancedcontentfilter.php:134
|
||||
#: advancedcontentfilter.php:154
|
||||
#, php-format
|
||||
msgid "Filtered by rule: %s"
|
||||
msgstr "Отфильтровано по правилу: %s"
|
||||
|
||||
#: advancedcontentfilter.php:147 advancedcontentfilter.php:204
|
||||
#: advancedcontentfilter.php:170 advancedcontentfilter.php:225
|
||||
msgid "Advanced Content Filter"
|
||||
msgstr "Расширенный фильтр содержимого"
|
||||
|
||||
#: advancedcontentfilter.php:203
|
||||
#: advancedcontentfilter.php:224
|
||||
msgid "Back to Addon Settings"
|
||||
msgstr "Вернуться к настройкам дополнений"
|
||||
|
||||
#: advancedcontentfilter.php:205
|
||||
#: advancedcontentfilter.php:226
|
||||
msgid "Add a Rule"
|
||||
msgstr "Добавить правило"
|
||||
|
||||
#: advancedcontentfilter.php:206
|
||||
#: advancedcontentfilter.php:227
|
||||
msgid "Help"
|
||||
msgstr "Помощь"
|
||||
|
||||
#: advancedcontentfilter.php:207
|
||||
#: advancedcontentfilter.php:228
|
||||
msgid ""
|
||||
"Add and manage your personal content filter rules in this screen. Rules have"
|
||||
" a name and an arbitrary expression that will be matched against post data. "
|
||||
"For a complete reference of the available operations and variables, check "
|
||||
"the <a href=\"advancedcontentfilter/help\">help page</a>."
|
||||
"the help page."
|
||||
msgstr ""
|
||||
"Добавляйте и управляйте своими собственными фильтрами на этой странице. У "
|
||||
"правил есть имя и произвольное выражение, которое будет сопоставляться с "
|
||||
"данными поста. Для полной ссылки на доступные операции и переменные, "
|
||||
"посмотрите <a href=\"advancedcontentfilter/help\">страницу справки</a>."
|
||||
"посмотрите страницу справки."
|
||||
|
||||
#: advancedcontentfilter.php:208
|
||||
#: advancedcontentfilter.php:229
|
||||
msgid "Your rules"
|
||||
msgstr "Ваши правила"
|
||||
|
||||
#: advancedcontentfilter.php:209
|
||||
#: advancedcontentfilter.php:230
|
||||
msgid ""
|
||||
"You have no rules yet! Start adding one by clicking on the button above next"
|
||||
" to the title."
|
||||
@@ -67,110 +68,106 @@ msgstr ""
|
||||
"У Вас нет ни одного правила. Начните добавление первого с нажатия на кнопку "
|
||||
"выше, рядом с названием."
|
||||
|
||||
#: advancedcontentfilter.php:210
|
||||
#: advancedcontentfilter.php:231
|
||||
msgid "Disabled"
|
||||
msgstr "Отключено"
|
||||
|
||||
#: advancedcontentfilter.php:211
|
||||
#: advancedcontentfilter.php:232
|
||||
msgid "Enabled"
|
||||
msgstr "Включено"
|
||||
|
||||
#: advancedcontentfilter.php:212
|
||||
#: advancedcontentfilter.php:233
|
||||
msgid "Disable this rule"
|
||||
msgstr "Отключить это правило"
|
||||
|
||||
#: advancedcontentfilter.php:213
|
||||
#: advancedcontentfilter.php:234
|
||||
msgid "Enable this rule"
|
||||
msgstr "Включить это правило"
|
||||
|
||||
#: advancedcontentfilter.php:214
|
||||
#: advancedcontentfilter.php:235
|
||||
msgid "Edit this rule"
|
||||
msgstr "Изменить это правило"
|
||||
|
||||
#: advancedcontentfilter.php:215
|
||||
#: advancedcontentfilter.php:236
|
||||
msgid "Edit the rule"
|
||||
msgstr "Изменить правило"
|
||||
|
||||
#: advancedcontentfilter.php:216
|
||||
#: advancedcontentfilter.php:237
|
||||
msgid "Save this rule"
|
||||
msgstr "Сохранить это правило"
|
||||
|
||||
#: advancedcontentfilter.php:217
|
||||
#: advancedcontentfilter.php:238
|
||||
msgid "Delete this rule"
|
||||
msgstr "Удалить это правило"
|
||||
|
||||
#: advancedcontentfilter.php:218
|
||||
#: advancedcontentfilter.php:239
|
||||
msgid "Rule"
|
||||
msgstr "Правило"
|
||||
|
||||
#: advancedcontentfilter.php:219
|
||||
#: advancedcontentfilter.php:240
|
||||
msgid "Close"
|
||||
msgstr "Закрыть"
|
||||
|
||||
#: advancedcontentfilter.php:220
|
||||
#: advancedcontentfilter.php:241
|
||||
msgid "Add new rule"
|
||||
msgstr "Добавить новое правило"
|
||||
|
||||
#: advancedcontentfilter.php:221
|
||||
#: advancedcontentfilter.php:242
|
||||
msgid "Rule Name"
|
||||
msgstr "Название правила"
|
||||
|
||||
#: advancedcontentfilter.php:222
|
||||
#: advancedcontentfilter.php:243
|
||||
msgid "Rule Expression"
|
||||
msgstr "Содержание правила"
|
||||
|
||||
#: advancedcontentfilter.php:223
|
||||
msgid ""
|
||||
"<p>Examples:</p><ul><li><pre>author_link == "
|
||||
"'https://friendica.mrpetovan.com/profile/hypolite'</pre></li><li>tags</li></ul>"
|
||||
msgstr ""
|
||||
"<p>Примеры:</p><ul><li><pre>author_link == "
|
||||
"'https://friendica.mrpetovan.com/profile/hypolite'</pre></li><li>tags</li></ul>"
|
||||
|
||||
#: advancedcontentfilter.php:224
|
||||
#: advancedcontentfilter.php:244
|
||||
msgid "Cancel"
|
||||
msgstr "Отмена"
|
||||
|
||||
#: advancedcontentfilter.php:290 advancedcontentfilter.php:301
|
||||
#: advancedcontentfilter.php:312 advancedcontentfilter.php:346
|
||||
#: advancedcontentfilter.php:375 advancedcontentfilter.php:396
|
||||
#: advancedcontentfilter.php:295
|
||||
msgid "This addon requires this node having at least one post"
|
||||
msgstr "Это дополнение требует наличия хотя бы одной записи на этом узле."
|
||||
|
||||
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336
|
||||
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:414 advancedcontentfilter.php:437
|
||||
msgid "You must be logged in to use this method"
|
||||
msgstr "Вы должны авторизоваться для использования этого метода"
|
||||
|
||||
#: advancedcontentfilter.php:316 advancedcontentfilter.php:350
|
||||
#: advancedcontentfilter.php:379
|
||||
#: advancedcontentfilter.php:351 advancedcontentfilter.php:387
|
||||
#: advancedcontentfilter.php:418
|
||||
msgid "Invalid form security token, please refresh the page."
|
||||
msgstr "Неверный ключ, пожалуйста, перезагрузите страницу"
|
||||
|
||||
#: advancedcontentfilter.php:328
|
||||
#: advancedcontentfilter.php:363
|
||||
msgid "The rule name and expression are required."
|
||||
msgstr "Требуется ввести название и значение правила."
|
||||
|
||||
#: advancedcontentfilter.php:340
|
||||
#: advancedcontentfilter.php:377
|
||||
msgid "Rule successfully added"
|
||||
msgstr "Правило успешно добавлено"
|
||||
|
||||
#: advancedcontentfilter.php:354 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:391 advancedcontentfilter.php:422
|
||||
msgid "Rule doesn't exist or doesn't belong to you."
|
||||
msgstr "Правило не найдено или доступ к нему закрыт"
|
||||
|
||||
#: advancedcontentfilter.php:369
|
||||
#: advancedcontentfilter.php:408
|
||||
msgid "Rule successfully updated"
|
||||
msgstr "Правило успешно обновлено"
|
||||
|
||||
#: advancedcontentfilter.php:390
|
||||
#: advancedcontentfilter.php:431
|
||||
msgid "Rule successfully deleted"
|
||||
msgstr "Правило успешно удалено"
|
||||
|
||||
#: advancedcontentfilter.php:400
|
||||
#: advancedcontentfilter.php:441
|
||||
msgid "Missing argument: guid."
|
||||
msgstr "Отсутствующий аргумент: guid."
|
||||
|
||||
#: advancedcontentfilter.php:406
|
||||
#: advancedcontentfilter.php:449
|
||||
#, php-format
|
||||
msgid "Unknown post with guid: %s"
|
||||
msgstr "Неизвестный пост в ID: %s"
|
||||
|
||||
#: src/middlewares.php:28
|
||||
#: src/middlewares.php:49
|
||||
msgid "Method not found"
|
||||
msgstr "Метод не найден"
|
||||
|
||||
@@ -10,7 +10,7 @@ $a->strings['Advanced Content Filter'] = 'Расширенный фильтр с
|
||||
$a->strings['Back to Addon Settings'] = 'Вернуться к настройкам дополнений';
|
||||
$a->strings['Add a Rule'] = 'Добавить правило';
|
||||
$a->strings['Help'] = 'Помощь';
|
||||
$a->strings['Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the <a href="advancedcontentfilter/help">help page</a>.'] = 'Добавляйте и управляйте своими собственными фильтрами на этой странице. У правил есть имя и произвольное выражение, которое будет сопоставляться с данными поста. Для полной ссылки на доступные операции и переменные, посмотрите <a href="advancedcontentfilter/help">страницу справки</a>.';
|
||||
$a->strings['Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the help page.'] = 'Добавляйте и управляйте своими собственными фильтрами на этой странице. У правил есть имя и произвольное выражение, которое будет сопоставляться с данными поста. Для полной ссылки на доступные операции и переменные, посмотрите страницу справки.';
|
||||
$a->strings['Your rules'] = 'Ваши правила';
|
||||
$a->strings['You have no rules yet! Start adding one by clicking on the button above next to the title.'] = 'У Вас нет ни одного правила. Начните добавление первого с нажатия на кнопку выше, рядом с названием.';
|
||||
$a->strings['Disabled'] = 'Отключено';
|
||||
@@ -26,8 +26,8 @@ $a->strings['Close'] = 'Закрыть';
|
||||
$a->strings['Add new rule'] = 'Добавить новое правило';
|
||||
$a->strings['Rule Name'] = 'Название правила';
|
||||
$a->strings['Rule Expression'] = 'Содержание правила';
|
||||
$a->strings['<p>Examples:</p><ul><li><pre>author_link == \'https://friendica.mrpetovan.com/profile/hypolite\'</pre></li><li>tags</li></ul>'] = '<p>Примеры:</p><ul><li><pre>author_link == \'https://friendica.mrpetovan.com/profile/hypolite\'</pre></li><li>tags</li></ul>';
|
||||
$a->strings['Cancel'] = 'Отмена';
|
||||
$a->strings['This addon requires this node having at least one post'] = 'Это дополнение требует наличия хотя бы одной записи на этом узле.';
|
||||
$a->strings['You must be logged in to use this method'] = 'Вы должны авторизоваться для использования этого метода';
|
||||
$a->strings['Invalid form security token, please refresh the page.'] = 'Неверный ключ, пожалуйста, перезагрузите страницу';
|
||||
$a->strings['The rule name and expression are required.'] = 'Требуется ввести название и значение правила.';
|
||||
|
||||
@@ -5,15 +5,16 @@
|
||||
#
|
||||
# Translators:
|
||||
# Bjoessi <torbjorn.andersson@syte.se>, 2019
|
||||
# Viktor Nilsson, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:13-0500\n"
|
||||
"POT-Creation-Date: 2022-05-11 08:54-0400\n"
|
||||
"PO-Revision-Date: 2018-05-24 06:41+0000\n"
|
||||
"Last-Translator: Bjoessi <torbjorn.andersson@syte.se>, 2019\n"
|
||||
"Last-Translator: Viktor Nilsson, 2022\n"
|
||||
"Language-Team: Swedish (https://www.transifex.com/Friendica/teams/12172/sv/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -49,6 +50,10 @@ msgid ""
|
||||
"For a complete reference of the available operations and variables, check "
|
||||
"the help page."
|
||||
msgstr ""
|
||||
"Lägg till och hantera dina personliga regler för innehållsfilter i det här "
|
||||
"fönstret. Regler har ett namn och ett filteruttryck som jämförs mot "
|
||||
"inläggets innehåll. Förteckning över alla operander och variabler finns att "
|
||||
"hitta på <a href=\"advancedcontentfilter/help\">hjälpsidan</a>."
|
||||
|
||||
#: advancedcontentfilter.php:229
|
||||
msgid "Your rules"
|
||||
@@ -118,42 +123,46 @@ msgstr "Regeluttryck"
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: advancedcontentfilter.php:312 advancedcontentfilter.php:323
|
||||
#: advancedcontentfilter.php:334 advancedcontentfilter.php:370
|
||||
#: advancedcontentfilter.php:401 advancedcontentfilter.php:424
|
||||
#: advancedcontentfilter.php:295
|
||||
msgid "This addon requires this node having at least one post"
|
||||
msgstr "Detta tillägg kräver att denna nod har åtminstone ett inlägg"
|
||||
|
||||
#: advancedcontentfilter.php:325 advancedcontentfilter.php:336
|
||||
#: advancedcontentfilter.php:347 advancedcontentfilter.php:383
|
||||
#: advancedcontentfilter.php:414 advancedcontentfilter.php:437
|
||||
msgid "You must be logged in to use this method"
|
||||
msgstr "Du måste vara inloggad för att använda den här funktionen"
|
||||
|
||||
#: advancedcontentfilter.php:338 advancedcontentfilter.php:374
|
||||
#: advancedcontentfilter.php:405
|
||||
#: advancedcontentfilter.php:351 advancedcontentfilter.php:387
|
||||
#: advancedcontentfilter.php:418
|
||||
msgid "Invalid form security token, please refresh the page."
|
||||
msgstr "Felaktigt säkerhetsformulärstecken, vänligen uppdatera sidan."
|
||||
|
||||
#: advancedcontentfilter.php:350
|
||||
#: advancedcontentfilter.php:363
|
||||
msgid "The rule name and expression are required."
|
||||
msgstr "Regelns namn och uttryck krävs."
|
||||
|
||||
#: advancedcontentfilter.php:364
|
||||
#: advancedcontentfilter.php:377
|
||||
msgid "Rule successfully added"
|
||||
msgstr "Regeln kunde läggas till"
|
||||
|
||||
#: advancedcontentfilter.php:378 advancedcontentfilter.php:409
|
||||
#: advancedcontentfilter.php:391 advancedcontentfilter.php:422
|
||||
msgid "Rule doesn't exist or doesn't belong to you."
|
||||
msgstr "Regeln finns inte eller tillhör inte dig."
|
||||
|
||||
#: advancedcontentfilter.php:395
|
||||
#: advancedcontentfilter.php:408
|
||||
msgid "Rule successfully updated"
|
||||
msgstr "Uppdatering av regel lyckades"
|
||||
|
||||
#: advancedcontentfilter.php:418
|
||||
#: advancedcontentfilter.php:431
|
||||
msgid "Rule successfully deleted"
|
||||
msgstr "Borttagning av regel lyckades"
|
||||
|
||||
#: advancedcontentfilter.php:428
|
||||
#: advancedcontentfilter.php:441
|
||||
msgid "Missing argument: guid."
|
||||
msgstr "Argument saknas: guid."
|
||||
|
||||
#: advancedcontentfilter.php:436
|
||||
#: advancedcontentfilter.php:449
|
||||
#, php-format
|
||||
msgid "Unknown post with guid: %s"
|
||||
msgstr "Okänt inlägg med guid: %s"
|
||||
|
||||
@@ -10,6 +10,7 @@ $a->strings['Advanced Content Filter'] = 'Avancerat innehållsfiter';
|
||||
$a->strings['Back to Addon Settings'] = 'TIllbaka till Tilläggsinställningar';
|
||||
$a->strings['Add a Rule'] = 'Lägg till en regel';
|
||||
$a->strings['Help'] = 'Hjälp';
|
||||
$a->strings['Add and manage your personal content filter rules in this screen. Rules have a name and an arbitrary expression that will be matched against post data. For a complete reference of the available operations and variables, check the help page.'] = 'Lägg till och hantera dina personliga regler för innehållsfilter i det här fönstret. Regler har ett namn och ett filteruttryck som jämförs mot inläggets innehåll. Förteckning över alla operander och variabler finns att hitta på <a href="advancedcontentfilter/help">hjälpsidan</a>.';
|
||||
$a->strings['Your rules'] = 'Dina regler';
|
||||
$a->strings['You have no rules yet! Start adding one by clicking on the button above next to the title.'] = 'Du har inga regler än! Lägg till regler genom att klicka på knappen ovanför, bredvid överskriften.';
|
||||
$a->strings['Disabled'] = 'Inaktiverad';
|
||||
@@ -26,6 +27,7 @@ $a->strings['Add new rule'] = 'Lägg till ny regel';
|
||||
$a->strings['Rule Name'] = 'Regelnamn';
|
||||
$a->strings['Rule Expression'] = 'Regeluttryck';
|
||||
$a->strings['Cancel'] = 'Avbryt';
|
||||
$a->strings['This addon requires this node having at least one post'] = 'Detta tillägg kräver att denna nod har åtminstone ett inlägg';
|
||||
$a->strings['You must be logged in to use this method'] = 'Du måste vara inloggad för att använda den här funktionen';
|
||||
$a->strings['Invalid form security token, please refresh the page.'] = 'Felaktigt säkerhetsformulärstecken, vänligen uppdatera sidan.';
|
||||
$a->strings['The rule name and expression are required.'] = 'Regelns namn och uttryck krävs.';
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
3. Replace the render and staticRenderFns members in advancedcontentfilter.js by the contents of the anonymous() functions
|
||||
-->
|
||||
<div id="rules">
|
||||
<p><a href="settings/addon">🔙 {{ messages.backtosettings }}</a></p>
|
||||
<p><a href="settings/addons">🔙 {{ messages.backtosettings }}</a></p>
|
||||
<h1>
|
||||
{{ messages.title }}
|
||||
|
||||
|
||||
@@ -17,6 +17,6 @@
|
||||
</script>
|
||||
|
||||
<!-- JS -->
|
||||
<script src="{{$baseurl}}/view/asset/vue/dist/vue.min.js"></script>
|
||||
<script src="{{$baseurl}}/addon/advancedcontentfilter/asset/vue/dist/vue.min.js"></script>
|
||||
<script src="{{$baseurl}}/addon/advancedcontentfilter/advancedcontentfilter.js"></script>
|
||||
</div>
|
||||
|
||||
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 392 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.2 KiB |
@@ -34,16 +34,16 @@ function birdavatar_install()
|
||||
/**
|
||||
* Bird avatar user settings page
|
||||
*/
|
||||
function birdavatar_addon_settings(App $a, array &$data)
|
||||
function birdavatar_addon_settings(array &$data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$t = Renderer::getMarkupTemplate('settings.tpl', 'addon/birdavatar/');
|
||||
$html = Renderer::replaceMacros($t, [
|
||||
'$uncache' => time(),
|
||||
'$uid' => local_user(),
|
||||
'$uid' => DI::userSession()->getLocalUserId(),
|
||||
'$setrandomize' => DI::l10n()->t('Set default profile avatar or randomize the bird.'),
|
||||
]);
|
||||
|
||||
@@ -54,7 +54,7 @@ function birdavatar_addon_settings(App $a, array &$data)
|
||||
'submit' => [
|
||||
'birdavatar-usebird' => DI::l10n()->t('Use Bird as Avatar'),
|
||||
'birdavatar-morebird' => DI::l10n()->t('More Random Bird!'),
|
||||
'birdavatar-emailbird' => DI::pConfig()->get(local_user(), 'birdavatar', 'seed', false) ? DI::l10n()->t('Reset to email Bird') : null,
|
||||
'birdavatar-emailbird' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'birdavatar', 'seed', false) ? DI::l10n()->t('Reset to email Bird') : null,
|
||||
],
|
||||
];
|
||||
}
|
||||
@@ -62,68 +62,67 @@ function birdavatar_addon_settings(App $a, array &$data)
|
||||
/**
|
||||
* Bird avatar user settings POST handle
|
||||
*/
|
||||
function birdavatar_addon_settings_post(App $a, &$s)
|
||||
function birdavatar_addon_settings_post(&$s)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!empty($_POST['birdavatar-usebird'])) {
|
||||
$url = DI::baseUrl()->get() . '/birdavatar/' . local_user() . '?ts=' . time();
|
||||
$url = DI::baseUrl() . '/birdavatar/' . DI::userSession()->getLocalUserId() . '?ts=' . time();
|
||||
|
||||
$self = DBA::selectFirst('contact', ['id'], ['uid' => local_user(), 'self' => true]);
|
||||
$self = DBA::selectFirst('contact', ['id'], ['uid' => DI::userSession()->getLocalUserId(), 'self' => true]);
|
||||
if (!DBA::isResult($self)) {
|
||||
notice(DI::l10n()->t("The bird has not found itself."));
|
||||
DI::sysmsg()->addNotice(DI::l10n()->t("The bird has not found itself."));
|
||||
return;
|
||||
}
|
||||
|
||||
Photo::importProfilePhoto($url, local_user(), $self['id']);
|
||||
Photo::importProfilePhoto($url, DI::userSession()->getLocalUserId(), $self['id']);
|
||||
|
||||
$condition = ['uid' => local_user(), 'contact-id' => $self['id']];
|
||||
$condition = ['uid' => DI::userSession()->getLocalUserId(), 'contact-id' => $self['id']];
|
||||
$photo = DBA::selectFirst('photo', ['resource-id'], $condition);
|
||||
if (!DBA::isResult($photo)) {
|
||||
notice(DI::l10n()->t('There was an error, the bird flew away.'));
|
||||
DI::sysmsg()->addNotice(DI::l10n()->t('There was an error, the bird flew away.'));
|
||||
return;
|
||||
}
|
||||
|
||||
DBA::update('photo', ['profile' => false], ['profile' => true, 'uid' => local_user()]);
|
||||
DBA::update('photo', ['profile' => false], ['profile' => true, 'uid' => DI::userSession()->getLocalUserId()]);
|
||||
|
||||
$fields = ['profile' => true, 'album' => DI::l10n()->t('Profile Photos'), 'contact-id' => 0];
|
||||
DBA::update('photo', $fields, ['uid' => local_user(), 'resource-id' => $photo['resource-id']]);
|
||||
DBA::update('photo', $fields, ['uid' => DI::userSession()->getLocalUserId(), 'resource-id' => $photo['resource-id']]);
|
||||
|
||||
Photo::importProfilePhoto($url, local_user(), $self['id']);
|
||||
Photo::importProfilePhoto($url, DI::userSession()->getLocalUserId(), $self['id']);
|
||||
|
||||
Contact::updateSelfFromUserID(local_user(), true);
|
||||
Contact::updateSelfFromUserID(DI::userSession()->getLocalUserId(), true);
|
||||
|
||||
// Update global directory in background
|
||||
Profile::publishUpdate(local_user());
|
||||
Profile::publishUpdate(DI::userSession()->getLocalUserId());
|
||||
|
||||
info(DI::l10n()->t('Meow!'));
|
||||
DI::sysmsg()->addInfo(DI::l10n()->t('Meow!'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!empty($_POST['birdavatar-morebird'])) {
|
||||
DI::pConfig()->set(local_user(), 'birdavatar', 'seed', time());
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'birdavatar', 'seed', time());
|
||||
}
|
||||
|
||||
if (!empty($_POST['birdavatar-emailbird'])) {
|
||||
DI::pConfig()->delete(local_user(), 'birdavatar', 'seed');
|
||||
DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'birdavatar', 'seed');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL to the bird avatar
|
||||
*
|
||||
* @param $a array
|
||||
* @param &$b array
|
||||
*/
|
||||
function birdavatar_lookup(App $a, &$b)
|
||||
function birdavatar_lookup(array &$b)
|
||||
{
|
||||
$user = DBA::selectFirst('user', ['uid'], ['email' => $b['email']]);
|
||||
if (DBA::isResult($user)) {
|
||||
$url = DI::baseUrl()->get() . '/birdavatar/' . $user['uid'];
|
||||
$url = DI::baseUrl() . '/birdavatar/' . $user['uid'];
|
||||
} else {
|
||||
$url = DI::baseUrl()->get() . '/birdavatar/' . md5(trim(strtolower($b['email'])));
|
||||
$url = DI::baseUrl() . '/birdavatar/' . md5(trim(strtolower($b['email'])));
|
||||
}
|
||||
|
||||
switch ($b['size']) {
|
||||
@@ -136,9 +135,12 @@ function birdavatar_lookup(App $a, &$b)
|
||||
$b['success'] = true;
|
||||
}
|
||||
|
||||
function birdavatar_module()
|
||||
{
|
||||
}
|
||||
/**
|
||||
* This is a statement rather than an actual function definition. The simple
|
||||
* existence of this method is checked to figure out if the addon offers a
|
||||
* module.
|
||||
*/
|
||||
function birdavatar_module() {}
|
||||
|
||||
/**
|
||||
* Returns image for user id
|
||||
@@ -146,7 +148,7 @@ function birdavatar_module()
|
||||
* @throws NotFoundException
|
||||
*
|
||||
*/
|
||||
function birdavatar_content(App $a)
|
||||
function birdavatar_content()
|
||||
{
|
||||
if (DI::args()->getArgc() < 2 || DI::args()->getArgc() > 3) {
|
||||
throw new NotFoundException(); // this should be catched on index and show default "not found" page.
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
* THE SOFTWARE.
|
||||
*/
|
||||
|
||||
use Friendica\App;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\Renderer;
|
||||
@@ -54,9 +55,10 @@ function blackout_install() {
|
||||
Hook::register('page_header', 'addon/blackout/blackout.php', 'blackout_redirect');
|
||||
}
|
||||
|
||||
function blackout_redirect ($a, $b) {
|
||||
function blackout_redirect ($b)
|
||||
{
|
||||
// if we have a logged in user, don't throw her out
|
||||
if (local_user()) {
|
||||
if (DI::userSession()->getLocalUserId()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -67,32 +69,34 @@ function blackout_redirect ($a, $b) {
|
||||
$now = time();
|
||||
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart);
|
||||
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend);
|
||||
if ( $date1 && $date2 ) {
|
||||
if ($date1 && $date2) {
|
||||
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart)->format('U');
|
||||
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend)->format('U');
|
||||
} else {
|
||||
$date1 = 0;
|
||||
$date2 = 0;
|
||||
$date1 = 0;
|
||||
$date2 = 0;
|
||||
}
|
||||
|
||||
if (( $date1 <= $now ) && ( $now <= $date2 )) {
|
||||
Logger::notice('redirecting user to blackout page');
|
||||
System::externalRedirect($myurl);
|
||||
}
|
||||
}
|
||||
|
||||
function blackout_addon_admin(&$a, &$o) {
|
||||
function blackout_addon_admin(string &$o)
|
||||
{
|
||||
$mystart = DI::config()->get('blackout','begindate');
|
||||
if (! is_string($mystart)) { $mystart = "YYYY-MM-DD hh:mm"; }
|
||||
if (! is_string($mystart)) { $mystart = 'YYYY-MM-DD hh:mm'; }
|
||||
$myend = DI::config()->get('blackout','enddate');
|
||||
if (! is_string($myend)) { $myend = "YYYY-MM-DD hh:mm"; }
|
||||
if (! is_string($myend)) { $myend = 'YYYY-MM-DD hh:mm'; }
|
||||
$myurl = DI::config()->get('blackout','url');
|
||||
if (! is_string($myurl)) { $myurl = "https://www.example.com"; }
|
||||
$t = Renderer::getMarkupTemplate( "admin.tpl", "addon/blackout/" );
|
||||
if (! is_string($myurl)) { $myurl = 'https://www.example.com'; }
|
||||
$t = Renderer::getMarkupTemplate( 'admin.tpl', 'addon/blackout/' );
|
||||
|
||||
$date1 = DateTime::createFromFormat('Y-m-d G:i', $mystart);
|
||||
$date2 = DateTime::createFromFormat('Y-m-d G:i', $myend);
|
||||
// a note for the admin
|
||||
$adminnote = "";
|
||||
$adminnote = '';
|
||||
if ($date2 < $date1) {
|
||||
$adminnote = DI::l10n()->t("The end-date is prior to the start-date of the blackout, you should fix this.");
|
||||
} else {
|
||||
@@ -100,18 +104,17 @@ function blackout_addon_admin(&$a, &$o) {
|
||||
}
|
||||
$o = Renderer::replaceMacros($t, [
|
||||
'$submit' => DI::l10n()->t('Save Settings'),
|
||||
'$rurl' => ["rurl", DI::l10n()->t("Redirect URL"), $myurl, DI::l10n()->t("All your visitors from the web will be redirected to this URL."), "", "", "url"],
|
||||
'$startdate' => ["startdate", DI::l10n()->t("Begin of the Blackout"), $mystart, DI::l10n()->t("Format is <tt>YYYY-MM-DD hh:mm</tt>; <em>YYYY</em> year, <em>MM</em> month, <em>DD</em> day, <em>hh</em> hour and <em>mm</em> minute.")],
|
||||
'$enddate' => ["enddate", DI::l10n()->t("End of the Blackout"), $myend, ""],
|
||||
'$rurl' => ['rurl', DI::l10n()->t("Redirect URL"), $myurl, DI::l10n()->t("All your visitors from the web will be redirected to this URL."), '', '', 'url'],
|
||||
'$startdate' => ['startdate', DI::l10n()->t("Begin of the Blackout"), $mystart, DI::l10n()->t("Format is <tt>YYYY-MM-DD hh:mm</tt>; <em>YYYY</em> year, <em>MM</em> month, <em>DD</em> day, <em>hh</em> hour and <em>mm</em> minute.")],
|
||||
'$enddate' => ['enddate', DI::l10n()->t("End of the Blackout"), $myend, ''],
|
||||
'$adminnote' => $adminnote,
|
||||
'$aboutredirect' => DI::l10n()->t("<strong>Note</strong>: The redirect will be active from the moment you press the submit button. Users currently logged in will <strong>not</strong> be thrown out but can't login again after logging out while the blackout is still in place."),
|
||||
]);
|
||||
}
|
||||
function blackout_addon_admin_post (&$a) {
|
||||
$begindate = trim($_POST['startdate']);
|
||||
$enddate = trim($_POST['enddate']);
|
||||
$url = trim($_POST['rurl']);
|
||||
DI::config()->set('blackout','begindate',$begindate);
|
||||
DI::config()->set('blackout','enddate',$enddate);
|
||||
DI::config()->set('blackout','url',$url);
|
||||
|
||||
function blackout_addon_admin_post ()
|
||||
{
|
||||
DI::config()->set('blackout', 'begindate', trim($_POST['startdate']));
|
||||
DI::config()->set('blackout', 'enddate', trim($_POST['enddate']));
|
||||
DI::config()->set('blackout', 'url', trim($_POST['rurl']));
|
||||
}
|
||||
|
||||
@@ -12,9 +12,9 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2021-05-23 19:26+0000\n"
|
||||
"Last-Translator: Till Mohr <tmtrfx@till-mohr.de>\n"
|
||||
"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:19+0000\n"
|
||||
"Last-Translator: Till Mohr <tmtrfx@till-mohr.de>, 2021\n"
|
||||
"Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -14,14 +14,14 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2021-03-22 08:14+0000\n"
|
||||
"Last-Translator: bob lebonche <lebonche@tutanota.com>\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:19+0000\n"
|
||||
"Last-Translator: bob lebonche <lebonche@tutanota.com>, 2021\n"
|
||||
"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: blackout.php:97
|
||||
msgid ""
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
$n = intval($n);
|
||||
return intval($n > 1);
|
||||
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['The end-date is prior to the start-date of the blackout, you should fix this.'] = 'La date de fin est antérieure à la date de début du blackout, vous devriez changer ça.';
|
||||
$a->strings['Please double check the current settings for the blackout. It will begin on <strong>%s</strong> and end on <strong>%s</strong>.'] = 'S\'il vous plaît, vérifiez à nouveau les réglages actuels du blackout. Il commencera à <strong>%s</strong> finira à <strong>%s</strong>.';
|
||||
|
||||
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2021-12-23 11:12+0000\n"
|
||||
"Last-Translator: Balázs Úr\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:19+0000\n"
|
||||
"Last-Translator: Balázs Úr, 2020-2021\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
@@ -8,9 +8,7 @@
|
||||
*
|
||||
*/
|
||||
|
||||
use Friendica\App;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\DI;
|
||||
use Jaybizzle\CrawlerDetect\CrawlerDetect;
|
||||
use Friendica\Core\Logger;
|
||||
@@ -19,12 +17,14 @@ use Friendica\Network\HTTPException\ForbiddenException;
|
||||
|
||||
require_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
function blockbot_install() {
|
||||
function blockbot_install()
|
||||
{
|
||||
Hook::register('init_1', __FILE__, 'blockbot_init_1');
|
||||
}
|
||||
|
||||
function blockbot_addon_admin(&$a, &$o) {
|
||||
$t = Renderer::getMarkupTemplate("admin.tpl", "addon/blockbot/");
|
||||
function blockbot_addon_admin(string &$o)
|
||||
{
|
||||
$t = Renderer::getMarkupTemplate('admin.tpl', 'addon/blockbot/');
|
||||
|
||||
$o = Renderer::replaceMacros($t, [
|
||||
'$submit' => DI::l10n()->t('Save Settings'),
|
||||
@@ -34,13 +34,15 @@ function blockbot_addon_admin(&$a, &$o) {
|
||||
]);
|
||||
}
|
||||
|
||||
function blockbot_addon_admin_post(&$a) {
|
||||
function blockbot_addon_admin_post()
|
||||
{
|
||||
DI::config()->set('blockbot', 'good_crawlers', $_POST['good_crawlers'] ?? false);
|
||||
DI::config()->set('blockbot', 'block_gab', $_POST['block_gab'] ?? false);
|
||||
DI::config()->set('blockbot', 'training', $_POST['training'] ?? false);
|
||||
}
|
||||
|
||||
function blockbot_init_1(App $a) {
|
||||
function blockbot_init_1()
|
||||
{
|
||||
if (empty($_SERVER['HTTP_USER_AGENT'])) {
|
||||
return;
|
||||
}
|
||||
@@ -48,12 +50,15 @@ function blockbot_init_1(App $a) {
|
||||
$logdata = ['agent' => $_SERVER['HTTP_USER_AGENT'], 'uri' => $_SERVER['REQUEST_URI']];
|
||||
|
||||
// List of "good" crawlers
|
||||
$good_agents = ['fediverse.space crawler', 'fediverse.network crawler', 'Active_Pods_CheckBot_3.0',
|
||||
$good_agents = [
|
||||
'fediverse.space crawler', 'fediverse.network crawler', 'Active_Pods_CheckBot_3.0',
|
||||
'Social-Relay/', 'Test Certificate Info', 'Uptimebot/', 'GNUSocialBot', 'UptimeRobot/',
|
||||
'PTST/', 'Zabbix', 'Poduptime/'];
|
||||
'PTST/', 'Zabbix', 'Poduptime/'
|
||||
];
|
||||
|
||||
// List of known crawlers.
|
||||
$agents = ['SemrushBot', 's~feedly-nikon3', 'Qwantify/Bleriot/', 'ltx71', 'Sogou web spider/',
|
||||
$agents = [
|
||||
'SemrushBot', 's~feedly-nikon3', 'Qwantify/Bleriot/', 'ltx71', 'Sogou web spider/',
|
||||
'Diffbot/', 'Twitterbot/', 'YisouSpider', 'evc-batch/', 'LivelapBot/', 'TrendsmapResolver/',
|
||||
'PaperLiBot/', 'Nuzzel', 'um-LN/', 'Google Favicon', 'Datanyze', 'BLEXBot/', '360Spider',
|
||||
'adscanner/', 'HeadlessChrome', 'wpif', 'startmebot/', 'Googlebot/', 'Applebot/',
|
||||
@@ -75,7 +80,8 @@ function blockbot_init_1(App $a) {
|
||||
'Google-Apps-Script; beanserver;', 'woorankreview/', 'Seekport Crawler;', 'AHC/',
|
||||
'SkypeUriPreview Preview/', 'Semanticbot/', 'Embed PHP library', 'XoviOnpageCrawler;',
|
||||
'GetHPinfo.com-Bot/', 'BoardReader Favicon Fetcher', 'Google-Adwords-Instant', 'newspaper/',
|
||||
'YurichevBot/', 'Crawling at Home Project', 'InfoTigerBot/'];
|
||||
'YurichevBot/', 'Crawling at Home Project', 'InfoTigerBot/'
|
||||
];
|
||||
|
||||
if (!DI::config()->get('blockbot', 'good_crawlers')) {
|
||||
$agents = array_merge($agents, $good_agents);
|
||||
@@ -110,7 +116,8 @@ function blockbot_init_1(App $a) {
|
||||
}
|
||||
|
||||
// List of false positives' strings of known "good" agents.
|
||||
$agents = ['curl', 'zgrab', 'Go-http-client', 'curb', 'github.com', 'reqwest', 'Feedly/',
|
||||
$agents = [
|
||||
'curl', 'zgrab', 'Go-http-client', 'curb', 'github.com', 'reqwest', 'Feedly/',
|
||||
'Python-urllib/', 'Liferea/', 'aiohttp/', 'WordPress.com Reader', 'hackney/',
|
||||
'Faraday v', 'okhttp', 'UniversalFeedParser', 'PixelFedBot', 'python-requests',
|
||||
'WordPress/', 'http.rb/', 'Apache-HttpClient/', 'WordPress.com;', 'Pleroma',
|
||||
@@ -118,7 +125,8 @@ function blockbot_init_1(App $a) {
|
||||
'lua-resty-http/', 'Tiny Tiny RSS/', 'Wget/', 'PostmanRuntime/',
|
||||
'W3C_Validator/', 'NetNewsWire', 'FeedValidator/', 'theoldreader.com', 'axios/',
|
||||
'Paw/', 'PeerTube/', 'fedi.inex.dev', 'FediDB/', 'index.community crawler',
|
||||
'Slackbot-LinkExpanding'];
|
||||
'Slackbot-LinkExpanding'
|
||||
];
|
||||
|
||||
if (DI::config()->get('blockbot', 'good_crawlers')) {
|
||||
$agents = array_merge($agents, $good_agents);
|
||||
@@ -126,11 +134,11 @@ function blockbot_init_1(App $a) {
|
||||
|
||||
foreach ($agents as $agent) {
|
||||
if (stristr($_SERVER['HTTP_USER_AGENT'], $agent)) {
|
||||
logger::notice('False positive', $logdata);
|
||||
logger::info('False positive', $logdata);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
logger::info('Blocked bot', $logdata);
|
||||
logger::notice('Blocked bot', $logdata);
|
||||
throw new ForbiddenException('Bots are not allowed');
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
* Version: 1.0
|
||||
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
||||
* Author: Roland Haeder <https://f.haeder.net/roland>
|
||||
* Status: unsupported
|
||||
*/
|
||||
|
||||
use Friendica\App;
|
||||
@@ -26,13 +27,13 @@ function blockem_install()
|
||||
Hook::register('enotify_store' , 'addon/blockem/blockem.php', 'blockem_enotify_store');
|
||||
}
|
||||
|
||||
function blockem_addon_settings(App $a, array &$data)
|
||||
function blockem_addon_settings(array &$data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$words = DI::pConfig()->get(local_user(), 'blockem', 'words', '');
|
||||
$words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'blockem', 'words', '');
|
||||
|
||||
$t = Renderer::getMarkupTemplate('settings.tpl', 'addon/blockem/');
|
||||
$html = Renderer::replaceMacros($t, [
|
||||
@@ -47,18 +48,18 @@ function blockem_addon_settings(App $a, array &$data)
|
||||
];
|
||||
}
|
||||
|
||||
function blockem_addon_settings_post(App $a, array &$b)
|
||||
function blockem_addon_settings_post(array &$b)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!empty($_POST['blockem-submit'])) {
|
||||
DI::pConfig()->set(local_user(), 'blockem', 'words', trim($_POST['blockem-words']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'blockem', 'words', trim($_POST['blockem-words']));
|
||||
}
|
||||
}
|
||||
|
||||
function blockem_enotify_store(App $a, array &$b)
|
||||
function blockem_enotify_store(array &$b)
|
||||
{
|
||||
$words = DI::pConfig()->get($b['uid'], 'blockem', 'words');
|
||||
|
||||
@@ -89,16 +90,16 @@ function blockem_enotify_store(App $a, array &$b)
|
||||
}
|
||||
}
|
||||
|
||||
function blockem_prepare_body_content_filter(App $a, array &$hook_data)
|
||||
function blockem_prepare_body_content_filter(array &$hook_data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$profiles_string = null;
|
||||
|
||||
if (local_user()) {
|
||||
$profiles_string = DI::pConfig()->get(local_user(), 'blockem', 'words');
|
||||
if (DI::userSession()->getLocalUserId()) {
|
||||
$profiles_string = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'blockem', 'words');
|
||||
}
|
||||
|
||||
if ($profiles_string) {
|
||||
@@ -121,22 +122,22 @@ function blockem_prepare_body_content_filter(App $a, array &$hook_data)
|
||||
}
|
||||
}
|
||||
|
||||
function blockem_display_item(App $a, array &$b = null)
|
||||
function blockem_display_item(array &$b = null)
|
||||
{
|
||||
if (!empty($b['output']['body']) && strstr($b['output']['body'], 'id="blockem-wrap-')) {
|
||||
$b['output']['thumb'] = DI::baseUrl()->get() . "/images/person-80.jpg";
|
||||
$b['output']['thumb'] = DI::baseUrl() . "/images/person-80.jpg";
|
||||
}
|
||||
}
|
||||
|
||||
function blockem_conversation_start(App $a, array &$b)
|
||||
function blockem_conversation_start(array &$b)
|
||||
{
|
||||
global $blockem_words;
|
||||
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$words = DI::pConfig()->get(local_user(), 'blockem', 'words');
|
||||
$words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'blockem', 'words');
|
||||
|
||||
if ($words) {
|
||||
$blockem_words = explode(',', $words);
|
||||
@@ -160,11 +161,11 @@ function blockemUnblock(author) {
|
||||
EOT;
|
||||
}
|
||||
|
||||
function blockem_item_photo_menu(App $a, array &$b)
|
||||
function blockem_item_photo_menu(array &$b)
|
||||
{
|
||||
global $blockem_words;
|
||||
|
||||
if (!local_user() || $b['item']['self']) {
|
||||
if (!DI::userSession()->getLocalUserId() || $b['item']['self']) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -186,17 +187,20 @@ function blockem_item_photo_menu(App $a, array &$b)
|
||||
}
|
||||
}
|
||||
|
||||
function blockem_module()
|
||||
{
|
||||
}
|
||||
/**
|
||||
* This is a statement rather than an actual function definition. The simple
|
||||
* existence of this method is checked to figure out if the addon offers a
|
||||
* module.
|
||||
*/
|
||||
function blockem_module() {}
|
||||
|
||||
function blockem_init(App $a)
|
||||
function blockem_init()
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$words = DI::pConfig()->get(local_user(), 'blockem', 'words');
|
||||
$words = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'blockem', 'words');
|
||||
|
||||
if (array_key_exists('block', $_GET) && $_GET['block']) {
|
||||
if (strlen($words)) {
|
||||
@@ -221,6 +225,6 @@ function blockem_init(App $a)
|
||||
$words = implode(',', $newarr);
|
||||
}
|
||||
|
||||
DI::pConfig()->set(local_user(), 'blockem', 'words', $words);
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'blockem', 'words', $words);
|
||||
exit();
|
||||
}
|
||||
|
||||
@@ -7,56 +7,44 @@
|
||||
# Hypolite Petovan <hypolite@mrpetovan.com>, 2016
|
||||
# Marie Olive <lacellule101@gmail.com>, 2018
|
||||
# StefOfficiel <pichard.stephane@free.fr>, 2015
|
||||
# vladimir N <lapoubelle111@gmail.com>, 2018
|
||||
# Vladimir Núñez <lapoubelle111@gmail.com>, 2018
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-08-17 10:23+0200\n"
|
||||
"PO-Revision-Date: 2018-12-30 12:33+0000\n"
|
||||
"Last-Translator: vladimir N <lapoubelle111@gmail.com>\n"
|
||||
"POT-Creation-Date: 2021-11-21 19:13-0500\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:20+0000\n"
|
||||
"Last-Translator: Vladimir Núñez <lapoubelle111@gmail.com>, 2018\n"
|
||||
"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: blockem.php:54 blockem.php:58
|
||||
msgid "Blockem"
|
||||
msgstr "Bloquez-les"
|
||||
|
||||
#: blockem.php:62
|
||||
#: blockem.php:39
|
||||
msgid ""
|
||||
"Hides user's content by collapsing posts. Also replaces their avatar with "
|
||||
"generic image."
|
||||
msgstr "Cache le contenu de l'utilisateur en contractant les publications. Remplace aussi leur avatar par une image générique."
|
||||
|
||||
#: blockem.php:63
|
||||
#: blockem.php:40
|
||||
msgid "Comma separated profile URLS:"
|
||||
msgstr "URLs de profil séparées par des virgules:"
|
||||
|
||||
#: blockem.php:67
|
||||
msgid "Save Settings"
|
||||
msgstr "Sauvegarder les paramètres"
|
||||
#: blockem.php:45
|
||||
msgid "Blockem"
|
||||
msgstr "Bloquez-les"
|
||||
|
||||
#: blockem.php:81
|
||||
msgid "BLOCKEM Settings saved."
|
||||
msgstr "Paramètres Bloquez-les sauvegardés."
|
||||
|
||||
#: blockem.php:143
|
||||
#: blockem.php:120
|
||||
#, php-format
|
||||
msgid "Filtered user: %s"
|
||||
msgstr "Utilisateur filtré:%s"
|
||||
|
||||
#: blockem.php:202
|
||||
#: blockem.php:183
|
||||
msgid "Unblock Author"
|
||||
msgstr "Débloquer l'Auteur"
|
||||
|
||||
#: blockem.php:204
|
||||
#: blockem.php:185
|
||||
msgid "Block Author"
|
||||
msgstr "Bloquer l'Auteur"
|
||||
|
||||
#: blockem.php:244
|
||||
msgid "blockem settings updated"
|
||||
msgstr "Réglages Blockem mis à jour."
|
||||
|
||||
@@ -3,14 +3,11 @@
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
$n = intval($n);
|
||||
return intval($n > 1);
|
||||
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['Blockem'] = 'Bloquez-les';
|
||||
$a->strings['Hides user\'s content by collapsing posts. Also replaces their avatar with generic image.'] = 'Cache le contenu de l\'utilisateur en contractant les publications. Remplace aussi leur avatar par une image générique.';
|
||||
$a->strings['Comma separated profile URLS:'] = 'URLs de profil séparées par des virgules:';
|
||||
$a->strings['Save Settings'] = 'Sauvegarder les paramètres';
|
||||
$a->strings['BLOCKEM Settings saved.'] = 'Paramètres Bloquez-les sauvegardés.';
|
||||
$a->strings['Blockem'] = 'Bloquez-les';
|
||||
$a->strings['Filtered user: %s'] = 'Utilisateur filtré:%s';
|
||||
$a->strings['Unblock Author'] = 'Débloquer l\'Auteur';
|
||||
$a->strings['Block Author'] = 'Bloquer l\'Auteur';
|
||||
$a->strings['blockem settings updated'] = 'Réglages Blockem mis à jour.';
|
||||
|
||||
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:13-0500\n"
|
||||
"PO-Revision-Date: 2021-12-23 11:13+0000\n"
|
||||
"Last-Translator: Balázs Úr\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:20+0000\n"
|
||||
"Last-Translator: Balázs Úr, 2020\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
10
bluesky/README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
Bluesky Addon
|
||||
==============
|
||||
|
||||
This addon currently supports posting to Bluesky.
|
||||
The import is under development and will hopefully come soon.
|
||||
|
||||
No setup is needed for the admins to make it work for their users.
|
||||
|
||||
Bluesky itself is under development as well. It is planned to make it decentral.
|
||||
The addon is prepared to support different servers. But it isn't enabled yet.
|
||||
387
bluesky/bluesky.php
Normal file
@@ -0,0 +1,387 @@
|
||||
<?php
|
||||
/**
|
||||
* Name: Bluesky Connector
|
||||
* Description: Post to Bluesky
|
||||
* Version: 1.0
|
||||
* Author: Michael Vogel <https://pirati.ca/profile/heluecht>
|
||||
*/
|
||||
|
||||
use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Content\Text\Plaintext;
|
||||
use Friendica\Core\Config\Util\ConfigFileManager;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\DI;
|
||||
use Friendica\Model\Item;
|
||||
use Friendica\Model\Photo;
|
||||
use Friendica\Network\HTTPClient\Client\HttpClientAccept;
|
||||
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
|
||||
use Friendica\Util\DateTimeFormat;
|
||||
|
||||
function bluesky_install()
|
||||
{
|
||||
Hook::register('load_config', __FILE__, 'bluesky_load_config');
|
||||
Hook::register('hook_fork', __FILE__, 'bluesky_hook_fork');
|
||||
Hook::register('post_local', __FILE__, 'bluesky_post_local');
|
||||
Hook::register('notifier_normal', __FILE__, 'bluesky_send');
|
||||
Hook::register('jot_networks', __FILE__, 'bluesky_jot_nets');
|
||||
Hook::register('connector_settings', __FILE__, 'bluesky_settings');
|
||||
Hook::register('connector_settings_post', __FILE__, 'bluesky_settings_post');
|
||||
}
|
||||
|
||||
function bluesky_load_config(ConfigFileManager $loader)
|
||||
{
|
||||
DI::app()->getConfigCache()->load($loader->loadAddonConfig('bluesky'), \Friendica\Core\Config\ValueObject\Cache::SOURCE_STATIC);
|
||||
}
|
||||
|
||||
function bluesky_settings(array &$data)
|
||||
{
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'post') ?? false;
|
||||
$def_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'post_by_default') ?? false;
|
||||
$host = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'host') ?: 'https://bsky.social';
|
||||
$handle = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'handle');
|
||||
$did = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'did');
|
||||
$token = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'access_token');
|
||||
|
||||
$status = $token ? DI::l10n()->t("You are authenticated to Bluesky. For security reasons the password isn't stored.") : DI::l10n()->t('You are not authenticated. Please enter the app password.');
|
||||
|
||||
$t = Renderer::getMarkupTemplate('connector_settings.tpl', 'addon/bluesky/');
|
||||
$html = Renderer::replaceMacros($t, [
|
||||
'$enable' => ['bluesky', DI::l10n()->t('Enable Bluesky Post Addon'), $enabled],
|
||||
'$bydefault' => ['bluesky_bydefault', DI::l10n()->t('Post to Bluesky by default'), $def_enabled],
|
||||
'$host' => ['bluesky_host', DI::l10n()->t('Bluesky host'), $host, '', '', 'readonly'],
|
||||
'$handle' => ['bluesky_handle', DI::l10n()->t('Bluesky handle'), $handle],
|
||||
'$did' => ['bluesky_did', DI::l10n()->t('Bluesky DID'), $did, DI::l10n()->t('This is the unique identifier. It will be fetched automatically, when the handle is entered.'), '', 'readonly'],
|
||||
'$password' => ['bluesky_password', DI::l10n()->t('Bluesky app password'), '', DI::l10n()->t("Please don't add your real password here, but instead create a specific app password in the Bluesky settings.")],
|
||||
'$status' => $status
|
||||
]);
|
||||
|
||||
$data = [
|
||||
'connector' => 'bluesky',
|
||||
'title' => DI::l10n()->t('Bluesky Export'),
|
||||
'image' => 'images/bluesky.jpg',
|
||||
'enabled' => $enabled,
|
||||
'html' => $html,
|
||||
];
|
||||
}
|
||||
|
||||
function bluesky_settings_post(array &$b)
|
||||
{
|
||||
if (empty($_POST['bluesky-submit'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$old_host = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'host');
|
||||
$old_handle = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'handle');
|
||||
$old_did = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'did');
|
||||
|
||||
$host = $_POST['bluesky_host'];
|
||||
$handle = $_POST['bluesky_handle'];
|
||||
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'post', intval($_POST['bluesky']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'post_by_default', intval($_POST['bluesky_bydefault']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'host', $host);
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'handle', $handle);
|
||||
|
||||
if (!empty($host) && !empty($handle)) {
|
||||
if (empty($old_did) || $old_host != $host || $old_handle != $handle) {
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'bluesky', 'did', bluesky_get_did(DI::userSession()->getLocalUserId()));
|
||||
}
|
||||
} else {
|
||||
DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'bluesky', 'did');
|
||||
}
|
||||
|
||||
if (!empty($_POST['bluesky_password'])) {
|
||||
bluesky_create_token(DI::userSession()->getLocalUserId(), $_POST['bluesky_password']);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function bluesky_jot_nets(array &$jotnets_fields)
|
||||
{
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'post')) {
|
||||
$jotnets_fields[] = [
|
||||
'type' => 'checkbox',
|
||||
'field' => [
|
||||
'bluesky_enable',
|
||||
DI::l10n()->t('Post to Bluesky'),
|
||||
DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'post_by_default')
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
function bluesky_hook_fork(array &$b)
|
||||
{
|
||||
if ($b['name'] != 'notifier_normal') {
|
||||
return;
|
||||
}
|
||||
|
||||
$post = $b['data'];
|
||||
|
||||
if (($post['created'] !== $post['edited']) && !$post['deleted']) {
|
||||
DI::logger()->info('Editing is not supported by the addon');
|
||||
$b['execute'] = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!strstr($post['postopts'] ?? '', 'bluesky') || ($post['parent'] != $post['id']) || $post['private']) {
|
||||
$b['execute'] = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function bluesky_post_local(array &$b)
|
||||
{
|
||||
if ($b['edit']) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!DI::userSession()->getLocalUserId() || (DI::userSession()->getLocalUserId() != $b['uid'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($b['private'] || $b['parent']) {
|
||||
return;
|
||||
}
|
||||
|
||||
$bluesky_post = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'post'));
|
||||
$bluesky_enable = (($bluesky_post && !empty($_REQUEST['bluesky_enable'])) ? intval($_REQUEST['bluesky_enable']) : 0);
|
||||
|
||||
// if API is used, default to the chosen settings
|
||||
if ($b['api_source'] && intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'bluesky', 'post_by_default'))) {
|
||||
$bluesky_enable = 1;
|
||||
}
|
||||
|
||||
if (!$bluesky_enable) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (strlen($b['postopts'])) {
|
||||
$b['postopts'] .= ',';
|
||||
}
|
||||
|
||||
$b['postopts'] .= 'bluesky';
|
||||
}
|
||||
|
||||
function bluesky_send(array &$b)
|
||||
{
|
||||
if (($b['created'] !== $b['edited']) && !$b['deleted']) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ($b['gravity'] != Item::GRAVITY_PARENT) {
|
||||
return;
|
||||
} elseif ($b['private'] || !strstr($b['postopts'], 'bluesky')) {
|
||||
return;
|
||||
}
|
||||
|
||||
bluesky_create_post($b);
|
||||
}
|
||||
|
||||
function bluesky_create_post(array $item)
|
||||
{
|
||||
$uid = $item['uid'];
|
||||
$token = bluesky_get_token($uid);
|
||||
if (empty($token)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$did = DI::pConfig()->get($uid, 'bluesky', 'did');
|
||||
|
||||
$msg = Plaintext::getPost($item, 300, false, BBCode::CONNECTORS);
|
||||
$parent = $root = [];
|
||||
foreach ($msg['parts'] as $key => $part) {
|
||||
$record = [
|
||||
'text' => $part,
|
||||
'createdAt' => DateTimeFormat::utcNow(DateTimeFormat::ATOM),
|
||||
'$type' => 'app.bsky.feed.post'
|
||||
];
|
||||
|
||||
if (!empty($root)) {
|
||||
$record['reply'] = ['root' => $root, 'parent' => $parent];
|
||||
}
|
||||
|
||||
if ($key == count($msg['parts']) - 1) {
|
||||
$record = bluesky_add_embed($uid, $msg, $record);
|
||||
}
|
||||
|
||||
$post = [
|
||||
'collection' => 'app.bsky.feed.post',
|
||||
'repo' => $did,
|
||||
'record' => $record
|
||||
];
|
||||
|
||||
$parent = bluesky_post($uid, '/xrpc/com.atproto.repo.createRecord', json_encode($post), ['Content-type' => 'application/json', 'Authorization' => ['Bearer ' . $token]]);
|
||||
if (empty($parent)) {
|
||||
return;
|
||||
}
|
||||
Logger::debug('Posting done', ['return' => $parent]);
|
||||
if (empty($root)) {
|
||||
$root = $parent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function bluesky_add_embed(int $uid, array $msg, array $record): array
|
||||
{
|
||||
if (($msg['type'] != 'link') && !empty($msg['images'])) {
|
||||
$images = [];
|
||||
foreach ($msg['images'] as $image) {
|
||||
$photo = Photo::selectFirst(['resource-id'], ['id' => $image['id']]);
|
||||
$photo = Photo::selectFirst([], ["`resource-id` = ? AND `scale` > ?", $photo['resource-id'], 0], ['order' => ['scale']]);
|
||||
$blob = bluesky_upload_blob($uid, $photo);
|
||||
if (!empty($blob) && count($images) < 4) {
|
||||
$images[] = ['alt' => $image['description'], 'image' => $blob];
|
||||
}
|
||||
}
|
||||
if (!empty($images)) {
|
||||
$record['embed'] = ['$type' => 'app.bsky.embed.images', 'images' => $images];
|
||||
}
|
||||
} elseif ($msg['type'] == 'link') {
|
||||
$record['embed'] = [
|
||||
'$type' => 'app.bsky.embed.external',
|
||||
'external' => [
|
||||
'uri' => $msg['url'],
|
||||
'title' => $msg['title'],
|
||||
'description' => $msg['description'],
|
||||
]
|
||||
];
|
||||
if (!empty($msg['image'])) {
|
||||
$photo = Photo::createPhotoForExternalResource($msg['image']);
|
||||
$blob = bluesky_upload_blob($uid, $photo);
|
||||
if (!empty($blob)) {
|
||||
$record['embed']['external']['thumb'] = $blob;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $record;
|
||||
}
|
||||
|
||||
function bluesky_upload_blob(int $uid, array $photo): ?stdClass
|
||||
{
|
||||
$content = Photo::getImageForPhoto($photo);
|
||||
$data = bluesky_post($uid, '/xrpc/com.atproto.repo.uploadBlob', $content, ['Content-type' => $photo['type'], 'Authorization' => ['Bearer ' . bluesky_get_token($uid)]]);
|
||||
if (empty($data)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Logger::debug('Uploaded blob', ['return' => $data]);
|
||||
return $data->blob;
|
||||
}
|
||||
|
||||
function bluesky_get_timeline(int $uid)
|
||||
{
|
||||
$data = bluesky_get($uid, '/xrpc/app.bsky.feed.getTimeline', HttpClientAccept::JSON, [HttpClientOptions::HEADERS => ['Authorization' => ['Bearer ' . bluesky_get_token($uid)]]]);
|
||||
if (empty($data)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($data->feed)) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($data->feed as $entry) {
|
||||
// TODO Add Functionality to read the timeline
|
||||
print_r($entry);
|
||||
}
|
||||
}
|
||||
|
||||
function bluesky_get_did(int $uid): string
|
||||
{
|
||||
$data = bluesky_get($uid, '/xrpc/com.atproto.identity.resolveHandle?handle=' . DI::pConfig()->get($uid, 'bluesky', 'handle'));
|
||||
if (empty($data)) {
|
||||
return '';
|
||||
}
|
||||
Logger::debug('Got DID', ['return' => $data]);
|
||||
return $data->did;
|
||||
}
|
||||
|
||||
function bluesky_get_token(int $uid): string
|
||||
{
|
||||
$token = DI::pConfig()->get($uid, 'bluesky', 'access_token');
|
||||
$created = DI::pConfig()->get($uid, 'bluesky', 'token_created');
|
||||
if (empty($token)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if ($created + 300 < time()) {
|
||||
return bluesky_refresh_token($uid);
|
||||
}
|
||||
return $token;
|
||||
}
|
||||
|
||||
function bluesky_refresh_token(int $uid): string
|
||||
{
|
||||
$token = DI::pConfig()->get($uid, 'bluesky', 'refresh_token');
|
||||
|
||||
$data = bluesky_post($uid, '/xrpc/com.atproto.server.refreshSession', '', ['Authorization' => ['Bearer ' . $token]]);
|
||||
if (empty($data)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
Logger::debug('Refreshed token', ['return' => $data]);
|
||||
DI::pConfig()->set($uid, 'bluesky', 'access_token', $data->accessJwt);
|
||||
DI::pConfig()->set($uid, 'bluesky', 'refresh_token', $data->refreshJwt);
|
||||
DI::pConfig()->set($uid, 'bluesky', 'token_created', time());
|
||||
return $data->accessJwt;
|
||||
}
|
||||
|
||||
function bluesky_create_token(int $uid, string $password): string
|
||||
{
|
||||
$did = DI::pConfig()->get($uid, 'bluesky', 'did');
|
||||
|
||||
$data = bluesky_post($uid, '/xrpc/com.atproto.server.createSession', json_encode(['identifier' => $did, 'password' => $password]), ['Content-type' => 'application/json']);
|
||||
if (empty($data)) {
|
||||
return '';
|
||||
}
|
||||
|
||||
Logger::debug('Created token', ['return' => $data]);
|
||||
DI::pConfig()->set($uid, 'bluesky', 'access_token', $data->accessJwt);
|
||||
DI::pConfig()->set($uid, 'bluesky', 'refresh_token', $data->refreshJwt);
|
||||
DI::pConfig()->set($uid, 'bluesky', 'token_created', time());
|
||||
return $data->accessJwt;
|
||||
}
|
||||
|
||||
function bluesky_post(int $uid, string $url, string $params, array $headers): ?stdClass
|
||||
{
|
||||
try {
|
||||
$curlResult = DI::httpClient()->post(DI::pConfig()->get($uid, 'bluesky', 'host') . $url, $params, $headers);
|
||||
} catch (\Exception $e) {
|
||||
Logger::notice('Exception on post', ['exception' => $e]);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!$curlResult->isSuccess()) {
|
||||
Logger::notice('API Error', ['error' => json_decode($curlResult->getBody()) ?: $curlResult->getBody()]);
|
||||
return null;
|
||||
}
|
||||
|
||||
return json_decode($curlResult->getBody());
|
||||
}
|
||||
|
||||
function bluesky_get(int $uid, string $url, string $accept_content = HttpClientAccept::DEFAULT, array $opts = []): ?stdClass
|
||||
{
|
||||
try {
|
||||
$curlResult = DI::httpClient()->get(DI::pConfig()->get($uid, 'bluesky', 'host') . $url, $accept_content, $opts);
|
||||
} catch (\Exception $e) {
|
||||
Logger::notice('Exception on get', ['exception' => $e]);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!$curlResult->isSuccess()) {
|
||||
Logger::notice('API Error', ['error' => json_decode($curlResult->getBody()) ?: $curlResult->getBody()]);
|
||||
return null;
|
||||
}
|
||||
|
||||
return json_decode($curlResult->getBody());
|
||||
}
|
||||
72
bluesky/lang/C/messages.po
Normal file
@@ -0,0 +1,72 @@
|
||||
# ADDON bluesky
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica bluesky addon package.
|
||||
#
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-05-21 19:24+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"
|
||||
"Language: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: bluesky.php:51
|
||||
msgid ""
|
||||
"You are authenticated to Bluesky. For security reasons the password isn't "
|
||||
"stored."
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:51
|
||||
msgid "You are not authenticated. Please enter the app password."
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:55
|
||||
msgid "Enable Bluesky Post Addon"
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:56
|
||||
msgid "Post to Bluesky by default"
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:57
|
||||
msgid "Bluesky host"
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:58
|
||||
msgid "Bluesky handle"
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:59
|
||||
msgid "Bluesky DID"
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:59
|
||||
msgid ""
|
||||
"This is the unique identifier. It will be fetched automatically, when the "
|
||||
"handle is entered."
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:60
|
||||
msgid "Bluesky app password"
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:60
|
||||
msgid ""
|
||||
"Please don't add your real password here, but instead create a specific app "
|
||||
"password in the Bluesky settings."
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:66
|
||||
msgid "Bluesky Export"
|
||||
msgstr ""
|
||||
|
||||
#: bluesky.php:116
|
||||
msgid "Post to Bluesky"
|
||||
msgstr ""
|
||||
7
bluesky/templates/connector_settings.tpl
Normal file
@@ -0,0 +1,7 @@
|
||||
<p>{{$status}}</p>
|
||||
{{include file="field_checkbox.tpl" field=$enable}}
|
||||
{{include file="field_checkbox.tpl" field=$bydefault}}
|
||||
{{include file="field_input.tpl" field=$host}}
|
||||
{{include file="field_input.tpl" field=$handle}}
|
||||
{{include file="field_input.tpl" field=$did}}
|
||||
{{include file="field_input.tpl" field=$password}}
|
||||
@@ -15,7 +15,7 @@ function buglink_install()
|
||||
Hook::register('page_end', 'addon/buglink/buglink.php', 'buglink_active');
|
||||
}
|
||||
|
||||
function buglink_active(App $a, &$b)
|
||||
function buglink_active(string &$b)
|
||||
{
|
||||
$b .= '<div id="buglink_wrapper" style="position: fixed; bottom: 5px; left: 5px;"><a href="https://github.com/friendica/friendica/issues" target="_blank" rel="noopener noreferrer" title="' . DI::l10n()->t('Report Bug') . '"><img src="addon/buglink/bug-x.gif" alt="' . DI::l10n()->t('Report Bug') . '" /></a></div>';
|
||||
}
|
||||
|
||||
@@ -4,21 +4,21 @@
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Michal Šupler <msupler@gmail.com>, 2014
|
||||
# michal_s <msupler@gmail.com>, 2014
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2014-07-07 18:27+0000\n"
|
||||
"Last-Translator: Michal Šupler <msupler@gmail.com>\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/projects/p/friendica/language/cs/)\n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:27+0000\n"
|
||||
"Last-Translator: michal_s <msupler@gmail.com>, 2014\n"
|
||||
"Language-Team: Czech (http://app.transifex.com/Friendica/friendica/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
|
||||
#: buglink.php:15
|
||||
#: buglink.php:20
|
||||
msgid "Report Bug"
|
||||
msgstr "Nahlásit chybu"
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
if(! function_exists("string_plural_select_cs")) {
|
||||
function string_plural_select_cs($n){
|
||||
$n = intval($n);
|
||||
if (($n==1)) { return 0; } else if (($n>=2 && $n<=4)) { return 1; } else { return 2; }
|
||||
if (($n == 1 && $n % 1 == 0)) { return 0; } else if (($n >= 2 && $n <= 4 && $n % 1 == 0)) { return 1; } else if (($n % 1 != 0 )) { return 2; } else { return 3; }
|
||||
}}
|
||||
$a->strings['Report Bug'] = 'Nahlásit chybu';
|
||||
|
||||
@@ -10,16 +10,16 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2014-06-22 13:18+0200\n"
|
||||
"PO-Revision-Date: 2019-11-10 20:12+0000\n"
|
||||
"Last-Translator: René Wagner <apollo@rw-net.de>\n"
|
||||
"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:27+0000\n"
|
||||
"Last-Translator: René Wagner <apollo@rw-net.de>, 2019\n"
|
||||
"Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: buglink.php:15
|
||||
#: buglink.php:20
|
||||
msgid "Report Bug"
|
||||
msgstr "Fehler melden"
|
||||
|
||||
24
buglink/lang/fr/messages.po
Normal file
@@ -0,0 +1,24 @@
|
||||
# ADDON buglink
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica buglink addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# StefOfficiel <pichard.stephane@free.fr>, 2015
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:27+0000\n"
|
||||
"Last-Translator: StefOfficiel <pichard.stephane@free.fr>, 2015\n"
|
||||
"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: buglink.php:20
|
||||
msgid "Report Bug"
|
||||
msgstr "Signaler un Bug"
|
||||
@@ -1,3 +1,8 @@
|
||||
<?php
|
||||
|
||||
$a->strings["Report Bug"] = "Signaler un bug";
|
||||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
$n = intval($n);
|
||||
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['Report Bug'] = 'Signaler un Bug';
|
||||
|
||||
24
buglink/lang/gd/messages.po
Normal file
@@ -0,0 +1,24 @@
|
||||
# ADDON buglink
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica buglink addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# GunChleoc, 2022
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:27+0000\n"
|
||||
"Last-Translator: GunChleoc, 2022\n"
|
||||
"Language-Team: Gaelic, Scottish (http://www.transifex.com/Friendica/friendica/language/gd/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: gd\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n==1 || n==11) ? 0 : (n==2 || n==12) ? 1 : (n > 2 && n < 20) ? 2 : 3;\n"
|
||||
|
||||
#: buglink.php:20
|
||||
msgid "Report Bug"
|
||||
msgstr "Dèan aithris air buga"
|
||||
8
buglink/lang/gd/strings.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_gd")) {
|
||||
function string_plural_select_gd($n){
|
||||
$n = intval($n);
|
||||
if (($n==1 || $n==11)) { return 0; } else if (($n==2 || $n==12)) { return 1; } else if (($n > 2 && $n < 20)) { return 2; } else { return 3; }
|
||||
}}
|
||||
$a->strings['Report Bug'] = 'Dèan aithris air buga';
|
||||
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2021-12-23 17:09+0000\n"
|
||||
"Last-Translator: Balázs Úr\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:27+0000\n"
|
||||
"Last-Translator: Balázs Úr, 2020\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2018-03-30 17:07+0000\n"
|
||||
"Last-Translator: Waldemar Stoczkowski\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:27+0000\n"
|
||||
"Last-Translator: Waldemar Stoczkowski, 2018\n"
|
||||
"Language-Team: Polish (http://www.transifex.com/Friendica/friendica/language/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
* Version: 1.0
|
||||
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
||||
*/
|
||||
|
||||
use Friendica\App;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\DI;
|
||||
|
||||
@@ -12,19 +14,21 @@ function calc_install() {
|
||||
Hook::register('app_menu', 'addon/calc/calc.php', 'calc_app_menu');
|
||||
}
|
||||
|
||||
function calc_app_menu($a,&$b) {
|
||||
function calc_app_menu(array &$b)
|
||||
{
|
||||
$b['app_menu'][] = '<div class="app-title"><a href="calc">Calculator</a></div>';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* This is a statement rather than an actual function definition. The simple
|
||||
* existence of this method is checked to figure out if the addon offers a
|
||||
* module.
|
||||
*/
|
||||
function calc_module() {}
|
||||
|
||||
|
||||
|
||||
|
||||
function calc_init($a) {
|
||||
|
||||
$x = <<< EOT
|
||||
function calc_init()
|
||||
{
|
||||
$x = <<< EOT
|
||||
|
||||
<script language="JavaScript">
|
||||
/**************************************
|
||||
@@ -354,6 +358,5 @@ $o .= <<< EOT
|
||||
</td></tr></tbody></table>
|
||||
|
||||
EOT;
|
||||
return $o;
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
@@ -35,16 +35,16 @@ function catavatar_install()
|
||||
/**
|
||||
* Cat avatar user settings page
|
||||
*/
|
||||
function catavatar_addon_settings(App $a, array &$data)
|
||||
function catavatar_addon_settings(array &$data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$t = Renderer::getMarkupTemplate('settings.tpl', 'addon/catavatar/');
|
||||
$html = Renderer::replaceMacros($t, [
|
||||
'$uncache' => time(),
|
||||
'$uid' => local_user(),
|
||||
'$uid' => DI::userSession()->getLocalUserId(),
|
||||
'$setrandomize' => DI::l10n()->t('Set default profile avatar or randomize the cat.'),
|
||||
]);
|
||||
|
||||
@@ -55,7 +55,7 @@ function catavatar_addon_settings(App $a, array &$data)
|
||||
'submit' => [
|
||||
'catavatar-usecat' => DI::l10n()->t('Use Cat as Avatar'),
|
||||
'catavatar-morecat' => DI::l10n()->t('Another random Cat!'),
|
||||
'catavatar-emailcat' => DI::pConfig()->get(local_user(), 'catavatar', 'seed', false) ? DI::l10n()->t('Reset to email Cat') : null,
|
||||
'catavatar-emailcat' => DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'catavatar', 'seed', false) ? DI::l10n()->t('Reset to email Cat') : null,
|
||||
],
|
||||
];
|
||||
}
|
||||
@@ -63,68 +63,67 @@ function catavatar_addon_settings(App $a, array &$data)
|
||||
/**
|
||||
* Cat avatar user settings POST handle
|
||||
*/
|
||||
function catavatar_addon_settings_post(App $a, &$s)
|
||||
function catavatar_addon_settings_post(&$s)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!empty($_POST['catavatar-usecat'])) {
|
||||
$url = DI::baseUrl()->get() . '/catavatar/' . local_user() . '?ts=' . time();
|
||||
$url = DI::baseUrl() . '/catavatar/' . DI::userSession()->getLocalUserId() . '?ts=' . time();
|
||||
|
||||
$self = DBA::selectFirst('contact', ['id'], ['uid' => local_user(), 'self' => true]);
|
||||
$self = DBA::selectFirst('contact', ['id'], ['uid' => DI::userSession()->getLocalUserId(), 'self' => true]);
|
||||
if (!DBA::isResult($self)) {
|
||||
notice(DI::l10n()->t("The cat hadn't found itself."));
|
||||
DI::sysmsg()->addNotice(DI::l10n()->t("The cat hadn't found itself."));
|
||||
return;
|
||||
}
|
||||
|
||||
Photo::importProfilePhoto($url, local_user(), $self['id']);
|
||||
Photo::importProfilePhoto($url, DI::userSession()->getLocalUserId(), $self['id']);
|
||||
|
||||
$condition = ['uid' => local_user(), 'contact-id' => $self['id']];
|
||||
$condition = ['uid' => DI::userSession()->getLocalUserId(), 'contact-id' => $self['id']];
|
||||
$photo = DBA::selectFirst('photo', ['resource-id'], $condition);
|
||||
if (!DBA::isResult($photo)) {
|
||||
notice(DI::l10n()->t('There was an error, the cat ran away.'));
|
||||
DI::sysmsg()->addNotice(DI::l10n()->t('There was an error, the cat ran away.'));
|
||||
return;
|
||||
}
|
||||
|
||||
DBA::update('photo', ['profile' => false], ['profile' => true, 'uid' => local_user()]);
|
||||
DBA::update('photo', ['profile' => false], ['profile' => true, 'uid' => DI::userSession()->getLocalUserId()]);
|
||||
|
||||
$fields = ['profile' => true, 'album' => DI::l10n()->t('Profile Photos'), 'contact-id' => 0];
|
||||
DBA::update('photo', $fields, ['uid' => local_user(), 'resource-id' => $photo['resource-id']]);
|
||||
DBA::update('photo', $fields, ['uid' => DI::userSession()->getLocalUserId(), 'resource-id' => $photo['resource-id']]);
|
||||
|
||||
Photo::importProfilePhoto($url, local_user(), $self['id']);
|
||||
Photo::importProfilePhoto($url, DI::userSession()->getLocalUserId(), $self['id']);
|
||||
|
||||
Contact::updateSelfFromUserID(local_user(), true);
|
||||
Contact::updateSelfFromUserID(DI::userSession()->getLocalUserId(), true);
|
||||
|
||||
// Update global directory in background
|
||||
Profile::publishUpdate(local_user());
|
||||
Profile::publishUpdate(DI::userSession()->getLocalUserId());
|
||||
|
||||
info(DI::l10n()->t('Meow!'));
|
||||
DI::sysmsg()->addInfo(DI::l10n()->t('Meow!'));
|
||||
return;
|
||||
}
|
||||
|
||||
if (!empty($_POST['catavatar-morecat'])) {
|
||||
DI::pConfig()->set(local_user(), 'catavatar', 'seed', time());
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'catavatar', 'seed', time());
|
||||
}
|
||||
|
||||
if (!empty($_POST['catavatar-emailcat'])) {
|
||||
DI::pConfig()->delete(local_user(), 'catavatar', 'seed');
|
||||
DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'catavatar', 'seed');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL to the cat avatar
|
||||
*
|
||||
* @param $a array
|
||||
* @param &$b array
|
||||
*/
|
||||
function catavatar_lookup(App $a, &$b)
|
||||
function catavatar_lookup(array &$b)
|
||||
{
|
||||
$user = DBA::selectFirst('user', ['uid'], ['email' => $b['email']]);
|
||||
if (DBA::isResult($user)) {
|
||||
$url = DI::baseUrl()->get() . '/catavatar/' . $user['uid'];
|
||||
$url = DI::baseUrl() . '/catavatar/' . $user['uid'];
|
||||
} else {
|
||||
$url = DI::baseUrl()->get() . '/catavatar/' . md5(trim(strtolower($b['email'])));
|
||||
$url = DI::baseUrl() . '/catavatar/' . md5(trim(strtolower($b['email'])));
|
||||
}
|
||||
|
||||
switch($b['size']) {
|
||||
@@ -137,6 +136,11 @@ function catavatar_lookup(App $a, &$b)
|
||||
$b['success'] = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* This is a statement rather than an actual function definition. The simple
|
||||
* existence of this method is checked to figure out if the addon offers a
|
||||
* module.
|
||||
*/
|
||||
function catavatar_module() {}
|
||||
|
||||
/**
|
||||
@@ -145,7 +149,7 @@ function catavatar_module() {}
|
||||
* @throws NotFoundException
|
||||
*
|
||||
*/
|
||||
function catavatar_content(App $a)
|
||||
function catavatar_content()
|
||||
{
|
||||
if (DI::args()->getArgc() < 2 || DI::args()->getArgc() > 3) {
|
||||
throw new NotFoundException(); // this should be catched on index and show default "not found" page.
|
||||
|
||||
@@ -15,7 +15,7 @@ msgstr ""
|
||||
"POT-Creation-Date: 2021-11-21 19:14-0500\n"
|
||||
"PO-Revision-Date: 2018-04-07 05:23+0000\n"
|
||||
"Last-Translator: Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2022\n"
|
||||
"Language-Team: German (https://www.transifex.com/Friendica/teams/12172/de/)\n"
|
||||
"Language-Team: German (https://app.transifex.com/Friendica/teams/12172/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -6,54 +6,55 @@
|
||||
# Translators:
|
||||
# Vladimir Núñez <lapoubelle111@gmail.com>, 2019
|
||||
# Walter Bulbazor, 2021
|
||||
# Hypolite Petovan <hypolite@mrpetovan.com>, 2022
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-07-25 13:16+0000\n"
|
||||
"POT-Creation-Date: 2021-11-21 19:14-0500\n"
|
||||
"PO-Revision-Date: 2018-04-07 05:23+0000\n"
|
||||
"Last-Translator: Walter Bulbazor, 2021\n"
|
||||
"Last-Translator: Hypolite Petovan <hypolite@mrpetovan.com>, 2022\n"
|
||||
"Language-Team: French (https://www.transifex.com/Friendica/teams/12172/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: catavatar.php:49
|
||||
msgid "Use Cat as Avatar"
|
||||
msgstr "Utiliser Chat comme avatar"
|
||||
|
||||
#: catavatar.php:50
|
||||
msgid "More Random Cat!"
|
||||
msgstr "Autres Chats au hasard"
|
||||
|
||||
#: catavatar.php:51
|
||||
msgid "Reset to email Cat"
|
||||
msgstr "Réinitialiser à Chat courriel"
|
||||
#: catavatar.php:48
|
||||
msgid "Set default profile avatar or randomize the cat."
|
||||
msgstr "Mettre l'avatar par défaut ou tirer au sort le Chat."
|
||||
|
||||
#: catavatar.php:53
|
||||
msgid "Cat Avatar Settings"
|
||||
msgstr "Paramètres de Chat avatar"
|
||||
|
||||
#: catavatar.php:54
|
||||
msgid "Set default profile avatar or randomize the cat."
|
||||
msgstr "Mettre l'avatar par défaut ou tirer au sort le Chat."
|
||||
#: catavatar.php:56
|
||||
msgid "Use Cat as Avatar"
|
||||
msgstr "Utiliser Chat comme avatar"
|
||||
|
||||
#: catavatar.php:72
|
||||
#: catavatar.php:57
|
||||
msgid "Another random Cat!"
|
||||
msgstr "Un autre chat aléatoire !"
|
||||
|
||||
#: catavatar.php:58
|
||||
msgid "Reset to email Cat"
|
||||
msgstr "Réinitialiser à Chat courriel"
|
||||
|
||||
#: catavatar.php:77
|
||||
msgid "The cat hadn't found itself."
|
||||
msgstr "Le Chat ne s'y est pas retrouvé"
|
||||
|
||||
#: catavatar.php:81
|
||||
#: catavatar.php:86
|
||||
msgid "There was an error, the cat ran away."
|
||||
msgstr "Il y a eu une erreur et le chat s'est enfui"
|
||||
|
||||
#: catavatar.php:87
|
||||
#: catavatar.php:92
|
||||
msgid "Profile Photos"
|
||||
msgstr "Photos de profil"
|
||||
|
||||
#: catavatar.php:97
|
||||
#: catavatar.php:102
|
||||
msgid "Meow!"
|
||||
msgstr "Miaou !"
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
$n = intval($n);
|
||||
return intval($n > 1);
|
||||
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['Use Cat as Avatar'] = 'Utiliser Chat comme avatar';
|
||||
$a->strings['More Random Cat!'] = 'Autres Chats au hasard';
|
||||
$a->strings['Reset to email Cat'] = 'Réinitialiser à Chat courriel';
|
||||
$a->strings['Cat Avatar Settings'] = 'Paramètres de Chat avatar';
|
||||
$a->strings['Set default profile avatar or randomize the cat.'] = 'Mettre l\'avatar par défaut ou tirer au sort le Chat.';
|
||||
$a->strings['Cat Avatar Settings'] = 'Paramètres de Chat avatar';
|
||||
$a->strings['Use Cat as Avatar'] = 'Utiliser Chat comme avatar';
|
||||
$a->strings['Another random Cat!'] = 'Un autre chat aléatoire !';
|
||||
$a->strings['Reset to email Cat'] = 'Réinitialiser à Chat courriel';
|
||||
$a->strings['The cat hadn\'t found itself.'] = 'Le Chat ne s\'y est pas retrouvé';
|
||||
$a->strings['There was an error, the cat ran away.'] = 'Il y a eu une erreur et le chat s\'est enfui';
|
||||
$a->strings['Profile Photos'] = 'Photos de profil';
|
||||
|
||||
@@ -5,212 +5,207 @@
|
||||
* Version: 1.0
|
||||
* Author: Mike Macgirvin <http://macgirvin.com/profile/mike>
|
||||
*/
|
||||
|
||||
use Friendica\App;
|
||||
use Friendica\Core\Hook;
|
||||
|
||||
function convert_install() {
|
||||
Hook::register('app_menu', 'addon/convert/convert.php', 'convert_app_menu');
|
||||
}
|
||||
|
||||
function convert_app_menu($a,&$b) {
|
||||
function convert_app_menu(array &$b)
|
||||
{
|
||||
$b['app_menu'][] = '<div class="app-title"><a href="convert">Units Conversion</a></div>';
|
||||
}
|
||||
|
||||
|
||||
function convert_module() {}
|
||||
|
||||
function convert_content() {
|
||||
// @TODO UnitConverter uses a deprecated constructor with the class' name
|
||||
// @TODO Let's one day rewrite this to a modern composer package
|
||||
include 'UnitConvertor.php';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function convert_content($app) {
|
||||
|
||||
include("UnitConvertor.php");
|
||||
|
||||
class TP_Converter extends UnitConvertor {
|
||||
function TP_Converter($lang = "en")
|
||||
class TP_Converter extends UnitConvertor
|
||||
{
|
||||
if ($lang != 'en' ) {
|
||||
$dec_point = '.'; $thousand_sep = "'";
|
||||
} else {
|
||||
$dec_point = '.'; $thousand_sep = ",";
|
||||
public function __construct(string $lang = 'en')
|
||||
{
|
||||
if ($lang == 'en' ) {
|
||||
$dec_point = '.';
|
||||
$thousand_sep = ',';
|
||||
} else {
|
||||
$dec_point = '.';
|
||||
$thousand_sep = "'";
|
||||
}
|
||||
|
||||
parent::UnitConvertor($dec_point, $thousand_sep );
|
||||
}
|
||||
|
||||
$this->UnitConvertor($dec_point , $thousand_sep );
|
||||
|
||||
} // end func UnitConvertor
|
||||
|
||||
function find_base_unit($from,$to) {
|
||||
while (list($skey,$sval) = each($this->bases)) {
|
||||
if ($skey == $from || $to == $skey || in_array($to,$sval) || in_array($from,$sval)) {
|
||||
private function findBaseUnit($from, $to)
|
||||
{
|
||||
while (list($skey, $sval) = each($this->bases)) {
|
||||
if ($skey == $from || $to == $skey || in_array($to, $sval) || in_array($from, $sval)) {
|
||||
return $skey;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function getTable($value, $from_unit, $to_unit, $precision) {
|
||||
public function getTable(int $value, $from_unit, $to_unit, $precision): string
|
||||
{
|
||||
$string = '';
|
||||
|
||||
if ($base_unit = $this->find_base_unit($from_unit,$to_unit)) {
|
||||
|
||||
// A baseunit was found now lets convert from -> $base_unit
|
||||
|
||||
$cell ['value'] = $this->convert($value, $from_unit, $base_unit, $precision)." ".$base_unit;
|
||||
$cell ['class'] = ($base_unit == $from_unit || $base_unit == $to_unit) ? "framedred": "";
|
||||
if ($base_unit = $this->findBaseUnit($from_unit, $to_unit)) {
|
||||
// A baseunit was found now lets convert from -> $base_unit
|
||||
$cell ['value'] = $this->convert($value, $from_unit, $base_unit, $precision) . ' ' . $base_unit;
|
||||
$cell ['class'] = ($base_unit == $from_unit || $base_unit == $to_unit) ? 'framedred' : '';
|
||||
$cells[] = $cell;
|
||||
// We now have the base unit and value now lets produce the table;
|
||||
while (list($key,$val) = each($this->bases[$base_unit])) {
|
||||
$cell ['value'] = $this->convert($value, $from_unit, $val, $precision)." ".$val;
|
||||
$cell ['class'] = ($val == $from_unit || $val == $to_unit) ? "framedred": "";
|
||||
$cells[] = $cell;
|
||||
}
|
||||
|
||||
$cc = count($cells);
|
||||
$string = "<table class=\"framed grayish\" border=\"1\" cellpadding=\"5\" width=\"80%\" align=\"center\"><tr>";
|
||||
$string .= "<td rowspan=\"$cc\" align=\"center\">$value $from_unit</td>";
|
||||
$i=0;
|
||||
foreach ($cells as $cell) {
|
||||
if ($i==0) {
|
||||
$string .= "<td class=\"".$cell['class']."\">".$cell['value']."</td>";
|
||||
$i++;
|
||||
} else {
|
||||
$string .= "</tr><tr><td class=\"".$cell['class']."\">".$cell['value']."</td>";
|
||||
// We now have the base unit and value now lets produce the table;
|
||||
while (list($key, $val) = each($this->bases[$base_unit])) {
|
||||
$cell ['value'] = $this->convert($value, $from_unit, $val, $precision) . ' ' . $val;
|
||||
$cell ['class'] = ($val == $from_unit || $val == $to_unit) ? 'framedred' : '';
|
||||
$cells[] = $cell;
|
||||
}
|
||||
|
||||
$cc = count($cells);
|
||||
$string = "<table class=\"framed grayish\" border=\"1\" cellpadding=\"5\" width=\"80%\" align=\"center\"><tr>";
|
||||
$string .= "<td rowspan=\"$cc\" align=\"center\">$value $from_unit</td>";
|
||||
$i = 0;
|
||||
foreach ($cells as $cell) {
|
||||
if ($i == 0) {
|
||||
$string .= "<td class=\"" . $cell['class'] . "\">" . $cell['value'] . "</td>";
|
||||
$i++;
|
||||
} else {
|
||||
$string .= "</tr><tr><td class=\"" . $cell['class'] . "\">" . $cell['value'] . "</td>";
|
||||
}
|
||||
}
|
||||
$string .= "</tr></table>";
|
||||
}
|
||||
$string .= "</tr></table>";
|
||||
|
||||
return $string;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$conv = new TP_Converter('en');
|
||||
|
||||
$conv = new TP_Converter('en');
|
||||
$conversions = [
|
||||
'Temperature' => ['base' => 'Celsius',
|
||||
'conv' => [
|
||||
'Fahrenheit' => ['ratio' => 1.8, 'offset' => 32],
|
||||
'Kelvin' => ['ratio' => 1, 'offset' => 273],
|
||||
'Reaumur' => 0.8
|
||||
]
|
||||
],
|
||||
'Weight' => ['base' => 'kg',
|
||||
'conv' => [
|
||||
'g' => 1000,
|
||||
'mg' => 1000000,
|
||||
't' => 0.001,
|
||||
'grain' => 15432,
|
||||
'oz' => 35.274,
|
||||
'lb' => 2.2046,
|
||||
'cwt(UK)' => 0.019684,
|
||||
'cwt(US)' => 0.022046,
|
||||
'ton (US)' => 0.0011023,
|
||||
'ton (UK)' => 0.0009842
|
||||
]
|
||||
],
|
||||
'Distance' => ['base' => 'km',
|
||||
'conv' => [
|
||||
'm' => 1000,
|
||||
'dm' => 10000,
|
||||
'cm' => 100000,
|
||||
'mm' => 1000000,
|
||||
'mile' => 0.62137,
|
||||
'naut.mile' => 0.53996,
|
||||
'inch(es)' => 39370,
|
||||
'ft' => 3280.8,
|
||||
'yd' => 1093.6,
|
||||
'furlong' => 4.970969537898672,
|
||||
'fathom' => 546.8066491688539
|
||||
]
|
||||
],
|
||||
'Area' => ['base' => 'km 2',
|
||||
'conv' => [
|
||||
'ha' => 100,
|
||||
'acre' => 247.105,
|
||||
'm 2' => pow(1000,2),
|
||||
'dm 2' => pow(10000,2),
|
||||
'cm 2' => pow(100000,2),
|
||||
'mm 2' => pow(1000000,2),
|
||||
'mile 2' => pow(0.62137,2),
|
||||
'naut.miles 2' => pow(0.53996,2),
|
||||
'in 2' => pow(39370,2),
|
||||
'ft 2' => pow(3280.8,2),
|
||||
'yd 2' => pow(1093.6,2),
|
||||
]
|
||||
],
|
||||
'Volume' => ['base' => 'm 3',
|
||||
'conv' => [
|
||||
'in 3' => 61023.6,
|
||||
'ft 3' => 35.315,
|
||||
'cm 3' => pow(10,6),
|
||||
'dm 3' => 1000,
|
||||
'litre' => 1000,
|
||||
'hl' => 10,
|
||||
'yd 3' => 1.30795,
|
||||
'gal(US)' => 264.172,
|
||||
'gal(UK)' => 219.969,
|
||||
'pint' => 2113.376,
|
||||
'quart' => 1056.688,
|
||||
'cup' => 4266.753,
|
||||
'fl oz' => 33814.02,
|
||||
'tablespoon' => 67628.04,
|
||||
'teaspoon' => 202884.1,
|
||||
'pt (UK)' => 1000/0.56826,
|
||||
'barrel petroleum' => 1000/158.99,
|
||||
'Register Tons' => 2.832,
|
||||
'Ocean Tons' => 1.1327
|
||||
]
|
||||
],
|
||||
'Speed' => ['base' => 'kmph',
|
||||
'conv' => [
|
||||
'mps' => 0.0001726031,
|
||||
'milesph' => 0.62137,
|
||||
'knots' => 0.53996,
|
||||
'mach STP' => 0.0008380431,
|
||||
'c (warp)' => 9.265669e-10
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
$conversions = [
|
||||
'Temperature'=>['base' =>'Celsius',
|
||||
'conv'=>[
|
||||
'Fahrenheit'=>['ratio'=>1.8, 'offset'=>32],
|
||||
'Kelvin'=>['ratio'=>1, 'offset'=>273],
|
||||
'Reaumur'=>0.8
|
||||
]
|
||||
],
|
||||
'Weight' => ['base' =>'kg',
|
||||
'conv'=>[
|
||||
'g'=>1000,
|
||||
'mg'=>1000000,
|
||||
't'=>0.001,
|
||||
'grain'=>15432,
|
||||
'oz'=>35.274,
|
||||
'lb'=>2.2046,
|
||||
'cwt(UK)' => 0.019684,
|
||||
'cwt(US)' => 0.022046,
|
||||
'ton (US)' => 0.0011023,
|
||||
'ton (UK)' => 0.0009842
|
||||
]
|
||||
],
|
||||
'Distance' => ['base' =>'km',
|
||||
'conv'=>[
|
||||
'm'=>1000,
|
||||
'dm'=>10000,
|
||||
'cm'=>100000,
|
||||
'mm'=>1000000,
|
||||
'mile'=>0.62137,
|
||||
'naut.mile'=>0.53996,
|
||||
'inch(es)'=>39370,
|
||||
'ft'=>3280.8,
|
||||
'yd'=>1093.6,
|
||||
'furlong'=>4.970969537898672,
|
||||
'fathom'=>546.8066491688539
|
||||
]
|
||||
],
|
||||
'Area' => ['base' =>'km 2',
|
||||
'conv'=>[
|
||||
'ha'=>100,
|
||||
'acre'=>247.105,
|
||||
'm 2'=>pow(1000,2),
|
||||
'dm 2'=>pow(10000,2),
|
||||
'cm 2'=>pow(100000,2),
|
||||
'mm 2'=>pow(1000000,2),
|
||||
'mile 2'=>pow(0.62137,2),
|
||||
'naut.miles 2'=>pow(0.53996,2),
|
||||
'in 2'=>pow(39370,2),
|
||||
'ft 2'=>pow(3280.8,2),
|
||||
'yd 2'=>pow(1093.6,2),
|
||||
]
|
||||
],
|
||||
'Volume' => ['base' =>'m 3',
|
||||
'conv'=>[
|
||||
'in 3'=>61023.6,
|
||||
'ft 3'=>35.315,
|
||||
'cm 3'=>pow(10,6),
|
||||
'dm 3'=>1000,
|
||||
'litre'=>1000,
|
||||
'hl'=>10,
|
||||
'yd 3'=>1.30795,
|
||||
'gal(US)'=>264.172,
|
||||
'gal(UK)'=>219.969,
|
||||
'pint' => 2113.376,
|
||||
'quart' => 1056.688,
|
||||
'cup' => 4266.753,
|
||||
'fl oz' => 33814.02,
|
||||
'tablespoon' => 67628.04,
|
||||
'teaspoon' => 202884.1,
|
||||
'pt (UK)'=>1000/0.56826,
|
||||
'barrel petroleum'=>1000/158.99,
|
||||
'Register Tons'=>2.832,
|
||||
'Ocean Tons'=>1.1327
|
||||
]
|
||||
],
|
||||
'Speed' =>['base' =>'kmph',
|
||||
'conv'=>[
|
||||
'mps'=>0.0001726031,
|
||||
'milesph'=>0.62137,
|
||||
'knots'=>0.53996,
|
||||
'mach STP'=>0.0008380431,
|
||||
'c (warp)'=>9.265669e-10
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
while (list($key,$val) = each($conversions)) {
|
||||
$conv->addConversion($val['base'], $val['conv']);
|
||||
$list[$key][] = $val['base'];
|
||||
while (list($ukey,$uval) = each($val['conv'])) {
|
||||
$list[$key][] = $ukey;
|
||||
while (list($key, $val) = each($conversions)) {
|
||||
$conv->addConversion($val['base'], $val['conv']);
|
||||
$list[$key][] = $val['base'];
|
||||
while (list($ukey, $uval) = each($val['conv'])) {
|
||||
$list[$key][] = $ukey;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$o .= '<h3>Unit Conversions</h3>';
|
||||
|
||||
$o .= '<h3>Unit Conversions</h3>';
|
||||
|
||||
if (isset($_POST['from_unit']) && isset($_POST['value'])) {
|
||||
$_POST['value'] = $_POST['value'] + 0;
|
||||
|
||||
|
||||
$o .= ($conv->getTable($_POST['value'], $_POST['from_unit'], $_POST['to_unit'], 5))."</p>";
|
||||
$o .= ($conv->getTable(intval($_POST['value']), $_POST['from_unit'], $_POST['to_unit'], 5)) . '</p>';
|
||||
} else {
|
||||
$o .= "<p>Select:</p>";
|
||||
$o .= '<p>Select:</p>';
|
||||
}
|
||||
|
||||
if(isset($_POST['value']))
|
||||
if (isset($_POST['value'])) {
|
||||
$value = $_POST['value'];
|
||||
else
|
||||
} else {
|
||||
$value = '';
|
||||
}
|
||||
|
||||
$o .= '<form action="convert" method="post" name="conversion">';
|
||||
$o .= '<input name="value" type="text" id="value" value="' . $value . '" size="10" maxlength="10" />';
|
||||
$o .= '<select name="from_unit" size="12">';
|
||||
|
||||
|
||||
$o .= '<input name="value" type="text" id="value" value="' . $value . '" size="10" maxlength="10" />';
|
||||
$o .= '<select name="from_unit" size="12">';
|
||||
|
||||
reset($list);
|
||||
while(list($key,$val) = each($list)) {
|
||||
while(list($key, $val) = each($list)) {
|
||||
$o .= "\n\t<optgroup label=\"$key\">";
|
||||
while(list($ukey,$uval) = each($val)) {
|
||||
while(list($ukey, $uval) = each($val)) {
|
||||
$selected = (($uval == $_POST['from_unit']) ? ' selected="selected" ' : '');
|
||||
$o .= "\n\t\t<option value=\"$uval\" $selected >$uval</option>";
|
||||
}
|
||||
@@ -218,8 +213,7 @@ while (list($key,$val) = each($conversions)) {
|
||||
}
|
||||
|
||||
$o .= '</select>';
|
||||
|
||||
$o .= '<input type="submit" name="Submit" value="Submit" /></form>';
|
||||
$o .= '<input type="submit" name="Submit" value="Submit" /></form>';
|
||||
|
||||
return $o;
|
||||
}
|
||||
|
||||
@@ -28,14 +28,13 @@ function cookienotice_install()
|
||||
* cookienotice_addon_admin
|
||||
* creates the admins config panel
|
||||
*
|
||||
* @param App $a
|
||||
* @param string $s The existing config panel html so far
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function cookienotice_addon_admin(App $a, &$s)
|
||||
function cookienotice_addon_admin(&$s)
|
||||
{
|
||||
if (!$a->isSiteAdmin()) {
|
||||
if (!DI::userSession()->isSiteAdmin()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -57,13 +56,11 @@ function cookienotice_addon_admin(App $a, &$s)
|
||||
* cookienotice_addon_admin_post
|
||||
* handles the post request from the admin panel
|
||||
*
|
||||
* @param App $a
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function cookienotice_addon_admin_post(App $a)
|
||||
function cookienotice_addon_admin_post()
|
||||
{
|
||||
if (!$a->isSiteAdmin()) {
|
||||
if (!DI::userSession()->isSiteAdmin()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -78,12 +75,11 @@ function cookienotice_addon_admin_post(App $a)
|
||||
* page_content_top hook
|
||||
* adds css and scripts to the <head> section of the html
|
||||
*
|
||||
* @param App $a
|
||||
* @param string $b unused - the header html incl. nav
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function cookienotice_page_content_top(App $a, &$b)
|
||||
function cookienotice_page_content_top(string &$b)
|
||||
{
|
||||
DI::page()->registerStylesheet(__DIR__ . '/cookienotice.css');
|
||||
DI::page()->registerFooterScript(__DIR__ . '/cookienotice.js');
|
||||
@@ -94,12 +90,11 @@ function cookienotice_page_content_top(App $a, &$b)
|
||||
* page_end hook
|
||||
* ads our cookienotice box to the end of the html
|
||||
*
|
||||
* @param App $a
|
||||
* @param string $b the page html
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
function cookienotice_page_end(App $a, &$b)
|
||||
function cookienotice_page_end(string &$b)
|
||||
{
|
||||
$text = (string)DI::config()->get('cookienotice', 'text', DI::l10n()->t('This website uses cookies to recognize revisiting and logged in users. You accept the usage of these cookies by continue browsing this website.'));
|
||||
$oktext = (string)DI::config()->get('cookienotice', 'oktext', DI::l10n()->t('OK'));
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
# Translators:
|
||||
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2019
|
||||
# Ulf Rompe <transifex.com@rompe.org>, 2019
|
||||
# foss <foss@openmailbox.org>, 2020
|
||||
# foss <oss@disr.it>, 2020
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
@@ -15,8 +15,8 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2019-01-23 16:01+0000\n"
|
||||
"Last-Translator: foss <foss@openmailbox.org>, 2020\n"
|
||||
"Language-Team: German (https://www.transifex.com/Friendica/teams/12172/de/)\n"
|
||||
"Last-Translator: foss <oss@disr.it>, 2020\n"
|
||||
"Language-Team: German (https://app.transifex.com/Friendica/teams/12172/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -20,7 +20,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: cookienotice.php:42
|
||||
msgid ""
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
$n = intval($n);
|
||||
return intval($n > 1);
|
||||
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['This website uses cookies. If you continue browsing this website, you agree to the usage of cookies.'] = 'Ce site utilise des cookies. Si vous poursuivez sur ce site, vous acceptez l\'utilisation de ces cookies.';
|
||||
$a->strings['OK'] = 'Ok';
|
||||
|
||||
@@ -13,7 +13,6 @@ use Friendica\App;
|
||||
use Friendica\Core\Cache\Enum\Duration;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\DI;
|
||||
use Friendica\Util\Proxy as ProxyUtils;
|
||||
|
||||
@@ -32,7 +31,7 @@ function getWeather($loc, $units = 'metric', $lang = 'en', $appid = '', $cacheti
|
||||
$now = new DateTime();
|
||||
|
||||
if (!is_null($cached)) {
|
||||
$cdate = DI::pConfig()->get(local_user(), 'curweather', 'last');
|
||||
$cdate = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'curweather', 'last');
|
||||
$cached = unserialize($cached);
|
||||
|
||||
if ($cdate + $cachetime > $now->getTimestamp()) {
|
||||
@@ -44,7 +43,7 @@ function getWeather($loc, $units = 'metric', $lang = 'en', $appid = '', $cacheti
|
||||
$res = new SimpleXMLElement(DI::httpClient()->fetch($url));
|
||||
} catch (Exception $e) {
|
||||
if (empty($_SESSION['curweather_notice_shown'])) {
|
||||
notice(DI::l10n()->t('Error fetching weather data. Error was: ' . $e->getMessage()));
|
||||
DI::sysmsg()->addNotice(DI::l10n()->t('Error fetching weather data. Error was: ' . $e->getMessage()));
|
||||
$_SESSION['curweather_notice_shown'] = true;
|
||||
}
|
||||
|
||||
@@ -81,19 +80,19 @@ function getWeather($loc, $units = 'metric', $lang = 'en', $appid = '', $cacheti
|
||||
'icon' => (string) $res->weather['icon'],
|
||||
];
|
||||
|
||||
DI::pConfig()->set(local_user(), 'curweather', 'last', $now->getTimestamp());
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'curweather', 'last', $now->getTimestamp());
|
||||
DI::cache()->set('curweather'.md5($url), serialize($r), Duration::HOUR);
|
||||
|
||||
return $r;
|
||||
}
|
||||
|
||||
function curweather_network_mod_init(App $a, &$b)
|
||||
function curweather_network_mod_init(string &$body)
|
||||
{
|
||||
if (!intval(DI::pConfig()->get(local_user(), 'curweather', 'curweather_enable'))) {
|
||||
if (!intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_enable'))) {
|
||||
return;
|
||||
}
|
||||
|
||||
DI::page()['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . DI::baseUrl()->get() . '/addon/curweather/curweather.css' . '" media="all" />' . "\r\n";
|
||||
DI::page()['htmlhead'] .= '<link rel="stylesheet" type="text/css" href="' . DI::baseUrl() . '/addon/curweather/curweather.css' . '" media="all" />' . "\r\n";
|
||||
|
||||
// $rpt value is needed for location
|
||||
// $lang will be taken from the browser session to honour user settings
|
||||
@@ -104,15 +103,15 @@ function curweather_network_mod_init(App $a, &$b)
|
||||
// those parameters will be used to get: cloud status, temperature, preassure
|
||||
// and relative humidity for display, also the relevent area of the map is
|
||||
// linked from lat/log of the reply of OWMp
|
||||
$rpt = DI::pConfig()->get(local_user(), 'curweather', 'curweather_loc');
|
||||
$rpt = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_loc');
|
||||
|
||||
// Set the language to the browsers language or default and use metric units
|
||||
$lang = Session::get('language', DI::config()->get('system', 'language'));
|
||||
$units = DI::pConfig()->get( local_user(), 'curweather', 'curweather_units');
|
||||
$lang = DI::session()->get('language', DI::config()->get('system', 'language'));
|
||||
$units = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_units');
|
||||
$appid = DI::config()->get('curweather', 'appid');
|
||||
$cachetime = intval(DI::config()->get('curweather', 'cachetime'));
|
||||
|
||||
if ($units === "") {
|
||||
if ($units === '') {
|
||||
$units = 'metric';
|
||||
}
|
||||
|
||||
@@ -153,25 +152,25 @@ function curweather_network_mod_init(App $a, &$b)
|
||||
DI::page()['aside'] = $curweather . DI::page()['aside'];
|
||||
}
|
||||
|
||||
function curweather_addon_settings_post(App $a, $post)
|
||||
function curweather_addon_settings_post($post)
|
||||
{
|
||||
if (!local_user() || empty($_POST['curweather-settings-submit'])) {
|
||||
if (!DI::userSession()->getLocalUserId() || empty($_POST['curweather-settings-submit'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
DI::pConfig()->set(local_user(), 'curweather', 'curweather_loc' , trim($_POST['curweather_loc']));
|
||||
DI::pConfig()->set(local_user(), 'curweather', 'curweather_enable', intval($_POST['curweather_enable']));
|
||||
DI::pConfig()->set(local_user(), 'curweather', 'curweather_units' , trim($_POST['curweather_units']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_loc' , trim($_POST['curweather_loc']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_enable', intval($_POST['curweather_enable']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_units' , trim($_POST['curweather_units']));
|
||||
}
|
||||
|
||||
function curweather_addon_settings(App $a, array &$data)
|
||||
function curweather_addon_settings(array &$data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$curweather_loc = DI::pConfig()->get(local_user(), 'curweather', 'curweather_loc');
|
||||
$curweather_units = DI::pConfig()->get(local_user(), 'curweather', 'curweather_units');
|
||||
$curweather_loc = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_loc');
|
||||
$curweather_units = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_units');
|
||||
$appid = DI::config()->get('curweather', 'appid');
|
||||
|
||||
if ($appid == '') {
|
||||
@@ -180,7 +179,7 @@ function curweather_addon_settings(App $a, array &$data)
|
||||
$noappidtext = '';
|
||||
}
|
||||
|
||||
$enabled = intval(DI::pConfig()->get(local_user(), 'curweather', 'curweather_enable'));
|
||||
$enabled = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'curweather', 'curweather_enable'));
|
||||
|
||||
$t = Renderer::getMarkupTemplate('settings.tpl', 'addon/curweather/');
|
||||
$html = Renderer::replaceMacros($t, [
|
||||
@@ -200,9 +199,9 @@ function curweather_addon_settings(App $a, array &$data)
|
||||
|
||||
// Config stuff for the admin panel to let the admin of the node set a APPID
|
||||
// for accessing the API of openweathermap
|
||||
function curweather_addon_admin_post(App $a)
|
||||
function curweather_addon_admin_post()
|
||||
{
|
||||
if (!$a->isSiteAdmin()) {
|
||||
if (!DI::userSession()->isSiteAdmin()) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -212,16 +211,16 @@ function curweather_addon_admin_post(App $a)
|
||||
}
|
||||
}
|
||||
|
||||
function curweather_addon_admin(App $a, &$o)
|
||||
function curweather_addon_admin(string &$o)
|
||||
{
|
||||
if (!$a->isSiteAdmin()) {
|
||||
if (!DI::userSession()->isSiteAdmin()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$appid = DI::config()->get('curweather', 'appid');
|
||||
$cachetime = DI::config()->get('curweather', 'cachetime');
|
||||
|
||||
$t = Renderer::getMarkupTemplate("admin.tpl", "addon/curweather/" );
|
||||
$t = Renderer::getMarkupTemplate('admin.tpl', 'addon/curweather/' );
|
||||
|
||||
$o = Renderer::replaceMacros($t, [
|
||||
'$submit' => DI::l10n()->t('Save Settings'),
|
||||
|
||||
@@ -11,124 +11,116 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2016-09-25 17:17+0200\n"
|
||||
"PO-Revision-Date: 2018-07-05 17:03+0000\n"
|
||||
"Last-Translator: Aditoo\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/Friendica/friendica/language/cs/)\n"
|
||||
"POT-Creation-Date: 2021-11-21 19:14-0500\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:34+0000\n"
|
||||
"Last-Translator: Aditoo, 2018\n"
|
||||
"Language-Team: Czech (http://app.transifex.com/Friendica/friendica/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
|
||||
#: curweather.php:31
|
||||
msgid "Error fetching weather data.\\nError was: "
|
||||
msgstr "Chyba při získávání dat o počasí.\\nChyba:"
|
||||
#: curweather.php:47
|
||||
msgid "Error fetching weather data. Error was: "
|
||||
msgstr ""
|
||||
|
||||
#: curweather.php:111 curweather.php:172
|
||||
#: curweather.php:130
|
||||
msgid "Current Weather"
|
||||
msgstr "Aktuální počasí"
|
||||
|
||||
#: curweather.php:118
|
||||
#: curweather.php:137
|
||||
msgid "Relative Humidity"
|
||||
msgstr "Relativní vlhkost vzduchu"
|
||||
|
||||
#: curweather.php:119
|
||||
#: curweather.php:138
|
||||
msgid "Pressure"
|
||||
msgstr "Tlak"
|
||||
|
||||
#: curweather.php:120
|
||||
#: curweather.php:139
|
||||
msgid "Wind"
|
||||
msgstr "Vítr"
|
||||
|
||||
#: curweather.php:121
|
||||
#: curweather.php:140
|
||||
msgid "Last Updated"
|
||||
msgstr "Naposledy aktualizováno"
|
||||
|
||||
#: curweather.php:122
|
||||
#: curweather.php:141
|
||||
msgid "Data by"
|
||||
msgstr "Data podle"
|
||||
|
||||
#: curweather.php:123
|
||||
#: curweather.php:142
|
||||
msgid "Show on map"
|
||||
msgstr "Ukázat na mapě"
|
||||
|
||||
#: curweather.php:128
|
||||
#: curweather.php:147
|
||||
msgid "There was a problem accessing the weather data. But have a look"
|
||||
msgstr "Při získávání dat o počasí nastala chyba. Podívejte se ale"
|
||||
|
||||
#: curweather.php:130
|
||||
#: curweather.php:149
|
||||
msgid "at OpenWeatherMap"
|
||||
msgstr "na OpenWeatherMap"
|
||||
|
||||
#: curweather.php:146
|
||||
msgid "Current Weather settings updated."
|
||||
msgstr "Nastavení pro Aktuální počasí aktualizováno."
|
||||
|
||||
#: curweather.php:161
|
||||
#: curweather.php:178
|
||||
msgid "No APPID found, please contact your admin to obtain one."
|
||||
msgstr "Žádné APPID nebylo nalezeno, prosím kontaktujte svého administrátora pro získání APPID."
|
||||
|
||||
#: curweather.php:171 curweather.php:200
|
||||
msgid "Save Settings"
|
||||
msgstr "Uložit nastavení"
|
||||
|
||||
#: curweather.php:172
|
||||
msgid "Settings"
|
||||
msgstr "Nastavení"
|
||||
|
||||
#: curweather.php:174
|
||||
#: curweather.php:188
|
||||
msgid "Enter either the name of your location or the zip code."
|
||||
msgstr "Zadejte buď název místa, kde se nacházíte, nebo PSČ."
|
||||
|
||||
#: curweather.php:175
|
||||
#: curweather.php:189
|
||||
msgid "Your Location"
|
||||
msgstr "Vaše poloha"
|
||||
|
||||
#: curweather.php:175
|
||||
#: curweather.php:189
|
||||
msgid ""
|
||||
"Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or "
|
||||
"<em>14476,DE</em>."
|
||||
msgstr "Identifikátor vaší polohy (název nebo PSČ), např. <em>Praha,CZ</em> nebo <em>11000,CZ</em>."
|
||||
|
||||
#: curweather.php:176
|
||||
#: curweather.php:190
|
||||
msgid "Units"
|
||||
msgstr "Jednotky"
|
||||
|
||||
#: curweather.php:176
|
||||
#: curweather.php:190
|
||||
msgid "select if the temperature should be displayed in °C or °F"
|
||||
msgstr "vyberte, jestli by se teplota měla zobrazovat v °C či °F"
|
||||
|
||||
#: curweather.php:177
|
||||
#: curweather.php:191
|
||||
msgid "Show weather data"
|
||||
msgstr "Ukázat data o počasí"
|
||||
|
||||
#: curweather.php:190
|
||||
msgid "Curweather settings saved."
|
||||
msgstr "Nastavení Curwather uložena."
|
||||
#: curweather.php:196
|
||||
msgid "Current Weather Settings"
|
||||
msgstr ""
|
||||
|
||||
#: curweather.php:201
|
||||
#: curweather.php:227
|
||||
msgid "Save Settings"
|
||||
msgstr "Uložit nastavení"
|
||||
|
||||
#: curweather.php:230
|
||||
msgid "Caching Interval"
|
||||
msgstr "Ukládám interval do mezipaměti"
|
||||
msgstr "Interval mezipaměti"
|
||||
|
||||
#: curweather.php:201
|
||||
#: curweather.php:232
|
||||
msgid ""
|
||||
"For how long should the weather data be cached? Choose according your "
|
||||
"OpenWeatherMap account type."
|
||||
msgstr "Na jak dlouho by vaše data o počasí měla být uložena v mezipaměti? Vyberte podle typu vašeho účtu na OpenWeatherMap."
|
||||
|
||||
#: curweather.php:201
|
||||
#: curweather.php:233
|
||||
msgid "no cache"
|
||||
msgstr "žádná mezipaměť"
|
||||
|
||||
#: curweather.php:201
|
||||
#: curweather.php:234 curweather.php:235 curweather.php:236 curweather.php:237
|
||||
msgid "minutes"
|
||||
msgstr "minut"
|
||||
|
||||
#: curweather.php:202
|
||||
#: curweather.php:240
|
||||
msgid "Your APPID"
|
||||
msgstr "Vaše APPID"
|
||||
|
||||
#: curweather.php:202
|
||||
#: curweather.php:240
|
||||
msgid "Your API key provided by OpenWeatherMap"
|
||||
msgstr "Váš API klíč poskytnutý OpenWetherMap"
|
||||
|
||||
@@ -5,7 +5,6 @@ function string_plural_select_cs($n){
|
||||
$n = intval($n);
|
||||
if (($n == 1 && $n % 1 == 0)) { return 0; } else if (($n >= 2 && $n <= 4 && $n % 1 == 0)) { return 1; } else if (($n % 1 != 0 )) { return 2; } else { return 3; }
|
||||
}}
|
||||
$a->strings['Error fetching weather data.\nError was: '] = 'Chyba při získávání dat o počasí.\nChyba:';
|
||||
$a->strings['Current Weather'] = 'Aktuální počasí';
|
||||
$a->strings['Relative Humidity'] = 'Relativní vlhkost vzduchu';
|
||||
$a->strings['Pressure'] = 'Tlak';
|
||||
@@ -15,18 +14,15 @@ $a->strings['Data by'] = 'Data podle';
|
||||
$a->strings['Show on map'] = 'Ukázat na mapě';
|
||||
$a->strings['There was a problem accessing the weather data. But have a look'] = 'Při získávání dat o počasí nastala chyba. Podívejte se ale';
|
||||
$a->strings['at OpenWeatherMap'] = 'na OpenWeatherMap';
|
||||
$a->strings['Current Weather settings updated.'] = 'Nastavení pro Aktuální počasí aktualizováno.';
|
||||
$a->strings['No APPID found, please contact your admin to obtain one.'] = 'Žádné APPID nebylo nalezeno, prosím kontaktujte svého administrátora pro získání APPID.';
|
||||
$a->strings['Save Settings'] = 'Uložit nastavení';
|
||||
$a->strings['Settings'] = 'Nastavení';
|
||||
$a->strings['Enter either the name of your location or the zip code.'] = 'Zadejte buď název místa, kde se nacházíte, nebo PSČ.';
|
||||
$a->strings['Your Location'] = 'Vaše poloha';
|
||||
$a->strings['Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.'] = 'Identifikátor vaší polohy (název nebo PSČ), např. <em>Praha,CZ</em> nebo <em>11000,CZ</em>.';
|
||||
$a->strings['Units'] = 'Jednotky';
|
||||
$a->strings['select if the temperature should be displayed in °C or °F'] = 'vyberte, jestli by se teplota měla zobrazovat v °C či °F';
|
||||
$a->strings['Show weather data'] = 'Ukázat data o počasí';
|
||||
$a->strings['Curweather settings saved.'] = 'Nastavení Curwather uložena.';
|
||||
$a->strings['Caching Interval'] = 'Ukládám interval do mezipaměti';
|
||||
$a->strings['Save Settings'] = 'Uložit nastavení';
|
||||
$a->strings['Caching Interval'] = 'Interval mezipaměti';
|
||||
$a->strings['For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'] = 'Na jak dlouho by vaše data o počasí měla být uložena v mezipaměti? Vyberte podle typu vašeho účtu na OpenWeatherMap.';
|
||||
$a->strings['no cache'] = 'žádná mezipaměť';
|
||||
$a->strings['minutes'] = 'minut';
|
||||
|
||||
@@ -15,9 +15,9 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:14-0500\n"
|
||||
"PO-Revision-Date: 2022-01-22 17:28+0000\n"
|
||||
"Last-Translator: Tobias Diekershoff <tobias.diekershoff@gmx.net>\n"
|
||||
"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:34+0000\n"
|
||||
"Last-Translator: Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2016,2021-2022\n"
|
||||
"Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#
|
||||
# Translators:
|
||||
# bob lebonche <lebonche@tutanota.com>, 2021
|
||||
# Hypolite Petovan <hypolite@mrpetovan.com>, 2022
|
||||
# Hypolite Petovan <hypolite@mrpetovan.com>, 2016
|
||||
# ea1cd8241cb389ffb6f92bc6891eff5d_dc12308 <70dced5587d47e18d88f9298024d96f8_93383>, 2015
|
||||
# StefOfficiel <pichard.stephane@free.fr>, 2015
|
||||
@@ -12,21 +13,21 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2021-03-22 08:24+0000\n"
|
||||
"Last-Translator: bob lebonche <lebonche@tutanota.com>\n"
|
||||
"POT-Creation-Date: 2021-11-21 19:14-0500\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:34+0000\n"
|
||||
"Last-Translator: Hypolite Petovan <hypolite@mrpetovan.com>, 2022\n"
|
||||
"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: curweather.php:47
|
||||
msgid "Error fetching weather data. Error was: "
|
||||
msgstr "Erreur de récupération des données météo. L'erreur était :"
|
||||
|
||||
#: curweather.php:130 curweather.php:192
|
||||
#: curweather.php:130
|
||||
msgid "Current Weather"
|
||||
msgstr "Météo actuelle"
|
||||
|
||||
@@ -62,66 +63,66 @@ msgstr "Une erreur est survenue lors de l'accès aux données météo. Vous pouv
|
||||
msgid "at OpenWeatherMap"
|
||||
msgstr "à OpenWeatherMap"
|
||||
|
||||
#: curweather.php:179
|
||||
#: curweather.php:178
|
||||
msgid "No APPID found, please contact your admin to obtain one."
|
||||
msgstr "Pas d'APPID trouvé, merci de contacter votre administrateur pour en obtenir un."
|
||||
|
||||
#: curweather.php:191 curweather.php:229
|
||||
msgid "Save Settings"
|
||||
msgstr "Sauvegarder les paramètres"
|
||||
|
||||
#: curweather.php:192
|
||||
msgid "Settings"
|
||||
msgstr "Paramètres"
|
||||
|
||||
#: curweather.php:194
|
||||
#: curweather.php:188
|
||||
msgid "Enter either the name of your location or the zip code."
|
||||
msgstr "Entrez le nom de votre emplacement ou votre code postal."
|
||||
|
||||
#: curweather.php:195
|
||||
#: curweather.php:189
|
||||
msgid "Your Location"
|
||||
msgstr "Votre position"
|
||||
|
||||
#: curweather.php:195
|
||||
#: curweather.php:189
|
||||
msgid ""
|
||||
"Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or "
|
||||
"<em>14476,DE</em>."
|
||||
msgstr "Identifiant de votre emplacement (nom ou code postal), par exemple <em>Paris 08, Fr</em> ou <em>75008, FR</em>."
|
||||
|
||||
#: curweather.php:196
|
||||
#: curweather.php:190
|
||||
msgid "Units"
|
||||
msgstr "Unités"
|
||||
|
||||
#: curweather.php:196
|
||||
#: curweather.php:190
|
||||
msgid "select if the temperature should be displayed in °C or °F"
|
||||
msgstr "Sélectionner si la température devrait être affichée en °C ou en °F"
|
||||
|
||||
#: curweather.php:197
|
||||
#: curweather.php:191
|
||||
msgid "Show weather data"
|
||||
msgstr "Montrer les données météos"
|
||||
|
||||
#: curweather.php:232
|
||||
#: curweather.php:196
|
||||
msgid "Current Weather Settings"
|
||||
msgstr "Paramètres de Météo"
|
||||
|
||||
#: curweather.php:227
|
||||
msgid "Save Settings"
|
||||
msgstr "Sauvegarder les paramètres"
|
||||
|
||||
#: curweather.php:230
|
||||
msgid "Caching Interval"
|
||||
msgstr "Intervalle de mise en cache."
|
||||
|
||||
#: curweather.php:234
|
||||
#: curweather.php:232
|
||||
msgid ""
|
||||
"For how long should the weather data be cached? Choose according your "
|
||||
"OpenWeatherMap account type."
|
||||
msgstr "Pendant combien de temps les données météo doivent-elles être mises en cache? Choisissez en fonction du type de compte OpenWeatherMap."
|
||||
|
||||
#: curweather.php:235
|
||||
#: curweather.php:233
|
||||
msgid "no cache"
|
||||
msgstr "pas de cache"
|
||||
|
||||
#: curweather.php:236 curweather.php:237 curweather.php:238 curweather.php:239
|
||||
#: curweather.php:234 curweather.php:235 curweather.php:236 curweather.php:237
|
||||
msgid "minutes"
|
||||
msgstr "minutes"
|
||||
|
||||
#: curweather.php:242
|
||||
#: curweather.php:240
|
||||
msgid "Your APPID"
|
||||
msgstr "Votre APPID"
|
||||
|
||||
#: curweather.php:242
|
||||
#: curweather.php:240
|
||||
msgid "Your API key provided by OpenWeatherMap"
|
||||
msgstr "Votre clé pour l'API de OpenWeatherMap"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
$n = intval($n);
|
||||
return intval($n > 1);
|
||||
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['Error fetching weather data. Error was: '] = 'Erreur de récupération des données météo. L\'erreur était :';
|
||||
$a->strings['Current Weather'] = 'Météo actuelle';
|
||||
@@ -16,14 +16,14 @@ $a->strings['Show on map'] = 'Montrer sur la carte';
|
||||
$a->strings['There was a problem accessing the weather data. But have a look'] = 'Une erreur est survenue lors de l\'accès aux données météo. Vous pouvez quand même jeter un oeil';
|
||||
$a->strings['at OpenWeatherMap'] = 'à OpenWeatherMap';
|
||||
$a->strings['No APPID found, please contact your admin to obtain one.'] = 'Pas d\'APPID trouvé, merci de contacter votre administrateur pour en obtenir un.';
|
||||
$a->strings['Save Settings'] = 'Sauvegarder les paramètres';
|
||||
$a->strings['Settings'] = 'Paramètres';
|
||||
$a->strings['Enter either the name of your location or the zip code.'] = 'Entrez le nom de votre emplacement ou votre code postal.';
|
||||
$a->strings['Your Location'] = 'Votre position';
|
||||
$a->strings['Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.'] = 'Identifiant de votre emplacement (nom ou code postal), par exemple <em>Paris 08, Fr</em> ou <em>75008, FR</em>.';
|
||||
$a->strings['Units'] = 'Unités';
|
||||
$a->strings['select if the temperature should be displayed in °C or °F'] = 'Sélectionner si la température devrait être affichée en °C ou en °F';
|
||||
$a->strings['Show weather data'] = 'Montrer les données météos';
|
||||
$a->strings['Current Weather Settings'] = 'Paramètres de Météo';
|
||||
$a->strings['Save Settings'] = 'Sauvegarder les paramètres';
|
||||
$a->strings['Caching Interval'] = 'Intervalle de mise en cache.';
|
||||
$a->strings['For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'] = 'Pendant combien de temps les données météo doivent-elles être mises en cache? Choisissez en fonction du type de compte OpenWeatherMap.';
|
||||
$a->strings['no cache'] = 'pas de cache';
|
||||
|
||||
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:14-0500\n"
|
||||
"PO-Revision-Date: 2021-12-23 17:18+0000\n"
|
||||
"Last-Translator: Balázs Úr\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:34+0000\n"
|
||||
"Last-Translator: Balázs Úr, 2020-2021\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
@@ -11,8 +11,8 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:14-0500\n"
|
||||
"PO-Revision-Date: 2022-03-08 14:06+0000\n"
|
||||
"Last-Translator: Piotr Strębski <strebski@gmail.com>\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:34+0000\n"
|
||||
"Last-Translator: Piotr Strębski <strebski@gmail.com>, 2022\n"
|
||||
"Language-Team: Polish (http://www.transifex.com/Friendica/friendica/language/pl/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
124
curweather/lang/ru/messages.po
Normal file
@@ -0,0 +1,124 @@
|
||||
# ADDON curweather
|
||||
# Copyright (C)
|
||||
# This file is distributed under the same license as the Friendica curweather addon package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# Alexander An <ravnina@gmail.com>, 2022
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:14-0500\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:34+0000\n"
|
||||
"Last-Translator: Alexander An <ravnina@gmail.com>, 2022\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/Friendica/friendica/language/ru/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ru\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
|
||||
|
||||
#: curweather.php:47
|
||||
msgid "Error fetching weather data. Error was: "
|
||||
msgstr "Ошибка получения данных о погоде. Ошибка:"
|
||||
|
||||
#: curweather.php:130
|
||||
msgid "Current Weather"
|
||||
msgstr "Погода сейчас"
|
||||
|
||||
#: curweather.php:137
|
||||
msgid "Relative Humidity"
|
||||
msgstr "Относительная влажность"
|
||||
|
||||
#: curweather.php:138
|
||||
msgid "Pressure"
|
||||
msgstr "Давление"
|
||||
|
||||
#: curweather.php:139
|
||||
msgid "Wind"
|
||||
msgstr "Ветер"
|
||||
|
||||
#: curweather.php:140
|
||||
msgid "Last Updated"
|
||||
msgstr "Обновлено"
|
||||
|
||||
#: curweather.php:141
|
||||
msgid "Data by"
|
||||
msgstr "Данные из"
|
||||
|
||||
#: curweather.php:142
|
||||
msgid "Show on map"
|
||||
msgstr "Показать на карте"
|
||||
|
||||
#: curweather.php:147
|
||||
msgid "There was a problem accessing the weather data. But have a look"
|
||||
msgstr "Не получилось получить данные о погоде. Но вы можете посмотреть"
|
||||
|
||||
#: curweather.php:149
|
||||
msgid "at OpenWeatherMap"
|
||||
msgstr "OpenWeatherMap"
|
||||
|
||||
#: curweather.php:178
|
||||
msgid "No APPID found, please contact your admin to obtain one."
|
||||
msgstr "Не найден APPID, свяжитесь с вашим администратором, чтобы получить его."
|
||||
|
||||
#: curweather.php:188
|
||||
msgid "Enter either the name of your location or the zip code."
|
||||
msgstr "Введите ваше местоположение или индекс."
|
||||
|
||||
#: curweather.php:189
|
||||
msgid "Your Location"
|
||||
msgstr "Ваше местонахождение"
|
||||
|
||||
#: curweather.php:189
|
||||
msgid ""
|
||||
"Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or "
|
||||
"<em>14476,DE</em>."
|
||||
msgstr "Ваше местоположение (имя или индекс), например <em>Berlin,DE</em> или <em>14476,DE</em>."
|
||||
|
||||
#: curweather.php:190
|
||||
msgid "Units"
|
||||
msgstr "Единицы"
|
||||
|
||||
#: curweather.php:190
|
||||
msgid "select if the temperature should be displayed in °C or °F"
|
||||
msgstr "выберите как должна отображаться температура - в °C или °F"
|
||||
|
||||
#: curweather.php:191
|
||||
msgid "Show weather data"
|
||||
msgstr "Показать данные о погоде"
|
||||
|
||||
#: curweather.php:196
|
||||
msgid "Current Weather Settings"
|
||||
msgstr "Текущие настройки"
|
||||
|
||||
#: curweather.php:227
|
||||
msgid "Save Settings"
|
||||
msgstr "Сохранить настройки"
|
||||
|
||||
#: curweather.php:230
|
||||
msgid "Caching Interval"
|
||||
msgstr "Интервал кэширования"
|
||||
|
||||
#: curweather.php:232
|
||||
msgid ""
|
||||
"For how long should the weather data be cached? Choose according your "
|
||||
"OpenWeatherMap account type."
|
||||
msgstr "Как долго кэшировать данные о погоде? Выберите в соответствии с типом вашей учётной записи OpenWeatherMap."
|
||||
|
||||
#: curweather.php:233
|
||||
msgid "no cache"
|
||||
msgstr "не кэшировать"
|
||||
|
||||
#: curweather.php:234 curweather.php:235 curweather.php:236 curweather.php:237
|
||||
msgid "minutes"
|
||||
msgstr "мин."
|
||||
|
||||
#: curweather.php:240
|
||||
msgid "Your APPID"
|
||||
msgstr "Ваш APPID"
|
||||
|
||||
#: curweather.php:240
|
||||
msgid "Your API key provided by OpenWeatherMap"
|
||||
msgstr "Ваш ключ API, полученный у OpenWeatherMap"
|
||||
@@ -1,3 +1,32 @@
|
||||
<?php
|
||||
|
||||
$a->strings["Submit"] = "Подтвердить";
|
||||
<?php
|
||||
|
||||
if(! function_exists("string_plural_select_ru")) {
|
||||
function string_plural_select_ru($n){
|
||||
$n = intval($n);
|
||||
if ($n%10==1 && $n%100!=11) { return 0; } else if ($n%10>=2 && $n%10<=4 && ($n%100<12 || $n%100>14)) { return 1; } else if ($n%10==0 || ($n%10>=5 && $n%10<=9) || ($n%100>=11 && $n%100<=14)) { return 2; } else { return 3; }
|
||||
}}
|
||||
$a->strings['Error fetching weather data. Error was: '] = 'Ошибка получения данных о погоде. Ошибка:';
|
||||
$a->strings['Current Weather'] = 'Погода сейчас';
|
||||
$a->strings['Relative Humidity'] = 'Относительная влажность';
|
||||
$a->strings['Pressure'] = 'Давление';
|
||||
$a->strings['Wind'] = 'Ветер';
|
||||
$a->strings['Last Updated'] = 'Обновлено';
|
||||
$a->strings['Data by'] = 'Данные из';
|
||||
$a->strings['Show on map'] = 'Показать на карте';
|
||||
$a->strings['There was a problem accessing the weather data. But have a look'] = 'Не получилось получить данные о погоде. Но вы можете посмотреть';
|
||||
$a->strings['at OpenWeatherMap'] = 'OpenWeatherMap';
|
||||
$a->strings['No APPID found, please contact your admin to obtain one.'] = 'Не найден APPID, свяжитесь с вашим администратором, чтобы получить его.';
|
||||
$a->strings['Enter either the name of your location or the zip code.'] = 'Введите ваше местоположение или индекс.';
|
||||
$a->strings['Your Location'] = 'Ваше местонахождение';
|
||||
$a->strings['Identifier of your location (name or zip code), e.g. <em>Berlin,DE</em> or <em>14476,DE</em>.'] = 'Ваше местоположение (имя или индекс), например <em>Berlin,DE</em> или <em>14476,DE</em>.';
|
||||
$a->strings['Units'] = 'Единицы';
|
||||
$a->strings['select if the temperature should be displayed in °C or °F'] = 'выберите как должна отображаться температура - в °C или °F';
|
||||
$a->strings['Show weather data'] = 'Показать данные о погоде';
|
||||
$a->strings['Current Weather Settings'] = 'Текущие настройки';
|
||||
$a->strings['Save Settings'] = 'Сохранить настройки';
|
||||
$a->strings['Caching Interval'] = 'Интервал кэширования';
|
||||
$a->strings['For how long should the weather data be cached? Choose according your OpenWeatherMap account type.'] = 'Как долго кэшировать данные о погоде? Выберите в соответствии с типом вашей учётной записи OpenWeatherMap.';
|
||||
$a->strings['no cache'] = 'не кэшировать';
|
||||
$a->strings['minutes'] = 'мин.';
|
||||
$a->strings['Your APPID'] = 'Ваш APPID';
|
||||
$a->strings['Your API key provided by OpenWeatherMap'] = 'Ваш ключ API, полученный у OpenWeatherMap';
|
||||
|
||||
@@ -110,4 +110,3 @@ class Diasphp {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
@@ -14,7 +14,6 @@ use Friendica\Content\Text\BBCode;
|
||||
use Friendica\Core\Hook;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\Renderer;
|
||||
use Friendica\Core\Session;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\DI;
|
||||
@@ -30,43 +29,43 @@ function diaspora_install()
|
||||
Hook::register('connector_settings_post', 'addon/diaspora/diaspora.php', 'diaspora_settings_post');
|
||||
}
|
||||
|
||||
function diaspora_jot_nets(App $a, array &$jotnets_fields)
|
||||
function diaspora_jot_nets(array &$jotnets_fields)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (DI::pConfig()->get(local_user(), 'diaspora', 'post')) {
|
||||
if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'diaspora', 'post')) {
|
||||
$jotnets_fields[] = [
|
||||
'type' => 'checkbox',
|
||||
'field' => [
|
||||
'diaspora_enable',
|
||||
DI::l10n()->t('Post to Diaspora'),
|
||||
DI::pConfig()->get(local_user(), 'diaspora', 'post_by_default')
|
||||
DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'diaspora', 'post_by_default')
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
function diaspora_settings(App $a, array &$data)
|
||||
function diaspora_settings(array &$data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$enabled = DI::pConfig()->get(local_user(), 'diaspora', 'post', false);
|
||||
$def_enabled = DI::pConfig()->get(local_user(), 'diaspora', 'post_by_default');
|
||||
$enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'diaspora', 'post', false);
|
||||
$def_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'diaspora', 'post_by_default');
|
||||
|
||||
$handle = DI::pConfig()->get(local_user(), 'diaspora', 'handle');
|
||||
$password = DI::pConfig()->get(local_user(), 'diaspora', 'password');
|
||||
$aspect = DI::pConfig()->get(local_user(), 'diaspora', 'aspect');
|
||||
$handle = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'diaspora', 'handle');
|
||||
$password = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'diaspora', 'password');
|
||||
$aspect = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'diaspora', 'aspect');
|
||||
|
||||
$info = '';
|
||||
$error = '';
|
||||
if (Session::get('my_address')) {
|
||||
$info = DI::l10n()->t('Please remember: You can always be reached from Diaspora with your Friendica handle <strong>%s</strong>. ', Session::get('my_address'));
|
||||
if (DI::session()->get('my_address')) {
|
||||
$info = DI::l10n()->t('Please remember: You can always be reached from Diaspora with your Friendica handle <strong>%s</strong>. ', DI::session()->get('my_address'));
|
||||
$info .= DI::l10n()->t('This connector is only meant if you still want to use your old Diaspora account for some time. ');
|
||||
$info .= DI::l10n()->t('However, it is preferred that you tell your Diaspora contacts the new handle <strong>%s</strong> instead.', Session::get('my_address'));
|
||||
$info .= DI::l10n()->t('However, it is preferred that you tell your Diaspora contacts the new handle <strong>%s</strong> instead.', DI::session()->get('my_address'));
|
||||
}
|
||||
|
||||
$aspect_select = '';
|
||||
@@ -118,26 +117,26 @@ function diaspora_settings(App $a, array &$data)
|
||||
}
|
||||
|
||||
|
||||
function diaspora_settings_post(App $a, &$b)
|
||||
function diaspora_settings_post(array &$b)
|
||||
{
|
||||
if (!empty($_POST['diaspora-submit'])) {
|
||||
DI::pConfig()->set(local_user(),'diaspora', 'post' , intval($_POST['enabled']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(),'diaspora', 'post' , intval($_POST['enabled']));
|
||||
if (intval($_POST['enabled'])) {
|
||||
if (isset($_POST['handle'])) {
|
||||
DI::pConfig()->set(local_user(),'diaspora', 'handle' , trim($_POST['handle']));
|
||||
DI::pConfig()->set(local_user(),'diaspora', 'password' , trim($_POST['password']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(),'diaspora', 'handle' , trim($_POST['handle']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(),'diaspora', 'password' , trim($_POST['password']));
|
||||
}
|
||||
if (!empty($_POST['aspect'])) {
|
||||
DI::pConfig()->set(local_user(),'diaspora', 'aspect' , trim($_POST['aspect']));
|
||||
DI::pConfig()->set(local_user(),'diaspora', 'post_by_default', intval($_POST['post_by_default']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(),'diaspora', 'aspect' , trim($_POST['aspect']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(),'diaspora', 'post_by_default', intval($_POST['post_by_default']));
|
||||
}
|
||||
} else {
|
||||
DI::pConfig()->delete(local_user(), 'diaspora', 'password');
|
||||
DI::pConfig()->delete(DI::userSession()->getLocalUserId(), 'diaspora', 'password');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function diaspora_hook_fork(&$a, &$b)
|
||||
function diaspora_hook_fork(array &$b)
|
||||
{
|
||||
if ($b['name'] != 'notifier_normal') {
|
||||
return;
|
||||
@@ -146,19 +145,19 @@ function diaspora_hook_fork(&$a, &$b)
|
||||
$post = $b['data'];
|
||||
|
||||
if ($post['deleted'] || $post['private'] || ($post['created'] !== $post['edited']) ||
|
||||
!strstr($post['postopts'], 'diaspora') || ($post['parent'] != $post['id'])) {
|
||||
!strstr($post['postopts'] ?? '', 'diaspora') || ($post['parent'] != $post['id'])) {
|
||||
$b['execute'] = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
function diaspora_post_local(App $a, array &$b)
|
||||
function diaspora_post_local(array &$b)
|
||||
{
|
||||
if ($b['edit']) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!local_user() || (local_user() != $b['uid'])) {
|
||||
if (!DI::userSession()->getLocalUserId() || (DI::userSession()->getLocalUserId() != $b['uid'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -166,11 +165,11 @@ function diaspora_post_local(App $a, array &$b)
|
||||
return;
|
||||
}
|
||||
|
||||
$diaspora_post = intval(DI::pConfig()->get(local_user(),'diaspora','post'));
|
||||
$diaspora_post = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(),'diaspora','post'));
|
||||
|
||||
$diaspora_enable = (($diaspora_post && !empty($_REQUEST['diaspora_enable'])) ? intval($_REQUEST['diaspora_enable']) : 0);
|
||||
|
||||
if ($b['api_source'] && intval(DI::pConfig()->get(local_user(),'diaspora','post_by_default'))) {
|
||||
if ($b['api_source'] && intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(),'diaspora','post_by_default'))) {
|
||||
$diaspora_enable = 1;
|
||||
}
|
||||
|
||||
@@ -185,9 +184,9 @@ function diaspora_post_local(App $a, array &$b)
|
||||
$b['postopts'] .= 'diaspora';
|
||||
}
|
||||
|
||||
function diaspora_send(App $a, array &$b)
|
||||
function diaspora_send(array &$b)
|
||||
{
|
||||
$hostname = DI::baseUrl()->getHostname();
|
||||
$hostname = DI::baseUrl()->getHost();
|
||||
|
||||
Logger::notice('diaspora_send: invoked');
|
||||
|
||||
@@ -203,7 +202,7 @@ function diaspora_send(App $a, array &$b)
|
||||
return;
|
||||
}
|
||||
|
||||
$b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], $b['body']);
|
||||
$b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], DI::contentItem()->addSharedPost($b));
|
||||
|
||||
// Dont't post if the post doesn't belong to us.
|
||||
// This is a check for forum postings
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# foss <foss@openmailbox.org>, 2020
|
||||
# foss <oss@disr.it>, 2020
|
||||
# Till Mohr <tmtrfx@till-mohr.de>, 2021
|
||||
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2014
|
||||
# Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2018,2020
|
||||
@@ -14,9 +14,9 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:17-0500\n"
|
||||
"PO-Revision-Date: 2021-12-22 15:27+0000\n"
|
||||
"Last-Translator: Transifex Bot <>\n"
|
||||
"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:39+0000\n"
|
||||
"Last-Translator: Till Mohr <tmtrfx@till-mohr.de>, 2021\n"
|
||||
"Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
@@ -12,98 +12,94 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-02-01 18:15+0100\n"
|
||||
"PO-Revision-Date: 2021-03-22 09:09+0000\n"
|
||||
"Last-Translator: bob lebonche <lebonche@tutanota.com>\n"
|
||||
"POT-Creation-Date: 2021-11-21 19:17-0500\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:39+0000\n"
|
||||
"Last-Translator: bob lebonche <lebonche@tutanota.com>, 2021\n"
|
||||
"Language-Team: French (http://www.transifex.com/Friendica/friendica/language/fr/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: fr\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
||||
|
||||
#: diaspora.php:43
|
||||
#: diaspora.php:44
|
||||
msgid "Post to Diaspora"
|
||||
msgstr "Publier sur Diaspora"
|
||||
|
||||
#: diaspora.php:68
|
||||
#: diaspora.php:67
|
||||
#, php-format
|
||||
msgid ""
|
||||
"Please remember: You can always be reached from Diaspora with your Friendica"
|
||||
" handle <strong>%s</strong>. "
|
||||
msgstr "Attention : vous pouvez toujours être joint par Diaspora avec votre identifiant Friendica <strong>%s</strong>. "
|
||||
|
||||
#: diaspora.php:69
|
||||
#: diaspora.php:68
|
||||
msgid ""
|
||||
"This connector is only meant if you still want to use your old Diaspora "
|
||||
"account for some time. "
|
||||
msgstr "Ce connecteur ne doit être utilisé que si vous souhaitez encore utiliser votre ancien compte Diaspora."
|
||||
|
||||
#: diaspora.php:70
|
||||
#: diaspora.php:69
|
||||
#, php-format
|
||||
msgid ""
|
||||
"However, it is preferred that you tell your Diaspora contacts the new handle"
|
||||
" <strong>%s</strong> instead."
|
||||
msgstr "Quoi qu'il en soit, il est préférable de communiquer son nouvel identifiant à ses contacts Diaspora <strong>%s</strong>."
|
||||
|
||||
#: diaspora.php:80
|
||||
#: diaspora.php:79
|
||||
msgid "All aspects"
|
||||
msgstr "Tous les aspects"
|
||||
|
||||
#: diaspora.php:81
|
||||
#: diaspora.php:80
|
||||
msgid "Public"
|
||||
msgstr "Public"
|
||||
|
||||
#: diaspora.php:87
|
||||
#: diaspora.php:86
|
||||
msgid "Post to aspect:"
|
||||
msgstr "Publier avec l'aspect:"
|
||||
|
||||
#: diaspora.php:88
|
||||
#: diaspora.php:87
|
||||
#, php-format
|
||||
msgid "Connected with your Diaspora account <strong>%s</strong>"
|
||||
msgstr "Connecté avec votre compte Diaspora <strong>%s</strong>"
|
||||
|
||||
#: diaspora.php:91
|
||||
#: diaspora.php:90
|
||||
msgid ""
|
||||
"Can't login to your Diaspora account. Please check handle (in the format "
|
||||
"user@domain.tld) and password."
|
||||
msgstr "Connexion impossible à votre compte Diaspora. Merci de vérifier votre identifiant (au format user@domain.tld) et votre mot de passe."
|
||||
|
||||
#: diaspora.php:99
|
||||
msgid "Diaspora Export"
|
||||
msgstr "Export Diaspora"
|
||||
|
||||
#: diaspora.php:100
|
||||
#: diaspora.php:97
|
||||
msgid "Information"
|
||||
msgstr "Information"
|
||||
|
||||
#: diaspora.php:101
|
||||
#: diaspora.php:98
|
||||
msgid "Error"
|
||||
msgstr "Erreur"
|
||||
|
||||
#: diaspora.php:102
|
||||
msgid "Save Settings"
|
||||
msgstr "Sauvegarder les paramètres"
|
||||
|
||||
#: diaspora.php:106
|
||||
#: diaspora.php:104
|
||||
msgid "Enable Diaspora Post Addon"
|
||||
msgstr "Activer l’extension « Publier sur Diaspora »"
|
||||
|
||||
#: diaspora.php:107
|
||||
#: diaspora.php:105
|
||||
msgid "Diaspora handle"
|
||||
msgstr "Identifiant Diaspora"
|
||||
|
||||
#: diaspora.php:108
|
||||
#: diaspora.php:106
|
||||
msgid "Diaspora password"
|
||||
msgstr "Mot de passe Diaspora"
|
||||
|
||||
#: diaspora.php:108
|
||||
#: diaspora.php:106
|
||||
msgid ""
|
||||
"Privacy notice: Your Diaspora password will be stored unencrypted to "
|
||||
"authenticate you with your Diaspora pod. This means your Friendica node "
|
||||
"administrator can have access to it."
|
||||
msgstr "Vie privée : Votre mot de passe Diaspora sera stocké sans encryption pour vous identifier sur votre pod. Cela signifie que l’administrateur de votre pod Diaspora peut y avoir accès."
|
||||
|
||||
#: diaspora.php:110
|
||||
#: diaspora.php:108
|
||||
msgid "Post to Diaspora by default"
|
||||
msgstr "Publier sur Diaspora par défaut"
|
||||
|
||||
#: diaspora.php:113
|
||||
msgid "Diaspora Export"
|
||||
msgstr "Export Diaspora"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
if(! function_exists("string_plural_select_fr")) {
|
||||
function string_plural_select_fr($n){
|
||||
$n = intval($n);
|
||||
return intval($n > 1);
|
||||
if (($n == 0 || $n == 1)) { return 0; } else if ($n != 0 && $n % 1000000 == 0) { return 1; } else { return 2; }
|
||||
}}
|
||||
$a->strings['Post to Diaspora'] = 'Publier sur Diaspora';
|
||||
$a->strings['Please remember: You can always be reached from Diaspora with your Friendica handle <strong>%s</strong>. '] = 'Attention : vous pouvez toujours être joint par Diaspora avec votre identifiant Friendica <strong>%s</strong>. ';
|
||||
@@ -14,12 +14,11 @@ $a->strings['Public'] = 'Public';
|
||||
$a->strings['Post to aspect:'] = 'Publier avec l\'aspect:';
|
||||
$a->strings['Connected with your Diaspora account <strong>%s</strong>'] = 'Connecté avec votre compte Diaspora <strong>%s</strong>';
|
||||
$a->strings['Can\'t login to your Diaspora account. Please check handle (in the format user@domain.tld) and password.'] = 'Connexion impossible à votre compte Diaspora. Merci de vérifier votre identifiant (au format user@domain.tld) et votre mot de passe.';
|
||||
$a->strings['Diaspora Export'] = 'Export Diaspora';
|
||||
$a->strings['Information'] = 'Information';
|
||||
$a->strings['Error'] = 'Erreur';
|
||||
$a->strings['Save Settings'] = 'Sauvegarder les paramètres';
|
||||
$a->strings['Enable Diaspora Post Addon'] = 'Activer l’extension « Publier sur Diaspora »';
|
||||
$a->strings['Diaspora handle'] = 'Identifiant Diaspora';
|
||||
$a->strings['Diaspora password'] = 'Mot de passe Diaspora';
|
||||
$a->strings['Privacy notice: Your Diaspora password will be stored unencrypted to authenticate you with your Diaspora pod. This means your Friendica node administrator can have access to it.'] = 'Vie privée : Votre mot de passe Diaspora sera stocké sans encryption pour vous identifier sur votre pod. Cela signifie que l’administrateur de votre pod Diaspora peut y avoir accès.';
|
||||
$a->strings['Post to Diaspora by default'] = 'Publier sur Diaspora par défaut';
|
||||
$a->strings['Diaspora Export'] = 'Export Diaspora';
|
||||
|
||||
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:17-0500\n"
|
||||
"PO-Revision-Date: 2021-12-23 17:19+0000\n"
|
||||
"Last-Translator: Balázs Úr\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:39+0000\n"
|
||||
"Last-Translator: Balázs Úr, 2020\n"
|
||||
"Language-Team: Hungarian (http://www.transifex.com/Friendica/friendica/language/hu/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
|
||||
@@ -36,13 +36,13 @@ function discourse_install()
|
||||
Hook::register('connector_settings_post', __FILE__, 'discourse_settings_post');
|
||||
}
|
||||
|
||||
function discourse_settings(App $a, array &$data)
|
||||
function discourse_settings(array &$data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$enabled = intval(DI::pConfig()->get(local_user(), 'discourse', 'enabled'));
|
||||
$enabled = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'discourse', 'enabled'));
|
||||
|
||||
$t = Renderer::getMarkupTemplate('connector_settings.tpl', 'addon/discourse/');
|
||||
$html = Renderer::replaceMacros($t, [
|
||||
@@ -58,16 +58,16 @@ function discourse_settings(App $a, array &$data)
|
||||
];
|
||||
}
|
||||
|
||||
function discourse_settings_post(App $a)
|
||||
function discourse_settings_post()
|
||||
{
|
||||
if (!local_user() || empty($_POST['discourse-submit'])) {
|
||||
if (!DI::userSession()->getLocalUserId() || empty($_POST['discourse-submit'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
DI::pConfig()->set(local_user(), 'discourse', 'enabled', intval($_POST['enabled']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'discourse', 'enabled', intval($_POST['enabled']));
|
||||
}
|
||||
|
||||
function discourse_email_getmessage(App $a, &$message)
|
||||
function discourse_email_getmessage(&$message)
|
||||
{
|
||||
if (empty($message['item']['uid'])) {
|
||||
return;
|
||||
|
||||
@@ -29,34 +29,34 @@ function dwpost_install()
|
||||
Hook::register('connector_settings_post', 'addon/dwpost/dwpost.php', 'dwpost_settings_post');
|
||||
}
|
||||
|
||||
function dwpost_jot_nets(App $a, array &$jotnets_fields)
|
||||
function dwpost_jot_nets(array &$jotnets_fields)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (DI::pConfig()->get(local_user(), 'dwpost', 'post')) {
|
||||
if (DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'dwpost', 'post')) {
|
||||
$jotnets_fields[] = [
|
||||
'type' => 'checkbox',
|
||||
'field' => [
|
||||
'dwpost_enable',
|
||||
DI::l10n()->t('Post to Dreamwidth'),
|
||||
DI::pConfig()->get(local_user(), 'dwpost', 'post_by_default')
|
||||
DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'dwpost', 'post_by_default')
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function dwpost_settings(App $a, array &$data)
|
||||
function dwpost_settings(array &$data)
|
||||
{
|
||||
if (!local_user()) {
|
||||
if (!DI::userSession()->getLocalUserId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$enabled = DI::pConfig()->get(local_user(), 'dwpost', 'post', false);
|
||||
$dw_username = DI::pConfig()->get(local_user(), 'dwpost', 'dw_username');
|
||||
$def_enabled = DI::pConfig()->get(local_user(), 'dwpost', 'post_by_default');
|
||||
$enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'dwpost', 'post', false);
|
||||
$dw_username = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'dwpost', 'dw_username');
|
||||
$def_enabled = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'dwpost', 'post_by_default');
|
||||
|
||||
$t = Renderer::getMarkupTemplate('connector_settings.tpl', 'addon/dwpost/');
|
||||
$html = Renderer::replaceMacros($t, [
|
||||
@@ -76,24 +76,24 @@ function dwpost_settings(App $a, array &$data)
|
||||
}
|
||||
|
||||
|
||||
function dwpost_settings_post(App $a, array &$b)
|
||||
function dwpost_settings_post(array &$b)
|
||||
{
|
||||
if (!empty($_POST['dwpost-submit'])) {
|
||||
DI::pConfig()->set(local_user(), 'dwpost', 'post', intval($_POST['dwpost']));
|
||||
DI::pConfig()->set(local_user(), 'dwpost', 'post_by_default', intval($_POST['dw_bydefault']));
|
||||
DI::pConfig()->set(local_user(), 'dwpost', 'dw_username', trim($_POST['dw_username']));
|
||||
DI::pConfig()->set(local_user(), 'dwpost', 'dw_password', trim($_POST['dw_password']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'dwpost', 'post', intval($_POST['dwpost']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'dwpost', 'post_by_default', intval($_POST['dw_bydefault']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'dwpost', 'dw_username', trim($_POST['dw_username']));
|
||||
DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'dwpost', 'dw_password', trim($_POST['dw_password']));
|
||||
}
|
||||
}
|
||||
|
||||
function dwpost_post_local(App $a, array &$b)
|
||||
function dwpost_post_local(array &$b)
|
||||
{
|
||||
// This can probably be changed to allow editing by pointing to a different API endpoint
|
||||
if ($b['edit']) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((!local_user()) || (local_user() != $b['uid'])) {
|
||||
if ((!DI::userSession()->getLocalUserId()) || (DI::userSession()->getLocalUserId() != $b['uid'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -101,11 +101,11 @@ function dwpost_post_local(App $a, array &$b)
|
||||
return;
|
||||
}
|
||||
|
||||
$dw_post = intval(DI::pConfig()->get(local_user(),'dwpost','post'));
|
||||
$dw_post = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(),'dwpost','post'));
|
||||
|
||||
$dw_enable = (($dw_post && !empty($_REQUEST['dwpost_enable'])) ? intval($_REQUEST['dwpost_enable']) : 0);
|
||||
|
||||
if ($b['api_source'] && intval(DI::pConfig()->get(local_user(),'dwpost','post_by_default'))) {
|
||||
if ($b['api_source'] && intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(),'dwpost','post_by_default'))) {
|
||||
$dw_enable = 1;
|
||||
}
|
||||
|
||||
@@ -120,13 +120,13 @@ function dwpost_post_local(App $a, array &$b)
|
||||
$b['postopts'] .= 'dwpost';
|
||||
}
|
||||
|
||||
function dwpost_send(App $a, array &$b)
|
||||
function dwpost_send(array &$b)
|
||||
{
|
||||
if ($b['deleted'] || $b['private'] || ($b['created'] !== $b['edited'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!strstr($b['postopts'],'dwpost')) {
|
||||
if (strpos($b['postopts'] ?? '', 'dwpost') === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ function dwpost_send(App $a, array &$b)
|
||||
return;
|
||||
}
|
||||
|
||||
$b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], $b['body']);
|
||||
$b['body'] = Post\Media::addAttachmentsToBody($b['uri-id'], DI::contentItem()->addSharedPost($b));
|
||||
|
||||
/*
|
||||
* dreamwidth post in the LJ user's timezone.
|
||||
|
||||
@@ -10,40 +10,36 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-02-27 05:01-0500\n"
|
||||
"PO-Revision-Date: 2018-06-14 10:13+0000\n"
|
||||
"Last-Translator: Aditoo\n"
|
||||
"Language-Team: Czech (http://www.transifex.com/Friendica/friendica/language/cs/)\n"
|
||||
"POT-Creation-Date: 2021-11-21 19:17-0500\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:41+0000\n"
|
||||
"Last-Translator: Aditoo, 2018\n"
|
||||
"Language-Team: Czech (http://app.transifex.com/Friendica/friendica/language/cs/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: cs\n"
|
||||
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
|
||||
|
||||
#: dwpost.php:39
|
||||
#: dwpost.php:43
|
||||
msgid "Post to Dreamwidth"
|
||||
msgstr "Poslat na Dreamwidth"
|
||||
msgstr "Odeslat na Dreamwidth"
|
||||
|
||||
#: dwpost.php:70
|
||||
msgid "Dreamwidth Post Settings"
|
||||
msgstr "Nastavení Dreamwidth Post"
|
||||
#: dwpost.php:63
|
||||
msgid "Enable Dreamwidth Post Addon"
|
||||
msgstr ""
|
||||
|
||||
#: dwpost.php:72
|
||||
msgid "Enable dreamwidth Post Addon"
|
||||
msgstr "Povolit doplněk Dreamwidth Post"
|
||||
#: dwpost.php:64
|
||||
msgid "Dreamwidth username"
|
||||
msgstr ""
|
||||
|
||||
#: dwpost.php:77
|
||||
msgid "dreamwidth username"
|
||||
msgstr "dreamwidth uživatelské jméno"
|
||||
#: dwpost.php:65
|
||||
msgid "Dreamwidth password"
|
||||
msgstr ""
|
||||
|
||||
#: dwpost.php:82
|
||||
msgid "dreamwidth password"
|
||||
msgstr "dreamwidth heslo"
|
||||
#: dwpost.php:66
|
||||
msgid "Post to Dreamwidth by default"
|
||||
msgstr ""
|
||||
|
||||
#: dwpost.php:87
|
||||
msgid "Post to dreamwidth by default"
|
||||
msgstr "Ve výchozím stavu posílat na dreamwidth"
|
||||
|
||||
#: dwpost.php:93
|
||||
msgid "Submit"
|
||||
msgstr "Odeslat"
|
||||
#: dwpost.php:71
|
||||
msgid "Dreamwidth Export"
|
||||
msgstr ""
|
||||
|
||||
@@ -5,10 +5,4 @@ function string_plural_select_cs($n){
|
||||
$n = intval($n);
|
||||
if (($n == 1 && $n % 1 == 0)) { return 0; } else if (($n >= 2 && $n <= 4 && $n % 1 == 0)) { return 1; } else if (($n % 1 != 0 )) { return 2; } else { return 3; }
|
||||
}}
|
||||
$a->strings['Post to Dreamwidth'] = 'Poslat na Dreamwidth';
|
||||
$a->strings['Dreamwidth Post Settings'] = 'Nastavení Dreamwidth Post';
|
||||
$a->strings['Enable dreamwidth Post Addon'] = 'Povolit doplněk Dreamwidth Post';
|
||||
$a->strings['dreamwidth username'] = 'dreamwidth uživatelské jméno';
|
||||
$a->strings['dreamwidth password'] = 'dreamwidth heslo';
|
||||
$a->strings['Post to dreamwidth by default'] = 'Ve výchozím stavu posílat na dreamwidth';
|
||||
$a->strings['Submit'] = 'Odeslat';
|
||||
$a->strings['Post to Dreamwidth'] = 'Odeslat na Dreamwidth';
|
||||
|
||||
@@ -13,9 +13,9 @@ msgstr ""
|
||||
"Project-Id-Version: friendica\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-11-21 19:17-0500\n"
|
||||
"PO-Revision-Date: 2022-01-22 17:33+0000\n"
|
||||
"Last-Translator: Tobias Diekershoff <tobias.diekershoff@gmx.net>\n"
|
||||
"Language-Team: German (http://www.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"PO-Revision-Date: 2014-06-22 11:41+0000\n"
|
||||
"Last-Translator: Tobias Diekershoff <tobias.diekershoff@gmx.net>, 2018,2021-2022\n"
|
||||
"Language-Team: German (http://app.transifex.com/Friendica/friendica/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||