From a988aae6631964ccb24d95f3e5e9675a58334a81 Mon Sep 17 00:00:00 2001 From: Frisk Date: Sun, 8 Jul 2018 18:44:27 +0200 Subject: [PATCH 01/11] Added #20 maybe? --- rcgcdw.pot | 134 +++++++++++++++++++++++++++++++++-------------------- rcgcdw.py | 25 ++++++---- 2 files changed, 101 insertions(+), 58 deletions(-) diff --git a/rcgcdw.pot b/rcgcdw.pot index a13b3ee..f309398 100644 --- a/rcgcdw.pot +++ b/rcgcdw.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2018-07-05 20:21+0200\n" +"POT-Creation-Date: 2018-07-08 18:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -173,191 +173,227 @@ msgstr "" msgid "Changed group membership for {target}" msgstr "" -#: rcgcdw.py:251 rcgcdw.py:253 +#: rcgcdw.py:257 rcgcdw.py:259 msgid "none" msgstr "" -#: rcgcdw.py:254 rcgcdw.py:376 +#: rcgcdw.py:260 rcgcdw.py:381 msgid "No description provided" msgstr "" -#: rcgcdw.py:255 +#: rcgcdw.py:261 msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "" -#: rcgcdw.py:258 +#: rcgcdw.py:264 msgid "Protected {target}" msgstr "" -#: rcgcdw.py:262 +#: rcgcdw.py:268 msgid "Changed protection level for {article}" msgstr "" -#: rcgcdw.py:266 +#: rcgcdw.py:272 msgid "Removed protection from {article}" msgstr "" -#: rcgcdw.py:269 +#: rcgcdw.py:275 msgid "Changed visibility of revision(s) on page {article} " msgstr "" -#: rcgcdw.py:272 +#: rcgcdw.py:278 msgid "Imported {article} with {count} revision(s)" msgstr "" -#: rcgcdw.py:275 +#: rcgcdw.py:281 msgid "Restored {article}" msgstr "" -#: rcgcdw.py:278 +#: rcgcdw.py:284 msgid "Changed visibility of log events" msgstr "" -#: rcgcdw.py:281 +#: rcgcdw.py:287 msgid "Imported interwiki" msgstr "" -#: rcgcdw.py:284 +#: rcgcdw.py:290 msgid "Edited abuse filter number {number}" msgstr "" -#: rcgcdw.py:287 +#: rcgcdw.py:293 msgid "Merged revision histories of {article} into {dest}" msgstr "" -#: rcgcdw.py:290 +#: rcgcdw.py:296 msgid "Added an entry to the interwiki table" msgstr "" -#: rcgcdw.py:291 rcgcdw.py:295 +#: rcgcdw.py:297 rcgcdw.py:301 msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "" -#: rcgcdw.py:294 +#: rcgcdw.py:300 msgid "Edited an entry in interwiki table" msgstr "" -#: rcgcdw.py:298 +#: rcgcdw.py:304 msgid "Deleted an entry in interwiki table" msgstr "" -#: rcgcdw.py:299 +#: rcgcdw.py:305 msgid "Prefix: {prefix} | {desc}" msgstr "" -#: rcgcdw.py:302 +#: rcgcdw.py:308 msgid "Changed the content model of the page {article}" msgstr "" -#: rcgcdw.py:303 +#: rcgcdw.py:309 msgid "Model changed from {old} to {new}: {reason}" msgstr "" -#: rcgcdw.py:306 +#: rcgcdw.py:312 msgid "Edited the sprite for {article}" msgstr "" -#: rcgcdw.py:309 +#: rcgcdw.py:315 msgid "Created the sprite sheet for {article}" msgstr "" -#: rcgcdw.py:312 +#: rcgcdw.py:318 msgid "Edited the slice for {article}" msgstr "" -#: rcgcdw.py:315 +#: rcgcdw.py:321 msgid "Created a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:319 +#: rcgcdw.py:325 msgid "Deleted a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:323 +#: rcgcdw.py:329 msgid "Activated a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:326 +#: rcgcdw.py:332 msgid "Deactivated a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:347 +#: rcgcdw.py:353 msgid "Tags" msgstr "" -#: rcgcdw.py:469 +#: rcgcdw.py:474 msgid "Unable to process the event" msgstr "" -#: rcgcdw.py:469 +#: rcgcdw.py:474 msgid "error" msgstr "" -#: rcgcdw.py:549 +#: rcgcdw.py:554 msgid "Daily overview" msgstr "" -#: rcgcdw.py:565 +#: rcgcdw.py:570 msgid " ({} actions)" msgstr "" -#: rcgcdw.py:566 +#: rcgcdw.py:571 msgid " UTC ({} actions)" msgstr "" -#: rcgcdw.py:568 rcgcdw.py:569 +#: rcgcdw.py:573 rcgcdw.py:574 msgid "But nobody came" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "Admin actions" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "Bytes changed" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "Day score" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "Edits made" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "Most active hours" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "Most active users" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "New articles" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "New files" msgstr "" -#: rcgcdw.py:573 +#: rcgcdw.py:578 msgid "Unique contributors" msgstr "" -#: rcgcdw.py:662 +#: rcgcdw.py:668 msgid "Connection to {wiki} seems to be stable now." msgstr "" -#: rcgcdw.py:662 rcgcdw.py:715 +#: rcgcdw.py:668 rcgcdw.py:723 msgid "Connection status" msgstr "" -#: rcgcdw.py:715 +#: rcgcdw.py:723 msgid "{wiki} seems to be down or unreachable." msgstr "" -#: rcgcdw.py:737 -msgid "{wiki} is back up!" +#: rcgcdw.py:745 +msgid "autopatrol" +msgstr "" + +#: rcgcdw.py:745 +msgid "autoreview" +msgstr "" + +#: rcgcdw.py:745 +msgid "bot" +msgstr "" + +#: rcgcdw.py:745 +msgid "bureaucrat" +msgstr "" + +#: rcgcdw.py:745 +msgid "director" +msgstr "" + +#: rcgcdw.py:745 +msgid "directors" +msgstr "" + +#: rcgcdw.py:745 +msgid "editor" +msgstr "" + +#: rcgcdw.py:745 +msgid "reviewer" +msgstr "" + +#: rcgcdw.py:745 +msgid "sysop" +msgstr "" + +#: rcgcdw.py:745 +msgid "wiki_guardian" msgstr "" diff --git a/rcgcdw.py b/rcgcdw.py index 58f8cad..9bdd1cf 100644 --- a/rcgcdw.py +++ b/rcgcdw.py @@ -245,14 +245,20 @@ def webhook_formatter(action, STATIC, **params): elif action == 20: link = "https://{wiki}.gamepedia.com/User:".format(wiki=settings["wiki"])+params["title"].split(":")[1] embed["title"] = _("Changed group membership for {target}").format(target=params["title"].split(":")[1]) - if params["old_groups"].count(' ') < params["new_groups"].count(' ') or params["old_groups"] == "none": #TODO Hardcoded value, depends on translation + if len(params["old_groups"]) < len(params["new_groups"]): embed["thumbnail"]["url"] = "https://i.imgur.com/WnGhF5g.gif" - if len(params["old_groups"]) < 4: - params["old_groups"] = _("none") - if len(params["new_groups"]) < 4: - params["new_groups"] = _("none") + old_groups = [] + new_groups = [] + for name in params["old_groups"]: + old_groups.append(_(name)) + for name in params["new_groups"]: + new_groups.append(_(name)) + if len(old_groups) == 0: + old_groups = _("none") + if len(new_groups) == 0: + new_groups = _("none") reason = ": {desc}".format(desc=params["desc"]) if params["desc"]!=_("No description provided") else "" - params["desc"] = _("Groups changed from {old_groups} to {new_groups}{reason}").format(old_groups=params["old_groups"], new_groups=params["new_groups"], reason=reason) + params["desc"] = _("Groups changed from {old_groups} to {new_groups}{reason}").format(old_groups=", ".join(old_groups), new_groups=', '.join(new_groups), reason=reason) elif action == 2: link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Protected {target}").format(target=params["title"]) @@ -425,7 +431,7 @@ def first_pass(change): #I've decided to split the embed formatter and change ha elif logtype=="block": webhook_formatter(19, STATIC_VARS, user=change["user"], blocked_user=change["title"], desc=parsedcomment) elif logtype=="rights": - webhook_formatter(20, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, old_groups=', '.join(change["logparams"]["oldgroups"]), new_groups=', '.join(change["logparams"]["newgroups"])) + webhook_formatter(20, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, old_groups=change["logparams"]["oldgroups"], new_groups=change["logparams"]["newgroups"]) elif logtype=="abusefilter": webhook_formatter(21, STATIC_VARS, user=change["user"], desc=parsedcomment, filternr=change["logparams"]['1']) elif logtype=="interwiki" and logaction=="iw_add": @@ -588,6 +594,7 @@ class recent_changes_class(object): last_downtime = 0 clock = 0 tags = {} + groups = {} unsent_messages = [] streak = -1 if settings["limitrefetch"] != -1: @@ -727,7 +734,7 @@ class recent_changes_class(object): self.tags[tag["name"]] = (BeautifulSoup(tag["displayname"], "lxml")).get_text() else: logging.warning("Could not retrive tags. Internal names will be used!") - + recent_changes = recent_changes_class() recent_changes.update_tags() time.sleep(1.0) @@ -735,7 +742,7 @@ recent_changes.fetch(amount=settings["limitrefetch" ] if settings["limitrefetch" schedule.every(settings["cooldown"]).seconds.do(recent_changes.fetch) if 1==2: #dummy for future translations - print (_("{wiki} is back up!")) + print (_("director"), _("bot"), _("editor"), _("directors"), _("sysop"), _("bureaucrat"), _("reviewer"), _("autoreview"), _("autopatrol"), _("wiki_guardian")) if settings["overview"]: schedule.every().day.at("{}:{}".format(time.strptime(settings["overview_time"], '%H:%M').tm_hour, time.strptime(settings["overview_time"], '%H:%M').tm_min)).do(day_overview) From 121f29fb275a4b9850feab6094709ef34b7e28c0 Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 10:01:51 +0200 Subject: [PATCH 02/11] Added EN translation --- .gitignore | 1 + locale/en/LC_MESSAGES/en.mo | Bin 0 -> 6940 bytes locale/en/LC_MESSAGES/en.po | 402 ++++++++++++++++++++++++++++++++++++ rcgcdw.py | 11 +- settings.json.example | 4 +- 5 files changed, 409 insertions(+), 9 deletions(-) create mode 100644 locale/en/LC_MESSAGES/en.mo create mode 100644 locale/en/LC_MESSAGES/en.po diff --git a/.gitignore b/.gitignore index b936a18..d5b0f0d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ settings.json pygettext.py lastchange.txt .directory +/debug diff --git a/locale/en/LC_MESSAGES/en.mo b/locale/en/LC_MESSAGES/en.mo new file mode 100644 index 0000000000000000000000000000000000000000..af9ca1ca6582bd073e79f0836327ed4f2899f4f5 GIT binary patch literal 6940 zcmeI0TWlOx8OKkdrQiUiDNra7PEy+1N!GO;hd9oK#&MFmwUaclQ@5c_W_OS6!Miit znOWPbWsxWH_%0zyb!#P2^dI~$v* zitc@OropUIV9K zKRg9*fNStN_!xW#yaf4Yp62I9_$<5y{sOAKf57dq?+sbK-B9HR;Q+h~%07X&!YASF z@cYohm*FVf+L!rt0`BJhKKM5Haj1Hi;G5wOAyv#z;XC0A@HY5YDEn<&jJX+(!nebD zH~>Sac0QYb{~p}I`-^ZJy!MU8ycgaI)$Vafljb7Sc$OiirUl2~BXBEx7Vd&Sf$xL= zgoMQGpwbB31@-+wsJMSJ=Ows@_pifu!C%9E_%BEk<~9baagIX8{VbN|#5W`kR8Ufe%3W zc@e6fgR%=CAu|b7d>)1tUV_racVTpuF~5bfn`iKvhXttmYp@@F1ggKMpvLoUsBu3J z)!&Oy^Y9Xsp0B}J?d^h!?|!Iy=kxMqDBZQ7?7s}9zvtlX@Q=_!`_@eVN1*&#fxF=+ zp!EDSRK4dRQ)vDK6|bxKsPS%r8s{xg_A~rQ{}m|xKMLi?7oghtQU3i8Q2M_CBkBMB zQ2L*PYPShBe@{S-^GPUud=*On--Lw1yac6h1xNbd4Hd6@;0U}Q>igqR<9jCO^KcLE zzl74+^#ohEbW& zDyU~7L-BjO$YpbJG=JXwz(Nk>SExgKd_ zm?Uj0&U$doOr|;X2k*=Cf?|I^NwL*4m?72BY@TN+q+^!8rLlYR@?%gjoFR>o6bIyP z4w9t#ev;OL;(aGckLE`DQH-TGJvWn1ra5ESKGO9hE$F$6bbvIZ7oKs_3DQ2j@SG-T zz3Mqk(wf&ZO*%)CHncD3(K@+6dJk!y^Z-ekI7HIiYkg|2r8}+B?WDU&=SkgXj?5k1 z7kDPm?}wwLsr=p8{&vTDmBbH&c)-}X*`w=A`cG~ju%`cfBXTRgTYaFvUGszG&Vc=} zJ>LwfAq7HKIB*5S0kd=G$yR=K@>zs?HoKht0&+ z$>7h5m$<6+Y~n529c_L)JIs-4Rb_#7K@zoW653?RSwBczwCXSW*p_S5uGamaJ0>$x z3oFaiYL~Ojg=Xxcj$H^N+fMwt>zD~T4Z?C*ZP|)P?-Q-W#kR8K1&gj~j%KuJbsM`R z@q@)UtG}+v!g4VRn+=9hFS{sS@*8IMwY| z1FVFMFd#Bv6}xaD9d*N7bhiB;_A7qum;IWbv}9Nd7cGqkNnA9z-axY&<3oQuVDV&q zqt+Y^gCKV@PQ0W^GrbbR-&WW=M8(x(O-I>T?3e@sx;ki%M(zr;*e%u2;zr~rV9B{; zLj)#0zs4X|TqNO{Nv~z&N*Fma>7>^y>0{E>T&9{zSg$K&j0x?ek-sgr#C*X=Aw9dx z)m4;s^@WNyYO8CrK2Sx2g|Lf>vE^(GtBe!jm}6DOD_y^`hh4KWYPI-`!fnu$qHH^3 zr)cUG+|8RwBdryRpISiLs;=!^x5r&IQf0oxm zC{~hPh{C#Uhqda3bcMtnDW)B`)$V&6xx``6F;n$M7%5Ce_-b z>E3JRg8ZP^a0v0if2f)5?~z|_(s@kTGJ9uW<{Gt-Ls44=OT@AbYM)Lu8E{H^|uOd(e|RjP!W0;7}iDqR!{iY^yznps zdRMD8kEt8C$0I*pwg(%2m_%-Ebk7~yTf(5ukvdpeI^1`<){MMb>3A5`<8d1_(%1OV z$N`&W5A_Fj`yo3#aDcY6;g56a>f5|7ZeABRuZ!6qBi*ZD@#o0qb&(zEvV;1v3-{)A zu~r;(#Wi^Iy102={6D%b9_d{dmCdh<6I>T3de_Ct^#5(R7j`po`e*2WbzRhL%dK)< WO#g$1zp}XNQ1M><&&~hx+W2qg9b{_& literal 0 HcmV?d00001 diff --git a/locale/en/LC_MESSAGES/en.po b/locale/en/LC_MESSAGES/en.po new file mode 100644 index 0000000..3da81ee --- /dev/null +++ b/locale/en/LC_MESSAGES/en.po @@ -0,0 +1,402 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR ORGANIZATION +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: 2018-07-08 18:43+0200\n" +"PO-Revision-Date: 2018-07-10 13:49+0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: pygettext.py 1.5\n" +"X-Generator: Poedit 2.0.8\n" +"Last-Translator: Frisk \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: en\n" + +#: rcgcdw.py:126 +msgid "(N!) " +msgstr "(N!) " + +#: rcgcdw.py:126 +msgid "m " +msgstr "m " + +#: rcgcdw.py:144 +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "([preview]({link}) | [undo]({undolink}))" + +#: rcgcdw.py:144 rcgcdw.py:170 +msgid "Options" +msgstr "Options" + +#: rcgcdw.py:145 +msgid "Uploaded a new version of {name}" +msgstr "Uploaded a new version of {name}" + +#: rcgcdw.py:147 +msgid "Uploaded {name}" +msgstr "Uploaded {name}" + +#: rcgcdw.py:160 +msgid "**No license!**" +msgstr "**No license!**" + +#: rcgcdw.py:170 +msgid "([preview]({link}))" +msgstr "([preview]({link}))" + +#: rcgcdw.py:171 +msgid "" +"{desc}\n" +"License: {license}" +msgstr "" +"{desc}\n" +"License: {license}" + +#: rcgcdw.py:174 +msgid "Deleted page {article}" +msgstr "Deleted page {article}" + +#: rcgcdw.py:177 +msgid "Deleted redirect {article} by overwriting" +msgstr "Deleted redirect {article} by overwriting" + +#: rcgcdw.py:180 +msgid "A redirect has been made" +msgstr "A redirect has been made" + +#: rcgcdw.py:180 +msgid "No redirect has been made" +msgstr "No redirect has been made" + +#: rcgcdw.py:181 +msgid "Moved {article} to {target}" +msgstr "Moved {article} to {target}" + +#: rcgcdw.py:184 +msgid "Moved {article} to {title} over redirect" +msgstr "Moved {article} to {title} over redirect" + +#: rcgcdw.py:187 +msgid "Moved protection settings from {article} to {title}" +msgstr "Moved protection settings from {article} to {title}" + +#: rcgcdw.py:191 +msgid "infinity and beyond" +msgstr "infinity and beyond" + +#: rcgcdw.py:192 +msgid "Blocked {blocked_user} for {time}" +msgstr "Blocked {blocked_user} for {time}" + +#: rcgcdw.py:196 +msgid "Changed block settings for {blocked_user}" +msgstr "Changed block settings for {blocked_user}" + +#: rcgcdw.py:200 +msgid "Unblocked {blocked_user}" +msgstr "Unblocked {blocked_user}" + +#: rcgcdw.py:204 +msgid "Left a comment on {target}'s profile" +msgstr "Left a comment on {target}'s profile" + +#: rcgcdw.py:208 +msgid "Replied to a comment on {target}'s profile" +msgstr "Replied to a comment on {target}'s profile" + +#: rcgcdw.py:212 +msgid "Edited a comment on {target}'s profile" +msgstr "Edited a comment on {target}'s profile" + +#: rcgcdw.py:216 +msgid "Location" +msgstr "Location" + +#: rcgcdw.py:218 +msgid "About me" +msgstr "About me" + +#: rcgcdw.py:220 +msgid "Google link" +msgstr "Google link" + +#: rcgcdw.py:222 +msgid "Facebook link" +msgstr "Facebook link" + +#: rcgcdw.py:224 +msgid "Twitter link" +msgstr "Twitter link" + +#: rcgcdw.py:226 +msgid "Reddit link" +msgstr "Reddit link" + +#: rcgcdw.py:228 +msgid "Twitch link" +msgstr "Twitch link" + +#: rcgcdw.py:230 +msgid "PSN link" +msgstr "PSN link" + +#: rcgcdw.py:232 +msgid "VK link" +msgstr "VK link" + +#: rcgcdw.py:234 +msgid "XVL link" +msgstr "XVL link" + +#: rcgcdw.py:236 +msgid "Steam link" +msgstr "Steam link" + +#: rcgcdw.py:238 +msgid "Unknown" +msgstr "Unknown" + +#: rcgcdw.py:239 +msgid "Edited {target}'s profile" +msgstr "Edited {target}'s profile" + +#: rcgcdw.py:240 +msgid "{field} field changed to: {desc}" +msgstr "{field} field changed to: {desc}" + +#: rcgcdw.py:244 +msgid "Deleted a comment on {target}'s profile" +msgstr "Deleted a comment on {target}'s profile" + +#: rcgcdw.py:247 +msgid "Changed group membership for {target}" +msgstr "Changed group membership for {target}" + +#: rcgcdw.py:257 rcgcdw.py:259 +msgid "none" +msgstr "none" + +#: rcgcdw.py:260 rcgcdw.py:381 +msgid "No description provided" +msgstr "No description provided" + +#: rcgcdw.py:261 +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "Groups changed from {old_groups} to {new_groups}{reason}" + +#: rcgcdw.py:264 +msgid "Protected {target}" +msgstr "Protected {target}" + +#: rcgcdw.py:268 +msgid "Changed protection level for {article}" +msgstr "Changed protection level for {article}" + +#: rcgcdw.py:272 +msgid "Removed protection from {article}" +msgstr "Removed protection from {article}" + +#: rcgcdw.py:275 +msgid "Changed visibility of revision(s) on page {article} " +msgstr "Changed visibility of revision(s) on page {article} " + +#: rcgcdw.py:278 +msgid "Imported {article} with {count} revision(s)" +msgstr "Imported {article} with {count} revision(s)" + +#: rcgcdw.py:281 +msgid "Restored {article}" +msgstr "Restored {article}" + +#: rcgcdw.py:284 +msgid "Changed visibility of log events" +msgstr "Changed visibility of log events" + +#: rcgcdw.py:287 +msgid "Imported interwiki" +msgstr "Imported interwiki" + +#: rcgcdw.py:290 +msgid "Edited abuse filter number {number}" +msgstr "Edited abuse filter number {number}" + +#: rcgcdw.py:293 +msgid "Merged revision histories of {article} into {dest}" +msgstr "Merged revision histories of {article} into {dest}" + +#: rcgcdw.py:296 +msgid "Added an entry to the interwiki table" +msgstr "Added an entry to the interwiki table" + +#: rcgcdw.py:297 rcgcdw.py:301 +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "Prefix: {prefix}, website: {website} | {desc}" + +#: rcgcdw.py:300 +msgid "Edited an entry in interwiki table" +msgstr "Edited an entry in interwiki table" + +#: rcgcdw.py:304 +msgid "Deleted an entry in interwiki table" +msgstr "Deleted an entry in interwiki table" + +#: rcgcdw.py:305 +msgid "Prefix: {prefix} | {desc}" +msgstr "Prefix: {prefix} | {desc}" + +#: rcgcdw.py:308 +msgid "Changed the content model of the page {article}" +msgstr "Changed the content model of the page {article}" + +#: rcgcdw.py:309 +msgid "Model changed from {old} to {new}: {reason}" +msgstr "Model changed from {old} to {new}: {reason}" + +#: rcgcdw.py:312 +msgid "Edited the sprite for {article}" +msgstr "Edited the sprite for {article}" + +#: rcgcdw.py:315 +msgid "Created the sprite sheet for {article}" +msgstr "Created the sprite sheet for {article}" + +#: rcgcdw.py:318 +msgid "Edited the slice for {article}" +msgstr "Edited the slice for {article}" + +#: rcgcdw.py:321 +msgid "Created a tag \"{tag}\"" +msgstr "Created a tag \"{tag}\"" + +#: rcgcdw.py:325 +msgid "Deleted a tag \"{tag}\"" +msgstr "Deleted a tag \"{tag}\"" + +#: rcgcdw.py:329 +msgid "Activated a tag \"{tag}\"" +msgstr "Activated a tag \"{tag}\"" + +#: rcgcdw.py:332 +msgid "Deactivated a tag \"{tag}\"" +msgstr "Deactivated a tag \"{tag}\"" + +#: rcgcdw.py:353 +msgid "Tags" +msgstr "Tags" + +#: rcgcdw.py:474 +msgid "Unable to process the event" +msgstr "Unable to process the event" + +#: rcgcdw.py:474 +msgid "error" +msgstr "error" + +#: rcgcdw.py:554 +msgid "Daily overview" +msgstr "Daily overview" + +#: rcgcdw.py:570 +msgid " ({} actions)" +msgstr " ({} actions)" + +#: rcgcdw.py:571 +msgid " UTC ({} actions)" +msgstr " UTC ({} actions)" + +#: rcgcdw.py:573 rcgcdw.py:574 +msgid "But nobody came" +msgstr "But nobody came" + +#: rcgcdw.py:578 +msgid "Admin actions" +msgstr "Admin actions" + +#: rcgcdw.py:578 +msgid "Bytes changed" +msgstr "Bytes changed" + +#: rcgcdw.py:578 +msgid "Day score" +msgstr "Day score" + +#: rcgcdw.py:578 +msgid "Edits made" +msgstr "Edits made" + +#: rcgcdw.py:578 +msgid "Most active hours" +msgstr "Most active hours" + +#: rcgcdw.py:578 +msgid "Most active users" +msgstr "Most active users" + +#: rcgcdw.py:578 +msgid "New articles" +msgstr "New articles" + +#: rcgcdw.py:578 +msgid "New files" +msgstr "New files" + +#: rcgcdw.py:578 +msgid "Unique contributors" +msgstr "Unique contributors" + +#: rcgcdw.py:668 +msgid "Connection to {wiki} seems to be stable now." +msgstr "Connection to {wiki} seems to be stable now." + +#: rcgcdw.py:668 rcgcdw.py:723 +msgid "Connection status" +msgstr "Connection status" + +#: rcgcdw.py:723 +msgid "{wiki} seems to be down or unreachable." +msgstr "{wiki} seems to be down or unreachable." + +#: rcgcdw.py:745 +msgid "autopatrol" +msgstr "Autopatrol" + +#: rcgcdw.py:745 +msgid "autoreview" +msgstr "Autoreview" + +#: rcgcdw.py:745 +msgid "bot" +msgstr "Bot" + +#: rcgcdw.py:745 +msgid "bureaucrat" +msgstr "Bureaucrat" + +#: rcgcdw.py:745 +msgid "director" +msgstr "Director" + +#: rcgcdw.py:745 +msgid "directors" +msgstr "Directors" + +#: rcgcdw.py:745 +msgid "editor" +msgstr "Editor" + +#: rcgcdw.py:745 +msgid "reviewer" +msgstr "Reviewer" + +#: rcgcdw.py:745 +msgid "sysop" +msgstr "Administrator" + +#: rcgcdw.py:745 +msgid "wiki_guardian" +msgstr "Wiki guardian" diff --git a/rcgcdw.py b/rcgcdw.py index 9bdd1cf..3518a3c 100644 --- a/rcgcdw.py +++ b/rcgcdw.py @@ -34,11 +34,8 @@ if settings["limitrefetch"] != -1 and os.path.exists("lastchange.txt") == False: with open("lastchange.txt", 'w') as sfile: sfile.write("99999999999") logging.info("Current settings: {settings}".format(settings=settings)) -if settings["lang"] != "en" or settings["lang"] == "": - lang = gettext.translation('rcgcdw', localedir='locale', languages=[settings["lang"]]) - lang.install() -else: - _ = lambda s: s +lang = gettext.translation('rcgcdw', localedir='locale', languages=[settings["lang"]]) +lang.install() def send(message, name, avatar): send_to_discord({"content": message, "avatar_url": avatar, "username": name}) @@ -254,9 +251,9 @@ def webhook_formatter(action, STATIC, **params): for name in params["new_groups"]: new_groups.append(_(name)) if len(old_groups) == 0: - old_groups = _("none") + old_groups = [_("none")] if len(new_groups) == 0: - new_groups = _("none") + new_groups = [_("none")] reason = ": {desc}".format(desc=params["desc"]) if params["desc"]!=_("No description provided") else "" params["desc"] = _("Groups changed from {old_groups} to {new_groups}{reason}").format(old_groups=", ".join(old_groups), new_groups=', '.join(new_groups), reason=reason) elif action == 2: diff --git a/settings.json.example b/settings.json.example index 8e447d7..0ecf6e5 100644 --- a/settings.json.example +++ b/settings.json.example @@ -19,8 +19,8 @@ "show_updown_messages": true, "overview": false, "overview_time": "00:00", - "license_regex_detect": "\\{\\{(license|lizenz|licence)", - "license_regex": "\\{\\{(license|lizenz|licence)(\\ |\\|)(?P.*?)\\}\\}", + "license_regex_detect": "\\{\\{(license|lizenz|licence|copyright)", + "license_regex": "\\{\\{(license|lizenz|licence|copyright)(\\ |\\|)(?P.*?)\\}\\}", "appearance":{ "daily_overview": { "color": 16312092, From 3a6f6b4518e1338f4005a8315529ade11364c262 Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 10:07:38 +0200 Subject: [PATCH 03/11] Added #21 --- rcgcdw.py | 6 ++++-- settings.json.example | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/rcgcdw.py b/rcgcdw.py index 3518a3c..c03a968 100644 --- a/rcgcdw.py +++ b/rcgcdw.py @@ -376,13 +376,15 @@ def first_pass(change): #I've decided to split the embed formatter and change ha STATIC_VARS = {"timestamp": change["timestamp"], "tags": change["tags"]} if not parsedcomment: parsedcomment = _("No description provided") - if change["type"] == "edit": + if change["type"] == "edit" and "edit" not in settings["ignored"]: STATIC_VARS = {**STATIC_VARS ,**{"color": settings["appearance"]["edit"]["color"], "icon": settings["appearance"]["edit"]["icon"]}} webhook_formatter(1, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, oldrev=change["old_revid"], pageid=change["pageid"], diff=change["revid"], size=change["newlen"]-change["oldlen"], minor= True if "minor" in change else False) elif change["type"] == "log": logtype = change["logtype"] logaction = change["logaction"] combination = "{logtype}/{logaction}".format(logtype=logtype, logaction=logaction) + if combination in settings["ignored"]: + return logging.debug("combination is {}".format(combination)) try: STATIC_VARS = {**STATIC_VARS ,**{"color": settings["appearance"][combination]["color"], "icon": settings["appearance"][combination]["icon"]}} @@ -474,7 +476,7 @@ def first_pass(change): #I've decided to split the embed formatter and change ha logging.warning("External event happened, ignoring.") print (change) return - elif change["type"] == "new": #new page + elif change["type"] == "new" and "new" not in settings["ignored"]: #new page STATIC_VARS = {**STATIC_VARS ,**{"color": settings["appearance"]["new"]["color"], "icon": settings["appearance"]["new"]["icon"]}} webhook_formatter(37, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, oldrev=change["old_revid"], pageid=change["pageid"], diff=change["revid"], size=change["newlen"]) diff --git a/settings.json.example b/settings.json.example index 0ecf6e5..b9cc9de 100644 --- a/settings.json.example +++ b/settings.json.example @@ -15,6 +15,7 @@ "no_event": "", "embed": "" }, + "ignored": ["external"], "verbose_level": 0, "show_updown_messages": true, "overview": false, From 5bbbbe90e87763148a16f1e1f52b950cbd2258c4 Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 11:00:30 +0200 Subject: [PATCH 04/11] Added #25 --- rcgcdw.pot | 200 ++++++++++++++++++++++--------------------- rcgcdw.py | 245 +++++++++++++++++++++++++++-------------------------- 2 files changed, 229 insertions(+), 216 deletions(-) diff --git a/rcgcdw.pot b/rcgcdw.pot index f309398..d75b2ee 100644 --- a/rcgcdw.pot +++ b/rcgcdw.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2018-07-08 18:43+0200\n" +"POT-Creation-Date: 2018-07-12 10:57+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,385 +15,393 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: rcgcdw.py:126 +#: rcgcdw.py:123 msgid "(N!) " msgstr "" -#: rcgcdw.py:126 +#: rcgcdw.py:123 msgid "m " msgstr "" -#: rcgcdw.py:144 +#: rcgcdw.py:141 msgid "([preview]({link}) | [undo]({undolink}))" msgstr "" -#: rcgcdw.py:144 rcgcdw.py:170 +#: rcgcdw.py:141 rcgcdw.py:167 msgid "Options" msgstr "" -#: rcgcdw.py:145 +#: rcgcdw.py:142 msgid "Uploaded a new version of {name}" msgstr "" -#: rcgcdw.py:147 +#: rcgcdw.py:144 msgid "Uploaded {name}" msgstr "" -#: rcgcdw.py:160 +#: rcgcdw.py:157 msgid "**No license!**" msgstr "" -#: rcgcdw.py:170 +#: rcgcdw.py:167 msgid "([preview]({link}))" msgstr "" -#: rcgcdw.py:171 +#: rcgcdw.py:168 msgid "" "{desc}\n" "License: {license}" msgstr "" -#: rcgcdw.py:174 +#: rcgcdw.py:171 msgid "Deleted page {article}" msgstr "" -#: rcgcdw.py:177 +#: rcgcdw.py:174 msgid "Deleted redirect {article} by overwriting" msgstr "" -#: rcgcdw.py:180 +#: rcgcdw.py:177 msgid "A redirect has been made" msgstr "" -#: rcgcdw.py:180 +#: rcgcdw.py:177 msgid "No redirect has been made" msgstr "" -#: rcgcdw.py:181 +#: rcgcdw.py:178 msgid "Moved {article} to {target}" msgstr "" -#: rcgcdw.py:184 +#: rcgcdw.py:181 msgid "Moved {article} to {title} over redirect" msgstr "" -#: rcgcdw.py:187 +#: rcgcdw.py:184 msgid "Moved protection settings from {article} to {title}" msgstr "" -#: rcgcdw.py:191 +#: rcgcdw.py:188 msgid "infinity and beyond" msgstr "" -#: rcgcdw.py:192 +#: rcgcdw.py:189 msgid "Blocked {blocked_user} for {time}" msgstr "" -#: rcgcdw.py:196 +#: rcgcdw.py:193 msgid "Changed block settings for {blocked_user}" msgstr "" -#: rcgcdw.py:200 +#: rcgcdw.py:197 msgid "Unblocked {blocked_user}" msgstr "" -#: rcgcdw.py:204 +#: rcgcdw.py:201 msgid "Left a comment on {target}'s profile" msgstr "" -#: rcgcdw.py:208 +#: rcgcdw.py:205 msgid "Replied to a comment on {target}'s profile" msgstr "" -#: rcgcdw.py:212 +#: rcgcdw.py:209 msgid "Edited a comment on {target}'s profile" msgstr "" -#: rcgcdw.py:216 +#: rcgcdw.py:213 msgid "Location" msgstr "" -#: rcgcdw.py:218 +#: rcgcdw.py:215 msgid "About me" msgstr "" -#: rcgcdw.py:220 +#: rcgcdw.py:217 msgid "Google link" msgstr "" -#: rcgcdw.py:222 +#: rcgcdw.py:219 msgid "Facebook link" msgstr "" -#: rcgcdw.py:224 +#: rcgcdw.py:221 msgid "Twitter link" msgstr "" -#: rcgcdw.py:226 +#: rcgcdw.py:223 msgid "Reddit link" msgstr "" -#: rcgcdw.py:228 +#: rcgcdw.py:225 msgid "Twitch link" msgstr "" -#: rcgcdw.py:230 +#: rcgcdw.py:227 msgid "PSN link" msgstr "" -#: rcgcdw.py:232 +#: rcgcdw.py:229 msgid "VK link" msgstr "" -#: rcgcdw.py:234 +#: rcgcdw.py:231 msgid "XVL link" msgstr "" -#: rcgcdw.py:236 +#: rcgcdw.py:233 msgid "Steam link" msgstr "" -#: rcgcdw.py:238 +#: rcgcdw.py:235 msgid "Unknown" msgstr "" -#: rcgcdw.py:239 +#: rcgcdw.py:236 msgid "Edited {target}'s profile" msgstr "" -#: rcgcdw.py:240 +#: rcgcdw.py:237 msgid "{field} field changed to: {desc}" msgstr "" -#: rcgcdw.py:244 +#: rcgcdw.py:241 msgid "Deleted a comment on {target}'s profile" msgstr "" -#: rcgcdw.py:247 +#: rcgcdw.py:245 msgid "Changed group membership for {target}" msgstr "" -#: rcgcdw.py:257 rcgcdw.py:259 +#: rcgcdw.py:247 +msgid "System" +msgstr "" + +#: rcgcdw.py:249 +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: rcgcdw.py:259 rcgcdw.py:261 msgid "none" msgstr "" -#: rcgcdw.py:260 rcgcdw.py:381 +#: rcgcdw.py:262 rcgcdw.py:383 msgid "No description provided" msgstr "" -#: rcgcdw.py:261 +#: rcgcdw.py:263 msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "" -#: rcgcdw.py:264 +#: rcgcdw.py:266 msgid "Protected {target}" msgstr "" -#: rcgcdw.py:268 +#: rcgcdw.py:270 msgid "Changed protection level for {article}" msgstr "" -#: rcgcdw.py:272 +#: rcgcdw.py:274 msgid "Removed protection from {article}" msgstr "" -#: rcgcdw.py:275 +#: rcgcdw.py:277 msgid "Changed visibility of revision(s) on page {article} " msgstr "" -#: rcgcdw.py:278 +#: rcgcdw.py:280 msgid "Imported {article} with {count} revision(s)" msgstr "" -#: rcgcdw.py:281 +#: rcgcdw.py:283 msgid "Restored {article}" msgstr "" -#: rcgcdw.py:284 +#: rcgcdw.py:286 msgid "Changed visibility of log events" msgstr "" -#: rcgcdw.py:287 +#: rcgcdw.py:289 msgid "Imported interwiki" msgstr "" -#: rcgcdw.py:290 +#: rcgcdw.py:292 msgid "Edited abuse filter number {number}" msgstr "" -#: rcgcdw.py:293 +#: rcgcdw.py:295 msgid "Merged revision histories of {article} into {dest}" msgstr "" -#: rcgcdw.py:296 +#: rcgcdw.py:298 msgid "Added an entry to the interwiki table" msgstr "" -#: rcgcdw.py:297 rcgcdw.py:301 +#: rcgcdw.py:299 rcgcdw.py:303 msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "" -#: rcgcdw.py:300 +#: rcgcdw.py:302 msgid "Edited an entry in interwiki table" msgstr "" -#: rcgcdw.py:304 +#: rcgcdw.py:306 msgid "Deleted an entry in interwiki table" msgstr "" -#: rcgcdw.py:305 +#: rcgcdw.py:307 msgid "Prefix: {prefix} | {desc}" msgstr "" -#: rcgcdw.py:308 +#: rcgcdw.py:310 msgid "Changed the content model of the page {article}" msgstr "" -#: rcgcdw.py:309 +#: rcgcdw.py:311 msgid "Model changed from {old} to {new}: {reason}" msgstr "" -#: rcgcdw.py:312 +#: rcgcdw.py:314 msgid "Edited the sprite for {article}" msgstr "" -#: rcgcdw.py:315 +#: rcgcdw.py:317 msgid "Created the sprite sheet for {article}" msgstr "" -#: rcgcdw.py:318 +#: rcgcdw.py:320 msgid "Edited the slice for {article}" msgstr "" -#: rcgcdw.py:321 +#: rcgcdw.py:323 msgid "Created a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:325 +#: rcgcdw.py:327 msgid "Deleted a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:329 +#: rcgcdw.py:331 msgid "Activated a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:332 +#: rcgcdw.py:334 msgid "Deactivated a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:353 +#: rcgcdw.py:355 msgid "Tags" msgstr "" -#: rcgcdw.py:474 +#: rcgcdw.py:478 msgid "Unable to process the event" msgstr "" -#: rcgcdw.py:474 +#: rcgcdw.py:478 msgid "error" msgstr "" -#: rcgcdw.py:554 +#: rcgcdw.py:558 msgid "Daily overview" msgstr "" -#: rcgcdw.py:570 +#: rcgcdw.py:574 msgid " ({} actions)" msgstr "" -#: rcgcdw.py:571 +#: rcgcdw.py:575 msgid " UTC ({} actions)" msgstr "" -#: rcgcdw.py:573 rcgcdw.py:574 +#: rcgcdw.py:577 rcgcdw.py:578 msgid "But nobody came" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "Admin actions" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "Bytes changed" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "Day score" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "Edits made" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "Most active hours" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "Most active users" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "New articles" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "New files" msgstr "" -#: rcgcdw.py:578 +#: rcgcdw.py:582 msgid "Unique contributors" msgstr "" -#: rcgcdw.py:668 +#: rcgcdw.py:672 msgid "Connection to {wiki} seems to be stable now." msgstr "" -#: rcgcdw.py:668 rcgcdw.py:723 +#: rcgcdw.py:672 rcgcdw.py:727 msgid "Connection status" msgstr "" -#: rcgcdw.py:723 +#: rcgcdw.py:727 msgid "{wiki} seems to be down or unreachable." msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "autopatrol" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "autoreview" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "bot" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "bureaucrat" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "director" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "directors" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "editor" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "reviewer" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "sysop" msgstr "" -#: rcgcdw.py:745 +#: rcgcdw.py:749 msgid "wiki_guardian" msgstr "" diff --git a/rcgcdw.py b/rcgcdw.py index c03a968..6d465aa 100644 --- a/rcgcdw.py +++ b/rcgcdw.py @@ -104,7 +104,7 @@ def webhook_formatter(action, STATIC, **params): params["user"] = "{author} ({amount})".format(author=params["user"], amount=recent_changes.map_ips[params["user"]]) else: author_url = "https://{wiki}.gamepedia.com/User:{user}".format(wiki=settings["wiki"], user=params["user"].replace(" ", "_")) - if action in (1, 37): #edit or new page + if action in ("edit", "new"): #edit or new page editsize = params["size"] print (editsize) if editsize > 0: @@ -120,8 +120,8 @@ def webhook_formatter(action, STATIC, **params): elif editsize == 0: colornumber = 8750469 link = "https://{wiki}.gamepedia.com/index.php?title={article}&curid={pageid}&diff={diff}&oldid={oldrev}".format(wiki=settings["wiki"], pageid=params["pageid"], diff=params["diff"], oldrev=params["oldrev"], article=params["title"].replace(" ", "_")) - embed["title"] = "{article} ({new}{minor}{editsize})".format(article=params["title"], editsize="+"+str(editsize) if editsize>0 else editsize, new= _("(N!) ") if action == 37 else "", minor=_("m ") if action == 1 and params["minor"] else "") - elif action == 5: #sending files + embed["title"] = "{article} ({new}{minor}{editsize})".format(article=params["title"], editsize="+"+str(editsize) if editsize>0 else editsize, new= _("(N!) ") if action == "new" else "", minor=_("m ") if action == "edit" and params["minor"] else "") + elif action in ("upload/overwrite", "upload/upload"): #sending files license = None urls = safe_read(recent_changes.safe_request("https://{wiki}.gamepedia.com/api.php?action=query&format=json&prop=imageinfo&list=&meta=&titles={filename}&iiprop=timestamp%7Curl&iilimit=2".format(wiki=settings["wiki"], filename=params["title"])), "query", "pages") undolink = "" @@ -166,48 +166,48 @@ def webhook_formatter(action, STATIC, **params): if additional_info_retrieved: embed["fields"] = [{"name": _("Options"), "value": _("([preview]({link}))").format(link=embed["image"]["url"])}] params["desc"] = _("{desc}\nLicense: {license}").format(desc=params["desc"], license=license if license is not None else "?") - elif action == 6: + elif action == "delete/delete": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Deleted page {article}").format(article=params["title"]) - elif action == 7: + elif action == "delete/delete_redir": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Deleted redirect {article} by overwriting").format(article=params["title"]) - elif action == 14: + elif action == "move/move": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["target"].replace(" ", "_")) params["desc"] = "{supress}. {desc}".format(desc=params["desc"], supress=_("No redirect has been made") if params["supress"] == True else _("A redirect has been made")) embed["title"] = _("Moved {article} to {target}").format(article = params["title"], target=params["target"]) - elif action == 15: + elif action == "move/move_redir": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["target"].replace(" ", "_")) embed["title"] = _("Moved {article} to {title} over redirect").format(article=params["title"], title=params["target"]) - elif action == 16: + elif action == "protect/move_prot": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Moved protection settings from {article} to {title}").format(article=params["title"], title=params["target"]) - elif action == 17: + elif action == "block/block": link = "https://{wiki}.gamepedia.com/{user}".format(wiki=settings["wiki"], user=params["blocked_user"].replace(" ", "_").replace(')', '\)')) user = params["blocked_user"].split(':')[1] time =_( "infinity and beyond") if params["duration"] == "infinite" else params["duration"] embed["title"] = _("Blocked {blocked_user} for {time}").format(blocked_user=user, time=time) - elif action == 19: + elif action == "block/reblock": link = "https://{wiki}.gamepedia.com/{user}".format(wiki=settings["wiki"], user=params["blocked_user"].replace(" ", "_").replace(')', '\)')) user = params["blocked_user"].split(':')[1] embed["title"] = _("Changed block settings for {blocked_user}").format(blocked_user=user) - elif action == 18: + elif action == "block/unblock": link = "https://{wiki}.gamepedia.com/{user}".format(wiki=settings["wiki"], user=params["blocked_user"].replace(" ", "_").replace(')', '\)')) user = params["blocked_user"].split(':')[1] embed["title"] = _("Unblocked {blocked_user}").format(blocked_user=user) - elif action == 25: + elif action == "curseprofile/comment-created": link = "https://{wiki}.gamepedia.com/Special:CommentPermalink/{commentid}".format(wiki=settings["wiki"], commentid=params["commentid"]) #link = "https://{wiki}.gamepedia.com/UserProfile:{target}".format(wiki=settings["wiki"], target=params["target"].replace(" ", "_").replace(')', '\)')) old way of linking embed["title"] = _("Left a comment on {target}'s profile").format(target=params["target"]) - elif action == 29: + elif action == "curseprofile/comment-replied": #link = "https://{wiki}.gamepedia.com/UserProfile:{target}".format(wiki=settings["wiki"], target=params["target"].replace(" ", "_").replace(')', '\)')) link = "https://{wiki}.gamepedia.com/Special:CommentPermalink/{commentid}".format(wiki=settings["wiki"], commentid=params["commentid"]) embed["title"] = _("Replied to a comment on {target}'s profile").format(target=params["target"]) - elif action == 26: + elif action == "curseprofile/comment-edited": #link = "https://{wiki}.gamepedia.com/UserProfile:{target}".format(wiki=settings["wiki"], target=params["target"].replace(" ", "_").replace(')', '\)')) link = "https://{wiki}.gamepedia.com/Special:CommentPermalink/{commentid}".format(wiki=settings["wiki"], commentid=params["commentid"]) embed["title"] = _("Edited a comment on {target}'s profile").format(target=params["target"]) - elif action == 28: + elif action == "curseprofile/profile-edited": link = "https://{wiki}.gamepedia.com/UserProfile:{target}".format(wiki=settings["wiki"], target=params["target"].replace(" ", "_").replace(')', '\)')) if params["field"] == "profile-location": field = _("Location") @@ -235,13 +235,18 @@ def webhook_formatter(action, STATIC, **params): field = _("Unknown") embed["title"] = _("Edited {target}'s profile").format(target=params["target"]) params["desc"] = _("{field} field changed to: {desc}").format(field=field, desc=params["desc"]) - elif action == 27: + elif action == "curseprofile/comment-deleted": link = "https://{wiki}.gamepedia.com/Special:CommentPermalink/{commentid}".format(wiki=settings["wiki"], commentid=params["commentid"]) #link = "https://{wiki}.gamepedia.com/UserProfile:{target}".format(wiki=settings["wiki"], target=params["target"].replace(" ", "_").replace(')', '\)')) embed["title"] = _("Deleted a comment on {target}'s profile").format(target=params["target"]) - elif action == 20: + elif action in ("rights/rights", "rights/autopromote"): link = "https://{wiki}.gamepedia.com/User:".format(wiki=settings["wiki"])+params["title"].split(":")[1] - embed["title"] = _("Changed group membership for {target}").format(target=params["title"].split(":")[1]) + if action == "rights/rights": + embed["title"] = _("Changed group membership for {target}").format(target=params["title"].split(":")[1]) + else: + params["user"] = _("System") + author_url = "" + embed["title"] = _("{target} got autopromoted to a new usergroup").format(target=params["title"].split(":")[1]) if len(params["old_groups"]) < len(params["new_groups"]): embed["thumbnail"]["url"] = "https://i.imgur.com/WnGhF5g.gif" old_groups = [] @@ -256,75 +261,75 @@ def webhook_formatter(action, STATIC, **params): new_groups = [_("none")] reason = ": {desc}".format(desc=params["desc"]) if params["desc"]!=_("No description provided") else "" params["desc"] = _("Groups changed from {old_groups} to {new_groups}{reason}").format(old_groups=", ".join(old_groups), new_groups=', '.join(new_groups), reason=reason) - elif action == 2: + elif action == "protect/protect": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Protected {target}").format(target=params["title"]) params["desc"] = params["settings"] + " | " + params["desc"] - elif action == 3: + elif action == "protect/modify": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Changed protection level for {article}").format(article=params["title"]) params["desc"] = params["settings"] + " | " + params["desc"] - elif action == 4: + elif action == "protect/unprotect": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Removed protection from {article}").format(article=params["title"]) - elif action == 9: + elif action == "delete/revision": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Changed visibility of revision(s) on page {article} ").format(article=params["title"]) - elif action == 11: + elif action == "import/upload": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Imported {article} with {count} revision(s)").format(article=params["title"], count=params["amount"]) - elif action == 8: + elif action == "delete/restore": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Restored {article}").format(article=params["title"]) - elif action == 10: + elif action == "delete/event": link = "https://{wiki}.gamepedia.com/Special:RecentChanges".format(wiki=settings["wiki"]) embed["title"] = _("Changed visibility of log events") - elif action == 12: + elif action == "import/interwiki": link = "https://{wiki}.gamepedia.com/Special:RecentChanges".format(wiki=settings["wiki"]) embed["title"] = _("Imported interwiki") - elif action == 21: + elif action == "abusefilter/modify": link = "https://{wiki}.gamepedia.com/Special:RecentChanges".format(wiki=settings["wiki"]) embed["title"] = _("Edited abuse filter number {number}").format(number=params["filternr"]) - elif action == 13: + elif action == "merge/merge": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Merged revision histories of {article} into {dest}").format(article=params["title"], dest=params["destination"]) - elif action == 22: + elif action == "interwiki/iw_add": link = "https://{wiki}.gamepedia.com/Special:Interwiki".format(wiki=settings["wiki"]) embed["title"] = _("Added an entry to the interwiki table") params["desc"] =_("Prefix: {prefix}, website: {website} | {desc}").format(desc=params["desc"], prefix=params["prefix"], website=params["website"]) - elif action == 23: + elif action == "interwiki/iw_edit": link = "https://{wiki}.gamepedia.com/Special:Interwiki".format(wiki=settings["wiki"]) embed["title"] = _("Edited an entry in interwiki table") params["desc"] =_("Prefix: {prefix}, website: {website} | {desc}").format(desc=params["desc"], prefix=params["prefix"], website=params["website"]) - elif action == 24: + elif action == "interwiki/iw_delete": link = "https://{wiki}.gamepedia.com/Special:Interwiki".format(wiki=settings["wiki"]) embed["title"] = _("Deleted an entry in interwiki table") params["desc"] =_("Prefix: {prefix} | {desc}").format(desc=params["desc"], prefix=params["prefix"]) - elif action == 30: + elif action == "contentmodel/change": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Changed the content model of the page {article}").format(article=params["title"]) params["desc"] = _("Model changed from {old} to {new}: {reason}").format(old=params["oldmodel"], new=params["newmodel"], reason=params["desc"]) - elif action == 31: + elif action == "sprite/sprite": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Edited the sprite for {article}").format(article=params["title"]) - elif action == 32: + elif action == "sprite/sheet": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Created the sprite sheet for {article}").format(article=params["title"]) - elif action == 33: + elif action == "sprite/slice": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Edited the slice for {article}").format(article=params["title"]) - elif action == 34: + elif action == "managetags/create": link = "https://{wiki}.gamepedia.com/Special:Tags" embed["title"] = _("Created a tag \"{tag}\"").format(tag=params["additional"]["tag"]) recent_changes.update_tags() - elif action == 35: + elif action == "managetags/delete": link = "https://{wiki}.gamepedia.com/Special:Tags" embed["title"] = _("Deleted a tag \"{tag}\"").format(tag=params["additional"]["tag"]) recent_changes.update_tags() - elif action == 36: + elif action == "managetags/activate": link = "https://{wiki}.gamepedia.com/Special:Tags" embed["title"] = _("Activated a tag \"{tag}\"").format(tag=params["additional"]["tag"]) - elif action == 38: + elif action == "managetags/deactivate": link = "https://{wiki}.gamepedia.com/Special:Tags" embed["title"] = _("Deactivated a tag \"{tag}\"").format(tag=params["additional"]["tag"]) else: @@ -378,11 +383,9 @@ def first_pass(change): #I've decided to split the embed formatter and change ha parsedcomment = _("No description provided") if change["type"] == "edit" and "edit" not in settings["ignored"]: STATIC_VARS = {**STATIC_VARS ,**{"color": settings["appearance"]["edit"]["color"], "icon": settings["appearance"]["edit"]["icon"]}} - webhook_formatter(1, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, oldrev=change["old_revid"], pageid=change["pageid"], diff=change["revid"], size=change["newlen"]-change["oldlen"], minor= True if "minor" in change else False) + webhook_formatter("edit", STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, oldrev=change["old_revid"], pageid=change["pageid"], diff=change["revid"], size=change["newlen"]-change["oldlen"], minor= True if "minor" in change else False) elif change["type"] == "log": - logtype = change["logtype"] - logaction = change["logaction"] - combination = "{logtype}/{logaction}".format(logtype=logtype, logaction=logaction) + combination = "{logtype}/{logaction}".format(logtype=change["logtype"], logaction=change["logaction"]) if combination in settings["ignored"]: return logging.debug("combination is {}".format(combination)) @@ -391,82 +394,84 @@ def first_pass(change): #I've decided to split the embed formatter and change ha except KeyError: STATIC_VARS = {**STATIC_VARS ,**{"color": "", "icon": ""}} logging.error("No value in the settings has been given for {}".format(combination)) - if logtype=="protect" and logaction=="protect": - webhook_formatter(2, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, settings=change["logparams"]["description"]) - elif logtype=="protect" and logaction=="modify": - webhook_formatter(3, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, settings=change["logparams"]["description"]) - elif logtype=="protect" and logaction=="unprotect": - webhook_formatter(4, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) - elif logtype=="upload" and logaction=="overwrite": - webhook_formatter(5, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, overwrite=True) - elif logtype=="upload": - webhook_formatter(5, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, overwrite=False) - elif logtype=="delete" and logaction=="delete": - webhook_formatter(6, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) - elif logtype=="delete" and logaction=="delete_redir": - webhook_formatter(7, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) - elif logtype=="delete" and logaction=="restore": - webhook_formatter(8, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) - elif logtype=="delete" and logaction=="revision": - webhook_formatter(9, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) - elif logtype=="delete" and logaction=="event": - webhook_formatter(10, STATIC_VARS, user=change["user"], desc=parsedcomment) - elif logtype=="import" and logaction=="upload": - webhook_formatter(11, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, amount=change["logparams"]["count"]) - elif logtype=="import" and logaction=="interwiki": - webhook_formatter(12, STATIC_VARS, user=change["user"], desc=parsedcomment) - elif logtype=="merge" : - webhook_formatter(13, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, destination=change["logparams"]["dest_title"]) - elif logtype=="move" and logaction=="move": - webhook_formatter(14, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, supress=True if "suppressredirect" in change["logparams"] else False, target=change["logparams"]['target_title']) - elif logtype=="move" and logaction=="move_redir": - webhook_formatter(15, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, target=change["logparams"]["target_title"]) - elif logtype=="protect" and logaction=="move_prot": - webhook_formatter(16, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, target=change["logparams"]["oldtitle_title"]) - elif logtype=="block" and logaction=="block": - webhook_formatter(17, STATIC_VARS, user=change["user"], blocked_user=change["title"], desc=parsedcomment, duration=change["logparams"]["duration"]) - elif logtype=="block" and logaction=="unblock": - webhook_formatter(18, STATIC_VARS, user=change["user"], blocked_user=change["title"], desc=parsedcomment) - elif logtype=="block": - webhook_formatter(19, STATIC_VARS, user=change["user"], blocked_user=change["title"], desc=parsedcomment) - elif logtype=="rights": - webhook_formatter(20, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, old_groups=change["logparams"]["oldgroups"], new_groups=change["logparams"]["newgroups"]) - elif logtype=="abusefilter": - webhook_formatter(21, STATIC_VARS, user=change["user"], desc=parsedcomment, filternr=change["logparams"]['1']) - elif logtype=="interwiki" and logaction=="iw_add": - webhook_formatter(22, STATIC_VARS, user=change["user"], desc=parsedcomment, prefix=change["logparams"]['0'], website=change["logparams"]['1']) - elif logtype=="interwiki" and logaction=="iw_edit": - webhook_formatter(23, STATIC_VARS, user=change["user"], desc=parsedcomment, prefix=change["logparams"]['0'], website=change["logparams"]['1']) - elif logtype=="interwiki" and logaction=="iw_delete": - webhook_formatter(24, STATIC_VARS, user=change["user"], desc=parsedcomment, prefix=change["logparams"]['0']) - elif logtype=="curseprofile" and logaction=="comment-created": - webhook_formatter(25, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], commentid=change["logparams"]["0"]) - elif logtype=="curseprofile" and logaction=="comment-edited": - webhook_formatter(26, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], commentid=change["logparams"]["0"]) - elif logtype=="curseprofile" and logaction=="comment-deleted": - webhook_formatter(27, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], commentid=change["logparams"]["0"]) - elif logtype=="curseprofile" and logaction=="profile-edited": - webhook_formatter(28, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], field=change["logparams"]['0'], desc=change["parsedcomment"]) - elif logtype=="curseprofile" and logaction=="comment-replied": - webhook_formatter(29, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], commentid=change["logparams"]["0"]) - elif logtype=="contentmodel" and logaction=="change": - webhook_formatter(30, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, oldmodel=change["logparams" ]["oldmodel"], newmodel=change["logparams" ]["newmodel"]) - elif logtype=="sprite" and logaction=="sprite": - webhook_formatter(31, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) - elif logtype=="sprite" and logaction=="sheet": - webhook_formatter(32, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) - elif logtype=="sprite" and logaction=="slice": - webhook_formatter(33, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) - elif logtype=="managetags" and logaction=="create": - webhook_formatter(34, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, additional=change["logparams"]) - elif logtype=="managetags" and logaction=="delete": - webhook_formatter(35, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, additional=change["logparams"]) - elif logtype=="managetags" and logaction=="activate": - webhook_formatter(36, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, additional=change["logparams"]) - elif logtype=="managetags" and logaction=="deactivate": - webhook_formatter(38, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, additional=change["logparams"]) - elif logtype=="tag" and logaction=="update": - webhook_formatter(39, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + if combination == "protect/protect" + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, settings=change["logparams"]["description"]) + elif combination=="protect/modify": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, settings=change["logparams"]["description"]) + elif combination=="protect/unprotect": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + elif combination=="upload/overwrite": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, overwrite=True) + elif combination=="upload/upload": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, overwrite=False) + elif combination=="delete/delete": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + elif combination=="delete/delete_redir": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + elif combination=="delete/restore": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + elif combination=="delete/revision": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + elif combination=="delete/event": + webhook_formatter(combination, STATIC_VARS, user=change["user"], desc=parsedcomment) + elif combination=="import/upload": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, amount=change["logparams"]["count"]) + elif combination=="import/interwiki": + webhook_formatter(combination, STATIC_VARS, user=change["user"], desc=parsedcomment) + elif combination=="merge/merge" : + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, destination=change["logparams"]["dest_title"]) + elif combination=="move/move": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, supress=True if "suppressredirect" in change["logparams"] else False, target=change["logparams"]['target_title']) + elif combination=="move/move_redir": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, target=change["logparams"]["target_title"]) + elif combination=="protect/move_prot": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, target=change["logparams"]["oldtitle_title"]) + elif combination=="block/block": + webhook_formatter(combination, STATIC_VARS, user=change["user"], blocked_user=change["title"], desc=parsedcomment, duration=change["logparams"]["duration"]) + elif combination=="block/unblock": + webhook_formatter(combination, STATIC_VARS, user=change["user"], blocked_user=change["title"], desc=parsedcomment) + elif combination=="block/reblock": + webhook_formatter(combination, STATIC_VARS, user=change["user"], blocked_user=change["title"], desc=parsedcomment) + elif combination=="rights/rights": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, old_groups=change["logparams"]["oldgroups"], new_groups=change["logparams"]["newgroups"]) + elif combination=="rights/autopromote": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, old_groups=change["logparams"]["oldgroups"], new_groups=change["logparams"]["newgroups"]) + elif combination=="abusefilter/modify": + webhook_formatter(combination, STATIC_VARS, user=change["user"], desc=parsedcomment, filternr=change["logparams"]['1']) + elif combination=="interwiki/iw_add": + webhook_formatter(combination, STATIC_VARS, user=change["user"], desc=parsedcomment, prefix=change["logparams"]['0'], website=change["logparams"]['1']) + elif combination=="interwiki/iw_edit": + webhook_formatter(combination, STATIC_VARS, user=change["user"], desc=parsedcomment, prefix=change["logparams"]['0'], website=change["logparams"]['1']) + elif combination=="interwiki/iw_delete": + webhook_formatter(combination, STATIC_VARS, user=change["user"], desc=parsedcomment, prefix=change["logparams"]['0']) + elif combination=="curseprofile/comment-created": + webhook_formatter(combination, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], commentid=change["logparams"]["0"]) + elif combination=="curseprofile/comment-edited": + webhook_formatter(combination, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], commentid=change["logparams"]["0"]) + elif combination=="curseprofile/comment-deleted": + webhook_formatter(combination, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], commentid=change["logparams"]["0"]) + elif combination=="curseprofile/profile-edited": + webhook_formatter(combination, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], field=change["logparams"]['0'], desc=change["parsedcomment"]) + elif combination=="curseprofile/comment-replied": + webhook_formatter(combination, STATIC_VARS, user=change["user"], target=change["title"].split(':')[1], commentid=change["logparams"]["0"]) + elif combination=="contentmodel/change": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, oldmodel=change["logparams" ]["oldmodel"], newmodel=change["logparams" ]["newmodel"]) + elif combination=="sprite/sprite": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + elif combination=="sprite/sheet": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + elif combination=="sprite/slice": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + elif combination=="managetags/create": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, additional=change["logparams"]) + elif combination=="managetags/delete": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, additional=change["logparams"]) + elif combination=="managetags/activate": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, additional=change["logparams"]) + elif combination=="managetags/deactivate": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, additional=change["logparams"]) + elif combination=="tag/update": + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) else: logging.warning("No entry matches given change!") print (change) @@ -478,7 +483,7 @@ def first_pass(change): #I've decided to split the embed formatter and change ha return elif change["type"] == "new" and "new" not in settings["ignored"]: #new page STATIC_VARS = {**STATIC_VARS ,**{"color": settings["appearance"]["new"]["color"], "icon": settings["appearance"]["new"]["icon"]}} - webhook_formatter(37, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, oldrev=change["old_revid"], pageid=change["pageid"], diff=change["revid"], size=change["newlen"]) + webhook_formatter("new", STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, oldrev=change["old_revid"], pageid=change["pageid"], diff=change["revid"], size=change["newlen"]) def day_overview_request(): logging.info("Fetching daily overview... This may take up to 30 seconds!") From 0a440db6cd7f148e83ab69565478bcdfdf083abd Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 12:24:08 +0200 Subject: [PATCH 05/11] Added #15 --- locale/de/LC_MESSAGES/rcgcdw.mo | Bin 6958 -> 7788 bytes locale/de/LC_MESSAGES/rcgcdw.po | 349 +++++++++++++------- locale/en/LC_MESSAGES/en.mo | Bin 6940 -> 0 bytes locale/en/LC_MESSAGES/rcgcdw.mo | Bin 0 -> 7418 bytes locale/en/LC_MESSAGES/{en.po => rcgcdw.po} | 356 +++++++++++--------- locale/pl/LC_MESSAGES/rcgcdw.mo | Bin 6995 -> 8061 bytes locale/pl/LC_MESSAGES/rcgcdw.po | 357 ++++++++++++++------- rcgcdw.pot | 349 +++++++++++--------- rcgcdw.py | 16 +- 9 files changed, 881 insertions(+), 546 deletions(-) delete mode 100644 locale/en/LC_MESSAGES/en.mo create mode 100644 locale/en/LC_MESSAGES/rcgcdw.mo rename locale/en/LC_MESSAGES/{en.po => rcgcdw.po} (65%) diff --git a/locale/de/LC_MESSAGES/rcgcdw.mo b/locale/de/LC_MESSAGES/rcgcdw.mo index a1bfff21a67eadf64fefcfb85ff1069d9ba61361..e1743768c6ccce09b0fdcabae10ce0e8297f818d 100644 GIT binary patch delta 2797 zcmb8vTWnNC9LMq5f|Np`r3DHt!a%vS&{A5irIbrST5eKXE{Z5@+hen7yQiGpEkZ*| z01*vp;t?L?k`ReTg9fQJq7XG26=N{bC>RrqiI}v~dF6sI%Yw$5cYak{NMT3kvh)ag>k5)6(nDMv^Kk773VUf4))P^2#9${|bBJ9H~oX3ZC%x|jcOvUF>TlOxN;U_o?`%n|k z;5Fo0oQrLkhi9+=FC))3KcU|AchuJZg<9AcwmB6`Q1dLrE`6|^PBCsnt?USD#V3#) znU`=TUP*p_8}){%nZ~G0vT!htM~$0^TF6Y)0vDocq8?Q%t*C|U&t(5Cog>`fndar> z2NzK*d>=K@r%As;>eJjvUjKml-YwJ{|AAUi3I(AeO+!tXfhm}eTIh7txLKpve|>Qt zH`ryf7_}ocXt4o{@F32>^Y}!-nCp1AKIiEw(*3CCyogHOIUJ3>$XCs6)J_iJrfRDI zb-k>Mj&d4A(qs-LuYKfY%$um4`55QoH7vp5RICj9~xkF&{O-Zd9?niVLs@RjfDBVs38Y^i*I4*E>=7 zPvT0vj4H+el_*D|7M6$eb^a^ps2Fyks&_9k#vDdf{TbAoe}>w!UR26%<08!AXH&nN zwfxf?wxNo!6E)!h)Ehs8dco7E6ug1cnBRO$N4XAAQA$M?vKeLq#&d`|1=Xkt>XO$x zleXX>?suTZ??t`Pp`=ft7IZx6Db#b$VwaA^1v;wU9@M~hl3(~R=@+O4-9XlA{=_02 zOQKbLD=~m-RS5?ER}b_Ob)l4~DYXwN|7u!NL)q#$qc4-MQh0x9@&)WJmgxWS@C!rr9)k6IJ^KqjtXsQEFUc4!%>xc?sPW%o( zP*_9g2&&Z*DlWC9gigji#0KI%LUl8Z*h=&_vS%J39wr`9!Bi4z9N~Cj=(tTHCKKz4 z?L>duLT7pMLO(boB#bTS+-HN0(U2Q1H2#yR6S|M3_64%78@BDiX2*60 zy=bVh)!AqLU1>R4oxwIY7LM+-p3@PEFeuXPr+t*-&q*%~MEvdPr~O~j^Sk@f-wF(= z-xG;CZT^Lk7nTNNQMWx9_1spYuEsjMO@kXX4KdFN#u~j~)HH=Wr;!f_IuYYEg}C82 zX5>#ujBz{@*%NWw&F)Z3Xh(A_=rx6cVgIp=%30B%*X*#cW;bf%^LcKY8+Dp&)U`ny zc6QrX#POOvH`eZdnXz43oC}PuTCiJ*cB~_ zosDmE;=*C0?dDA@|NV{b+EHs#{1e%^0qd{J&P(rL`}?=rKb1W$V7q&=(*}*uGd;V- z@wD~+3uAky8a=dwowoJSSh&dv58Uu-RivXu=@{rFv+;E9q^SehSkcrL3Wp+5M)1|GWW`qZXXRY(!lKUqla|4GGyehK CM31`w delta 2160 zcmY+^e@xVM9LMp`9Y{cWcz1z;aD5LlI5LFu0L9A$&!m*dC|v8ucEV)`4)u=k55k+S zVJ%mGd`0J$+LnuKD|P3bZOzr@Set86v1R|bn(N1!Z7u&Q*y{N@zgP3Kdw(CF@2}6# z_xEl_KW@uh_Z3bV%66ifm~$JG!NZFFn~MpKAc1~ z{66xi`3yDFtH{rM&tVPzggy)`Hs(PsbqkgI@dad(<{*agO+A2@Q8WC_aRFCz?xFSN z*o6)FB67k8Q8$`W0gyf~! zkLvIMYT%P-;k&4TeU9}whnrpOJ<_*{v3$DUhidmF4C5{@>wgcGQ(WL@E^yF{XHYrt zt8@MjYR`kTl4}rk-iJ$Z4C%`pLT$}4T!mLr1DZ!|Q600<^{u!TU(HaVZF3QoY+s;- zf1;Ak&*(J34i4JWUR07ki(#BVCEq#6S)?!X2exAYnca%(Q19(UCGC`B<^mNp@U8Q} zEhG)hGN!MYu0ZW+1h--*@`!m0m7J%s6=zXcDY^S2tRMxL{ zE^2a55n5essfxCoZPWb!FWNWlaSfqlQt7|V9Y=O1x0hPxCkZ7~zC@|8kh$cu@)uE` zT{E$Xc!qeCxTF8>+=bhRcBj79k>vibJV8y{^oVn%12+@;V^X5!OD7d2u99^H|pJ&98OMH$+Wd2J}_*(vL|St^{%%IeanlRTdi<&N4UkV_gVRq zh~4Y^#optu$R77^a91aHCQ?>^B9*4s#E3Pvd&C-#r$&vGU5{G(l8HfDN~BVW diff --git a/locale/de/LC_MESSAGES/rcgcdw.po b/locale/de/LC_MESSAGES/rcgcdw.po index 965f9c9..c681693 100644 --- a/locale/de/LC_MESSAGES/rcgcdw.po +++ b/locale/de/LC_MESSAGES/rcgcdw.po @@ -5,8 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2018-07-05 20:21+0200\n" -"PO-Revision-Date: 2018-07-05 20:24+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-12 11:29+0200\n" +"PO-Revision-Date: 2018-07-12 12:10+0200\n" "Last-Translator: MarkusRost\n" "Language-Team: \n" "Language: de\n" @@ -15,40 +16,46 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 2.0.8\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: rcgcdw.py:126 +#: rcgcdw.py:124 msgid "(N!) " msgstr "(N!) " -#: rcgcdw.py:126 +#: rcgcdw.py:124 msgid "m " msgstr "K " -#: rcgcdw.py:144 -msgid "([preview]({link}) | [undo]({undolink}))" -msgstr "([Vorschau]({link}) | [zurücksetzen]({undolink}))" - -#: rcgcdw.py:144 rcgcdw.py:170 +#: rcgcdw.py:142 rcgcdw.py:168 msgid "Options" msgstr "Optionen" -#: rcgcdw.py:145 +#: rcgcdw.py:142 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "([Vorschau]({link}) | [zurücksetzen]({undolink}))" + +#: rcgcdw.py:143 +#, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Neue Dateiversion {name}" -#: rcgcdw.py:147 +#: rcgcdw.py:145 +#, python-brace-format msgid "Uploaded {name}" msgstr "Neue Datei {name}" -#: rcgcdw.py:160 +#: rcgcdw.py:158 msgid "**No license!**" msgstr "**Keine Lizenz!**" -#: rcgcdw.py:170 +#: rcgcdw.py:168 +#, python-brace-format msgid "([preview]({link}))" msgstr "([Vorschau]({link}))" -#: rcgcdw.py:171 +#: rcgcdw.py:169 +#, python-brace-format msgid "" "{desc}\n" "License: {license}" @@ -56,311 +63,407 @@ msgstr "" "{desc}\n" "Lizenz: {license}" -#: rcgcdw.py:174 +#: rcgcdw.py:172 +#, python-brace-format msgid "Deleted page {article}" msgstr "Löschte {article}" -#: rcgcdw.py:177 +#: rcgcdw.py:175 +#, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "Löschte die Weiterleitung {article} um Platz zu machen" -#: rcgcdw.py:180 -msgid "A redirect has been made" -msgstr "Eine Weiterleitung wurde erstellt" - -#: rcgcdw.py:180 +#: rcgcdw.py:178 msgid "No redirect has been made" msgstr "Die Erstellung einer Weiterleitung wurde unterdrückt" -#: rcgcdw.py:181 +#: rcgcdw.py:178 +msgid "A redirect has been made" +msgstr "Eine Weiterleitung wurde erstellt" + +#: rcgcdw.py:179 +#, python-brace-format msgid "Moved {article} to {target}" msgstr "Verschob {article} nach {target}" -#: rcgcdw.py:184 +#: rcgcdw.py:182 +#, python-brace-format msgid "Moved {article} to {title} over redirect" msgstr "Verschob {article} nach {title} und überschrieb eine Weiterleitung" -#: rcgcdw.py:187 +#: rcgcdw.py:185 +#, python-brace-format msgid "Moved protection settings from {article} to {title}" msgstr "Verschob die Schutzeinstellungen von {article} nach {title}" -#: rcgcdw.py:191 +#: rcgcdw.py:189 msgid "infinity and beyond" msgstr "alle Ewigkeit" -#: rcgcdw.py:192 +#: rcgcdw.py:190 +#, python-brace-format msgid "Blocked {blocked_user} for {time}" msgstr "Sperrte {blocked_user} für {time}" -#: rcgcdw.py:196 +#: rcgcdw.py:194 +#, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Änderte die Sperreinstellungen für {blocked_user}" -#: rcgcdw.py:200 +#: rcgcdw.py:198 +#, python-brace-format msgid "Unblocked {blocked_user}" msgstr "Hob die Sperre von {blocked_user} auf" -#: rcgcdw.py:204 +#: rcgcdw.py:202 +#, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Hinterließ ein Kommentar auf dem Profil von {target}" -#: rcgcdw.py:208 +#: rcgcdw.py:206 +#, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Antwortete auf ein Kommentar auf dem Profil von {target}" -#: rcgcdw.py:212 +#: rcgcdw.py:210 +#, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Bearbeitete ein Kommentar auf dem Profil von {target}" -#: rcgcdw.py:216 +#: rcgcdw.py:214 msgid "Location" msgstr "Wohnort" -#: rcgcdw.py:218 +#: rcgcdw.py:216 msgid "About me" msgstr "\"Über mich\"-Abschnitt" -#: rcgcdw.py:220 +#: rcgcdw.py:218 msgid "Google link" msgstr "Google-Konto" -#: rcgcdw.py:222 +#: rcgcdw.py:220 msgid "Facebook link" msgstr "Facebook-Seite" -#: rcgcdw.py:224 +#: rcgcdw.py:222 msgid "Twitter link" msgstr "Twitter-Benutzernamen" -#: rcgcdw.py:226 +#: rcgcdw.py:224 msgid "Reddit link" msgstr "Reddit-Benutzernamen" -#: rcgcdw.py:228 +#: rcgcdw.py:226 msgid "Twitch link" msgstr "Twitch-Account" -#: rcgcdw.py:230 +#: rcgcdw.py:228 msgid "PSN link" msgstr "PSN-Account" -#: rcgcdw.py:232 +#: rcgcdw.py:230 msgid "VK link" msgstr "VK-Account" -#: rcgcdw.py:234 +#: rcgcdw.py:232 msgid "XVL link" msgstr "Xbox-Live-Tag" -#: rcgcdw.py:236 +#: rcgcdw.py:234 msgid "Steam link" msgstr "Steam-Account" -#: rcgcdw.py:238 +#: rcgcdw.py:236 msgid "Unknown" msgstr "Unbekannt" -#: rcgcdw.py:239 +#: rcgcdw.py:237 +#, python-brace-format msgid "Edited {target}'s profile" msgstr "Bearbeitete das Profil von {target}" -#: rcgcdw.py:240 +#: rcgcdw.py:238 +#, python-brace-format msgid "{field} field changed to: {desc}" msgstr "{field} geändert zu: {desc}" -#: rcgcdw.py:244 +#: rcgcdw.py:242 +#, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Löschte ein Kommentar auf dem Profil von {target}" -#: rcgcdw.py:247 +#: rcgcdw.py:246 +#, python-brace-format msgid "Changed group membership for {target}" msgstr "Änderte die Gruppenzugehörigkeit von {target}" -#: rcgcdw.py:251 rcgcdw.py:253 +#: rcgcdw.py:248 +msgid "System" +msgstr "System" + +#: rcgcdw.py:250 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "{target} got autopromoted to a new usergroup" + +#: rcgcdw.py:260 rcgcdw.py:262 msgid "none" msgstr "keine" -#: rcgcdw.py:254 rcgcdw.py:376 +#: rcgcdw.py:263 rcgcdw.py:385 msgid "No description provided" msgstr "Keine Zusammenfassung angegeben" -#: rcgcdw.py:255 +#: rcgcdw.py:264 +#, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" -msgstr "" -"Änderte die Gruppenzugehörigkeit von {old_groups} auf {new_groups}{reason}" +msgstr "Änderte die Gruppenzugehörigkeit von {old_groups} auf {new_groups}{reason}" -#: rcgcdw.py:258 +#: rcgcdw.py:267 +#, python-brace-format msgid "Protected {target}" msgstr "Schützte {target}" -#: rcgcdw.py:262 +#: rcgcdw.py:271 +#, python-brace-format msgid "Changed protection level for {article}" msgstr "Änderte den Schutzstatus von {article}" -#: rcgcdw.py:266 +#: rcgcdw.py:275 +#, python-brace-format msgid "Removed protection from {article}" msgstr "Entfernte den Schutz von {article}" -#: rcgcdw.py:269 -msgid "Changed visibility of revision(s) on page {article} " -msgstr "Änderte die Sichtbarkeit einiger Versionen von {article}" +#: rcgcdw.py:279 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "Änderte die Sichtbarkeit einer Versionen von {article} " +msgstr[1] "Änderte die Sichtbarkeit von {amount} Versionen von {article} " -#: rcgcdw.py:272 -msgid "Imported {article} with {count} revision(s)" -msgstr "Importierte {article} mit {count} Versionen" +#: rcgcdw.py:282 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "Importierte {article} mit einer Version" +msgstr[1] "Importierte {article} mit {count} Versionen" -#: rcgcdw.py:275 +#: rcgcdw.py:285 +#, python-brace-format msgid "Restored {article}" msgstr "Stellte {article} wieder her" -#: rcgcdw.py:278 +#: rcgcdw.py:288 msgid "Changed visibility of log events" msgstr "Änderte die Sichtbarkeit eines Logbucheintrags" -#: rcgcdw.py:281 +#: rcgcdw.py:291 msgid "Imported interwiki" msgstr "Importierte Interwiki" -#: rcgcdw.py:284 +#: rcgcdw.py:294 +#, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Änderte Missbrauchsfilter {number}" -#: rcgcdw.py:287 +#: rcgcdw.py:297 +#, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Vereinigte Versionsgeschichten von {article} in {dest}" -#: rcgcdw.py:290 +#: rcgcdw.py:300 msgid "Added an entry to the interwiki table" msgstr "Fügte ein Interwiki-Präfix hinzu" -#: rcgcdw.py:291 rcgcdw.py:295 +#: rcgcdw.py:301 rcgcdw.py:305 +#, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Präfix: {prefix}, URL: {website} | {desc}" -#: rcgcdw.py:294 +#: rcgcdw.py:304 msgid "Edited an entry in interwiki table" msgstr "Änderte ein Interwiki-Präfix" -#: rcgcdw.py:298 +#: rcgcdw.py:308 msgid "Deleted an entry in interwiki table" msgstr "Entfernte ein Interwiki-Präfix" -#: rcgcdw.py:299 +#: rcgcdw.py:309 +#, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Präfix: {prefix} | {desc}" -#: rcgcdw.py:302 +#: rcgcdw.py:312 +#, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Änderte das Inhaltsmodell von {article}" -#: rcgcdw.py:303 +#: rcgcdw.py:313 +#, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Modell geändert von {old} zu {new}: {reason}" -#: rcgcdw.py:306 +#: rcgcdw.py:316 +#, python-brace-format msgid "Edited the sprite for {article}" msgstr "Edited the sprite for {article}" -#: rcgcdw.py:309 +#: rcgcdw.py:319 +#, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Created the sprite sheet for {article}" -#: rcgcdw.py:312 +#: rcgcdw.py:322 +#, python-brace-format msgid "Edited the slice for {article}" msgstr "Edited the slice for {article}" -#: rcgcdw.py:315 +#: rcgcdw.py:325 +#, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Erstellte die Markierung \"{tag}\"" -#: rcgcdw.py:319 +#: rcgcdw.py:329 +#, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Löschte die Markierung \"{tag}\"" -#: rcgcdw.py:323 +#: rcgcdw.py:333 +#, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Aktivierte die Markierung \"{tag}\"" -#: rcgcdw.py:326 +#: rcgcdw.py:336 +#, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Deaktivierte die Markierung \"{tag}\"" -#: rcgcdw.py:347 +#: rcgcdw.py:357 msgid "Tags" msgstr "Markierungen" -#: rcgcdw.py:469 +#: rcgcdw.py:480 msgid "Unable to process the event" msgstr "Ereignis kann nicht verabreitet werden" -#: rcgcdw.py:469 +#: rcgcdw.py:480 msgid "error" msgstr "Fehler" -#: rcgcdw.py:549 +#: rcgcdw.py:560 msgid "Daily overview" msgstr "Tägliche Übersicht" -#: rcgcdw.py:565 -msgid " ({} actions)" -msgstr " ({} Aktionen)" +#: rcgcdw.py:576 +msgid " ({} action)" +msgid_plural "({} actions)" +msgstr[0] " (eine Aktion)" +msgstr[1] " ({} Aktionen)" -#: rcgcdw.py:566 -msgid " UTC ({} actions)" -msgstr " UTC ({} Aktionen)" +#: rcgcdw.py:577 +msgid " UTC ({} action)" +msgid_plural " UTC ({} actions)" +msgstr[0] " UTC (eine Aktion)" +msgstr[1] " UTC ({} Aktionen)" -#: rcgcdw.py:568 rcgcdw.py:569 +#: rcgcdw.py:579 rcgcdw.py:580 msgid "But nobody came" msgstr "Keine Aktivität" -#: rcgcdw.py:573 -msgid "Admin actions" -msgstr "Admin-Aktionen" +#: rcgcdw.py:584 +msgid "Most active user" +msgid_plural "Most active users" +msgstr[0] "Aktivster Benutzer" +msgstr[1] "Aktivste Benutzer" -#: rcgcdw.py:573 -msgid "Bytes changed" -msgstr "Bytes geändert" - -#: rcgcdw.py:573 -msgid "Day score" -msgstr "Tageswert" - -#: rcgcdw.py:573 +#: rcgcdw.py:584 msgid "Edits made" msgstr "Bearbeitungen" -#: rcgcdw.py:573 -msgid "Most active hours" -msgstr "Aktivste Stunden" - -#: rcgcdw.py:573 -msgid "Most active users" -msgstr "Aktivste Benutzer" - -#: rcgcdw.py:573 -msgid "New articles" -msgstr "Neue Artikel" - -#: rcgcdw.py:573 +#: rcgcdw.py:584 msgid "New files" msgstr "Neue Dateien" -#: rcgcdw.py:573 +#: rcgcdw.py:584 +msgid "Admin actions" +msgstr "Admin-Aktionen" + +#: rcgcdw.py:584 +msgid "Bytes changed" +msgstr "Bytes geändert" + +#: rcgcdw.py:584 +msgid "New articles" +msgstr "Neue Artikel" + +#: rcgcdw.py:584 msgid "Unique contributors" msgstr "Einzelne Autoren" -#: rcgcdw.py:662 +#: rcgcdw.py:584 +msgid "Most active hour" +msgid_plural "Most active hours" +msgstr[0] "Aktivste Stunde" +msgstr[1] "Aktivste Stunden" + +#: rcgcdw.py:584 +msgid "Day score" +msgstr "Tageswert" + +#: rcgcdw.py:674 +#, python-brace-format msgid "Connection to {wiki} seems to be stable now." msgstr "{wiki} scheint wieder erreichbar zu sein." -#: rcgcdw.py:662 rcgcdw.py:715 +#: rcgcdw.py:674 rcgcdw.py:729 msgid "Connection status" msgstr "Verbindungsstatus" -#: rcgcdw.py:715 +#: rcgcdw.py:729 +#, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "Das {wiki} scheint unerreichbar zu sein." -#: rcgcdw.py:737 -msgid "{wiki} is back up!" -msgstr "Das {wiki} ist wieder erreichbar." +#: rcgcdw.py:751 +msgid "director" +msgstr "Direktor" + +#: rcgcdw.py:751 +msgid "bot" +msgstr "Bot" + +#: rcgcdw.py:751 +msgid "editor" +msgstr "editor" + +#: rcgcdw.py:751 +msgid "directors" +msgstr "Direktor" + +#: rcgcdw.py:751 +msgid "sysop" +msgstr "Administrator" + +#: rcgcdw.py:751 +msgid "bureaucrat" +msgstr "Bürokrat" + +#: rcgcdw.py:751 +msgid "reviewer" +msgstr "reviewer" + +#: rcgcdw.py:751 +msgid "autoreview" +msgstr "autoreview" + +#: rcgcdw.py:751 +msgid "autopatrol" +msgstr "autopatrol" + +#: rcgcdw.py:751 +msgid "wiki_guardian" +msgstr "Wiki Guardian" + +#~ msgid "{wiki} is back up!" +#~ msgstr "Das {wiki} ist wieder erreichbar." diff --git a/locale/en/LC_MESSAGES/en.mo b/locale/en/LC_MESSAGES/en.mo deleted file mode 100644 index af9ca1ca6582bd073e79f0836327ed4f2899f4f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6940 zcmeI0TWlOx8OKkdrQiUiDNra7PEy+1N!GO;hd9oK#&MFmwUaclQ@5c_W_OS6!Miit znOWPbWsxWH_%0zyb!#P2^dI~$v* zitc@OropUIV9K zKRg9*fNStN_!xW#yaf4Yp62I9_$<5y{sOAKf57dq?+sbK-B9HR;Q+h~%07X&!YASF z@cYohm*FVf+L!rt0`BJhKKM5Haj1Hi;G5wOAyv#z;XC0A@HY5YDEn<&jJX+(!nebD zH~>Sac0QYb{~p}I`-^ZJy!MU8ycgaI)$Vafljb7Sc$OiirUl2~BXBEx7Vd&Sf$xL= zgoMQGpwbB31@-+wsJMSJ=Ows@_pifu!C%9E_%BEk<~9baagIX8{VbN|#5W`kR8Ufe%3W zc@e6fgR%=CAu|b7d>)1tUV_racVTpuF~5bfn`iKvhXttmYp@@F1ggKMpvLoUsBu3J z)!&Oy^Y9Xsp0B}J?d^h!?|!Iy=kxMqDBZQ7?7s}9zvtlX@Q=_!`_@eVN1*&#fxF=+ zp!EDSRK4dRQ)vDK6|bxKsPS%r8s{xg_A~rQ{}m|xKMLi?7oghtQU3i8Q2M_CBkBMB zQ2L*PYPShBe@{S-^GPUud=*On--Lw1yac6h1xNbd4Hd6@;0U}Q>igqR<9jCO^KcLE zzl74+^#ohEbW& zDyU~7L-BjO$YpbJG=JXwz(Nk>SExgKd_ zm?Uj0&U$doOr|;X2k*=Cf?|I^NwL*4m?72BY@TN+q+^!8rLlYR@?%gjoFR>o6bIyP z4w9t#ev;OL;(aGckLE`DQH-TGJvWn1ra5ESKGO9hE$F$6bbvIZ7oKs_3DQ2j@SG-T zz3Mqk(wf&ZO*%)CHncD3(K@+6dJk!y^Z-ekI7HIiYkg|2r8}+B?WDU&=SkgXj?5k1 z7kDPm?}wwLsr=p8{&vTDmBbH&c)-}X*`w=A`cG~ju%`cfBXTRgTYaFvUGszG&Vc=} zJ>LwfAq7HKIB*5S0kd=G$yR=K@>zs?HoKht0&+ z$>7h5m$<6+Y~n529c_L)JIs-4Rb_#7K@zoW653?RSwBczwCXSW*p_S5uGamaJ0>$x z3oFaiYL~Ojg=Xxcj$H^N+fMwt>zD~T4Z?C*ZP|)P?-Q-W#kR8K1&gj~j%KuJbsM`R z@q@)UtG}+v!g4VRn+=9hFS{sS@*8IMwY| z1FVFMFd#Bv6}xaD9d*N7bhiB;_A7qum;IWbv}9Nd7cGqkNnA9z-axY&<3oQuVDV&q zqt+Y^gCKV@PQ0W^GrbbR-&WW=M8(x(O-I>T?3e@sx;ki%M(zr;*e%u2;zr~rV9B{; zLj)#0zs4X|TqNO{Nv~z&N*Fma>7>^y>0{E>T&9{zSg$K&j0x?ek-sgr#C*X=Aw9dx z)m4;s^@WNyYO8CrK2Sx2g|Lf>vE^(GtBe!jm}6DOD_y^`hh4KWYPI-`!fnu$qHH^3 zr)cUG+|8RwBdryRpISiLs;=!^x5r&IQf0oxm zC{~hPh{C#Uhqda3bcMtnDW)B`)$V&6xx``6F;n$M7%5Ce_-b z>E3JRg8ZP^a0v0if2f)5?~z|_(s@kTGJ9uW<{Gt-Ls44=OT@AbYM)Lu8E{H^|uOd(e|RjP!W0;7}iDqR!{iY^yznps zdRMD8kEt8C$0I*pwg(%2m_%-Ebk7~yTf(5ukvdpeI^1`<){MMb>3A5`<8d1_(%1OV z$N`&W5A_Fj`yo3#aDcY6;g56a>f5|7ZeABRuZ!6qBi*ZD@#o0qb&(zEvV;1v3-{)A zu~r;(#Wi^Iy102={6D%b9_d{dmCdh<6I>T3de_Ct^#5(R7j`po`e*2WbzRhL%dK)< WO#g$1zp}XNQ1M><&&~hx+W2qg9b{_& diff --git a/locale/en/LC_MESSAGES/rcgcdw.mo b/locale/en/LC_MESSAGES/rcgcdw.mo new file mode 100644 index 0000000000000000000000000000000000000000..fc2b2e4e5c8427dc972d4d11011b0956515aab07 GIT binary patch literal 7418 zcmeI0U2Ggz6~}K&p~Un9Qqm77bY=C2^du)^=RmNlV%iW_PdGQ}50! zGqZMA%SuSC+9L4=2&wQuD*=KB1QJC;P@xJQC`eQS(NZBHpasEGf%1R|6n_7i+1=PR zZ66Wx)t>p?xpP0xJ@=e@ul?)ImweWcipcfIuD2NTAiVW$JV+4z8`)8s^9NHhBnVZ&GWaAF3iht6rP8h;a)z@!sGA* z@G&TReIJg%AHkd8d8qMrFbVN?xChqYd*S1-A3g=?+WY}(p07aJ{a;XeZNbQw!rf5g z?1L&l1PkyilwOZQ>HB%8_4x|i37^To{|#z>m%h^&xyWXC3A_%f-3?HB?1a*9ACy1L zLHS7)N{>%K3m=7aX}+45e+Npxr=iCAan4^rT+{p}e}4(8-pf$){X3LC7vl`_&rML{ zT?sFS+oANl5vtuyQ1$jgOl-!W>~R8GScJRagHV3*4fx56jQJ&ekG|8n)}sy8&lh1o z{4(Tcp5>u=y$Ch`SD?nd?A_VAY=QFc0@V0(Q1{6DWWD3)~H_ z#d$3}0c+5QsA!&t(*IA8pSc>RR=ZsgmoRfsb}K^7y9zbWhoS0!9V#Av2>F>m@{k_? zhU#Yk=hF8XC_5xj@$fmQc=$F{zt2Ifj@}*pM+YUr=jBE#r*pf466BUh4Q~$P=2-ts@*7*9uttCxswM|F*S%wn1`YC zcnn(j1l0QfATR$plzzX08t0{)FGIz{Kl1liq3Ug76W4q@MGBDB)E%ira5vxw3$M7EqpMiJRTYk4cO4e3V|8?yUJMCmN@QAD;@Tq!ATPNg|x z*tXL6(yP|<4&(qbgeZ+6Cy;%5A`}$i|KUiuH*pJ(L8bLXvK*$QI{+fydX6Mf7&{qAD z3u3o*=T39jMy~8fu9VnCFSbSJ0$cOS&Kxd=jl|Z-pzN}jxU%(Z;#KUn7SHxJbGTeq zSzuj|L`|E7Hd%Dm4-yxx_)9)@i&a{eYkrVVI5y+eu(U+0Rx!(*Ys4;U+l4T)t;Dan zwi##8AS{OErY(7lKHf}RY)gw?P;q5*B%@86+t?+EA5`M3{i-gzH7ilrs56aP(M9p1 zU(d(#qKZq}-CFf1OfUh9VykZ1RkK=Nl=!78N_B?S1WO?^46saCre3&^&bsbZoNc|P z{<0tYMZfANO;xOh6-(zq5_daXT|uiFO9y_dd$j+hMa!#&jUZ{Wh*{Hk-L_#6Ijk^GJkA^~GhYS7>ucDlR>aLMIujZ;Xvh_9D`UIc)$6F6 zcavILp}WS!7kGxGj%q1#YGD-ojntFld{TwR#xIOkMN$ih7n^@smZ{Dy??oH(fC{lWrk- z!-bd(OP-?JOgX%$+zl7I=*LMI`D`%+Xiq6LW>RGrvqwy&fu8R`z3F%7-5#^uDNltl z%E+&sT?`u$jaL`Mt4g%{y{14_meKKoJ*l_RrN-~9Y-;($Pqam4ZF)11{&~o(|1E8n z24?pJFw<_u=AFmsi{gx2XfZ`8^6TjiiDJt>d%w!Np|bk$IF;6n&CJ|%=0r1*Tks#i zQXE}m+MHN2Z>eq8e%WPLTrnoRsGR3k)lN5R%+sCStSjTj*)X%Nw$^r;zjjP!W?jAN z(;WM}QS{ET{OnW=)oneOIIorsHP?(2S2OcoB{uUoacMCtS6*?R#?I*=-9{MP2?9F=nzx3#9kbj)Aee|>8!1Xkh5&7*@1!c1{{~| zUWNSq%pI8~cb}QeG9De)y(9{&M%nBpVTxg5iVY&SQHs38WH*8^>Ski&Ffs)$ig^0L zf*h33 z!uvTI3n$BkGnp;NY#%n4!9xV** zD-4g=;o-57{WlGb3=L7SFq@yp>(m<=8yU*#O?q)sn2)?5u6o#Z%pQyUc*)*c_roM| z5A5A@h$$vvP~!|8EG^#FH_0ui!BwL$j~k*<=Y5PjSl`sisiVC~3=a zldF?D8>~0&@ZimTcNg*sn!-#dN3kP=LxZDzGu1}qRSU<$s1}depq{?Q2S*OrEPJp& zuv-t>;ei8vt1reE+=Dl6#v3=|-g&)oGk!Do&d&XI^&f2A($~3acIs^0j5lt^8#m+b z^>*WCoU||a%lrTHW_-AJGgdag8IN-_9`D_ZC({3waRu&V;`A^0H+3`CrO>T#Gfw|0 T#$TRXs%UtZ{#*7xdqe&YSf~*K literal 0 HcmV?d00001 diff --git a/locale/en/LC_MESSAGES/en.po b/locale/en/LC_MESSAGES/rcgcdw.po similarity index 65% rename from locale/en/LC_MESSAGES/en.po rename to locale/en/LC_MESSAGES/rcgcdw.po index 3da81ee..4ad873c 100644 --- a/locale/en/LC_MESSAGES/en.po +++ b/locale/en/LC_MESSAGES/rcgcdw.po @@ -5,51 +5,57 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2018-07-08 18:43+0200\n" -"PO-Revision-Date: 2018-07-10 13:49+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-12 11:29+0200\n" +"PO-Revision-Date: 2018-07-12 12:20+0200\n" +"Last-Translator: Frisk \n" "Language-Team: \n" +"Language: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 2.0.8\n" -"Last-Translator: Frisk \n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: en\n" -#: rcgcdw.py:126 +#: rcgcdw.py:124 msgid "(N!) " msgstr "(N!) " -#: rcgcdw.py:126 +#: rcgcdw.py:124 msgid "m " msgstr "m " -#: rcgcdw.py:144 -msgid "([preview]({link}) | [undo]({undolink}))" -msgstr "([preview]({link}) | [undo]({undolink}))" - -#: rcgcdw.py:144 rcgcdw.py:170 +#: rcgcdw.py:142 rcgcdw.py:168 msgid "Options" msgstr "Options" -#: rcgcdw.py:145 +#: rcgcdw.py:142 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "([preview]({link}) | [undo]({undolink}))" + +#: rcgcdw.py:143 +#, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Uploaded a new version of {name}" -#: rcgcdw.py:147 +#: rcgcdw.py:145 +#, python-brace-format msgid "Uploaded {name}" msgstr "Uploaded {name}" -#: rcgcdw.py:160 +#: rcgcdw.py:158 msgid "**No license!**" msgstr "**No license!**" -#: rcgcdw.py:170 +#: rcgcdw.py:168 +#, python-brace-format msgid "([preview]({link}))" msgstr "([preview]({link}))" -#: rcgcdw.py:171 +#: rcgcdw.py:169 +#, python-brace-format msgid "" "{desc}\n" "License: {license}" @@ -57,346 +63,404 @@ msgstr "" "{desc}\n" "License: {license}" -#: rcgcdw.py:174 +#: rcgcdw.py:172 +#, python-brace-format msgid "Deleted page {article}" msgstr "Deleted page {article}" -#: rcgcdw.py:177 +#: rcgcdw.py:175 +#, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "Deleted redirect {article} by overwriting" -#: rcgcdw.py:180 -msgid "A redirect has been made" -msgstr "A redirect has been made" - -#: rcgcdw.py:180 +#: rcgcdw.py:178 msgid "No redirect has been made" msgstr "No redirect has been made" -#: rcgcdw.py:181 +#: rcgcdw.py:178 +msgid "A redirect has been made" +msgstr "A redirect has been made" + +#: rcgcdw.py:179 +#, python-brace-format msgid "Moved {article} to {target}" msgstr "Moved {article} to {target}" -#: rcgcdw.py:184 +#: rcgcdw.py:182 +#, python-brace-format msgid "Moved {article} to {title} over redirect" msgstr "Moved {article} to {title} over redirect" -#: rcgcdw.py:187 +#: rcgcdw.py:185 +#, python-brace-format msgid "Moved protection settings from {article} to {title}" msgstr "Moved protection settings from {article} to {title}" -#: rcgcdw.py:191 +#: rcgcdw.py:189 msgid "infinity and beyond" msgstr "infinity and beyond" -#: rcgcdw.py:192 +#: rcgcdw.py:190 +#, python-brace-format msgid "Blocked {blocked_user} for {time}" msgstr "Blocked {blocked_user} for {time}" -#: rcgcdw.py:196 +#: rcgcdw.py:194 +#, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Changed block settings for {blocked_user}" -#: rcgcdw.py:200 +#: rcgcdw.py:198 +#, python-brace-format msgid "Unblocked {blocked_user}" msgstr "Unblocked {blocked_user}" -#: rcgcdw.py:204 +#: rcgcdw.py:202 +#, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Left a comment on {target}'s profile" -#: rcgcdw.py:208 +#: rcgcdw.py:206 +#, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Replied to a comment on {target}'s profile" -#: rcgcdw.py:212 +#: rcgcdw.py:210 +#, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Edited a comment on {target}'s profile" -#: rcgcdw.py:216 +#: rcgcdw.py:214 msgid "Location" msgstr "Location" -#: rcgcdw.py:218 +#: rcgcdw.py:216 msgid "About me" msgstr "About me" -#: rcgcdw.py:220 +#: rcgcdw.py:218 msgid "Google link" msgstr "Google link" -#: rcgcdw.py:222 +#: rcgcdw.py:220 msgid "Facebook link" msgstr "Facebook link" -#: rcgcdw.py:224 +#: rcgcdw.py:222 msgid "Twitter link" msgstr "Twitter link" -#: rcgcdw.py:226 +#: rcgcdw.py:224 msgid "Reddit link" msgstr "Reddit link" -#: rcgcdw.py:228 +#: rcgcdw.py:226 msgid "Twitch link" msgstr "Twitch link" -#: rcgcdw.py:230 +#: rcgcdw.py:228 msgid "PSN link" msgstr "PSN link" -#: rcgcdw.py:232 +#: rcgcdw.py:230 msgid "VK link" msgstr "VK link" -#: rcgcdw.py:234 +#: rcgcdw.py:232 msgid "XVL link" msgstr "XVL link" -#: rcgcdw.py:236 +#: rcgcdw.py:234 msgid "Steam link" msgstr "Steam link" -#: rcgcdw.py:238 +#: rcgcdw.py:236 msgid "Unknown" msgstr "Unknown" -#: rcgcdw.py:239 +#: rcgcdw.py:237 +#, python-brace-format msgid "Edited {target}'s profile" msgstr "Edited {target}'s profile" -#: rcgcdw.py:240 +#: rcgcdw.py:238 +#, python-brace-format msgid "{field} field changed to: {desc}" msgstr "{field} field changed to: {desc}" -#: rcgcdw.py:244 +#: rcgcdw.py:242 +#, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Deleted a comment on {target}'s profile" -#: rcgcdw.py:247 +#: rcgcdw.py:246 +#, python-brace-format msgid "Changed group membership for {target}" msgstr "Changed group membership for {target}" -#: rcgcdw.py:257 rcgcdw.py:259 +#: rcgcdw.py:248 +msgid "System" +msgstr "System" + +#: rcgcdw.py:250 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "{target} got autopromoted to a new usergroup" + +#: rcgcdw.py:260 rcgcdw.py:262 msgid "none" msgstr "none" -#: rcgcdw.py:260 rcgcdw.py:381 +#: rcgcdw.py:263 rcgcdw.py:385 msgid "No description provided" msgstr "No description provided" -#: rcgcdw.py:261 +#: rcgcdw.py:264 +#, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "Groups changed from {old_groups} to {new_groups}{reason}" -#: rcgcdw.py:264 +#: rcgcdw.py:267 +#, python-brace-format msgid "Protected {target}" msgstr "Protected {target}" -#: rcgcdw.py:268 +#: rcgcdw.py:271 +#, python-brace-format msgid "Changed protection level for {article}" msgstr "Changed protection level for {article}" -#: rcgcdw.py:272 +#: rcgcdw.py:275 +#, python-brace-format msgid "Removed protection from {article}" msgstr "Removed protection from {article}" -#: rcgcdw.py:275 -msgid "Changed visibility of revision(s) on page {article} " -msgstr "Changed visibility of revision(s) on page {article} " +#: rcgcdw.py:279 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "Changed visibility of revision on page {article} " +msgstr[1] "Changed visibility of {amount} revisions on page {article} " -#: rcgcdw.py:278 -msgid "Imported {article} with {count} revision(s)" -msgstr "Imported {article} with {count} revision(s)" +#: rcgcdw.py:282 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "Imported {article} with {count} revision" +msgstr[1] "Imported {article} with {count} revisions" -#: rcgcdw.py:281 +#: rcgcdw.py:285 +#, python-brace-format msgid "Restored {article}" msgstr "Restored {article}" -#: rcgcdw.py:284 +#: rcgcdw.py:288 msgid "Changed visibility of log events" msgstr "Changed visibility of log events" -#: rcgcdw.py:287 +#: rcgcdw.py:291 msgid "Imported interwiki" msgstr "Imported interwiki" -#: rcgcdw.py:290 +#: rcgcdw.py:294 +#, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Edited abuse filter number {number}" -#: rcgcdw.py:293 +#: rcgcdw.py:297 +#, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Merged revision histories of {article} into {dest}" -#: rcgcdw.py:296 +#: rcgcdw.py:300 msgid "Added an entry to the interwiki table" msgstr "Added an entry to the interwiki table" -#: rcgcdw.py:297 rcgcdw.py:301 +#: rcgcdw.py:301 rcgcdw.py:305 +#, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Prefix: {prefix}, website: {website} | {desc}" -#: rcgcdw.py:300 +#: rcgcdw.py:304 msgid "Edited an entry in interwiki table" msgstr "Edited an entry in interwiki table" -#: rcgcdw.py:304 +#: rcgcdw.py:308 msgid "Deleted an entry in interwiki table" msgstr "Deleted an entry in interwiki table" -#: rcgcdw.py:305 +#: rcgcdw.py:309 +#, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Prefix: {prefix} | {desc}" -#: rcgcdw.py:308 +#: rcgcdw.py:312 +#, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Changed the content model of the page {article}" -#: rcgcdw.py:309 +#: rcgcdw.py:313 +#, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Model changed from {old} to {new}: {reason}" -#: rcgcdw.py:312 +#: rcgcdw.py:316 +#, python-brace-format msgid "Edited the sprite for {article}" msgstr "Edited the sprite for {article}" -#: rcgcdw.py:315 +#: rcgcdw.py:319 +#, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Created the sprite sheet for {article}" -#: rcgcdw.py:318 +#: rcgcdw.py:322 +#, python-brace-format msgid "Edited the slice for {article}" msgstr "Edited the slice for {article}" -#: rcgcdw.py:321 +#: rcgcdw.py:325 +#, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Created a tag \"{tag}\"" -#: rcgcdw.py:325 +#: rcgcdw.py:329 +#, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Deleted a tag \"{tag}\"" -#: rcgcdw.py:329 +#: rcgcdw.py:333 +#, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Activated a tag \"{tag}\"" -#: rcgcdw.py:332 +#: rcgcdw.py:336 +#, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Deactivated a tag \"{tag}\"" -#: rcgcdw.py:353 +#: rcgcdw.py:357 msgid "Tags" msgstr "Tags" -#: rcgcdw.py:474 +#: rcgcdw.py:480 msgid "Unable to process the event" msgstr "Unable to process the event" -#: rcgcdw.py:474 +#: rcgcdw.py:480 msgid "error" msgstr "error" -#: rcgcdw.py:554 +#: rcgcdw.py:560 msgid "Daily overview" msgstr "Daily overview" -#: rcgcdw.py:570 -msgid " ({} actions)" -msgstr " ({} actions)" +#: rcgcdw.py:576 +msgid " ({} action)" +msgid_plural "({} actions)" +msgstr[0] " ({} action)" +msgstr[1] " ({} actions)" -#: rcgcdw.py:571 -msgid " UTC ({} actions)" -msgstr " UTC ({} actions)" +#: rcgcdw.py:577 +msgid " UTC ({} action)" +msgid_plural " UTC ({} actions)" +msgstr[0] " UTC ({} action)" +msgstr[1] " UTC ({} actions)" -#: rcgcdw.py:573 rcgcdw.py:574 +#: rcgcdw.py:579 rcgcdw.py:580 msgid "But nobody came" msgstr "But nobody came" -#: rcgcdw.py:578 -msgid "Admin actions" -msgstr "Admin actions" +#: rcgcdw.py:584 +msgid "Most active user" +msgid_plural "Most active users" +msgstr[0] "Most active user" +msgstr[1] "Most active users" -#: rcgcdw.py:578 -msgid "Bytes changed" -msgstr "Bytes changed" - -#: rcgcdw.py:578 -msgid "Day score" -msgstr "Day score" - -#: rcgcdw.py:578 +#: rcgcdw.py:584 msgid "Edits made" msgstr "Edits made" -#: rcgcdw.py:578 -msgid "Most active hours" -msgstr "Most active hours" - -#: rcgcdw.py:578 -msgid "Most active users" -msgstr "Most active users" - -#: rcgcdw.py:578 -msgid "New articles" -msgstr "New articles" - -#: rcgcdw.py:578 +#: rcgcdw.py:584 msgid "New files" msgstr "New files" -#: rcgcdw.py:578 +#: rcgcdw.py:584 +msgid "Admin actions" +msgstr "Admin actions" + +#: rcgcdw.py:584 +msgid "Bytes changed" +msgstr "Bytes changed" + +#: rcgcdw.py:584 +msgid "New articles" +msgstr "New articles" + +#: rcgcdw.py:584 msgid "Unique contributors" msgstr "Unique contributors" -#: rcgcdw.py:668 +#: rcgcdw.py:584 +msgid "Most active hour" +msgid_plural "Most active hours" +msgstr[0] "Most active hour" +msgstr[1] "Most active hours" + +#: rcgcdw.py:584 +msgid "Day score" +msgstr "Day score" + +#: rcgcdw.py:674 +#, python-brace-format msgid "Connection to {wiki} seems to be stable now." msgstr "Connection to {wiki} seems to be stable now." -#: rcgcdw.py:668 rcgcdw.py:723 +#: rcgcdw.py:674 rcgcdw.py:729 msgid "Connection status" msgstr "Connection status" -#: rcgcdw.py:723 +#: rcgcdw.py:729 +#, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki} seems to be down or unreachable." -#: rcgcdw.py:745 -msgid "autopatrol" -msgstr "Autopatrol" - -#: rcgcdw.py:745 -msgid "autoreview" -msgstr "Autoreview" - -#: rcgcdw.py:745 -msgid "bot" -msgstr "Bot" - -#: rcgcdw.py:745 -msgid "bureaucrat" -msgstr "Bureaucrat" - -#: rcgcdw.py:745 +#: rcgcdw.py:751 msgid "director" msgstr "Director" -#: rcgcdw.py:745 -msgid "directors" -msgstr "Directors" +#: rcgcdw.py:751 +msgid "bot" +msgstr "Bot" -#: rcgcdw.py:745 +#: rcgcdw.py:751 msgid "editor" msgstr "Editor" -#: rcgcdw.py:745 -msgid "reviewer" -msgstr "Reviewer" +#: rcgcdw.py:751 +msgid "directors" +msgstr "Directors" -#: rcgcdw.py:745 +#: rcgcdw.py:751 msgid "sysop" msgstr "Administrator" -#: rcgcdw.py:745 +#: rcgcdw.py:751 +msgid "bureaucrat" +msgstr "Bureaucrat" + +#: rcgcdw.py:751 +msgid "reviewer" +msgstr "Reviewer" + +#: rcgcdw.py:751 +msgid "autoreview" +msgstr "Autoreview" + +#: rcgcdw.py:751 +msgid "autopatrol" +msgstr "Autopatrol" + +#: rcgcdw.py:751 msgid "wiki_guardian" msgstr "Wiki guardian" diff --git a/locale/pl/LC_MESSAGES/rcgcdw.mo b/locale/pl/LC_MESSAGES/rcgcdw.mo index f64f3b8bba6bbb068c5dbbd1a76088802f5bb92d..695f40c122647f90ee9ed433761396fe980f28d2 100644 GIT binary patch delta 2917 zcmajgd2AGA7{~Fq6)DwXODmK@m65Y8t!)v3R^=#_)&qeSR1neW?zj%^?$p^?>z33a zrd~0PW+WaEuNaB^;Z=>Alz5~iLW~BDibsgXBbu0ys4*s0~P| zp7(i|50?GDvj0T!q`ijLL6j5Krx1jEUn0 zoQ8+68sEd|_#0|m@#)5#fepw|(~5ebHeAH~ri+dSJb?4?AkM&du@b*QJ*co?{Qfdj zCbr?(*oSj)KkC85$lT^5)SG^ZJi?sB6*z{)xRjf1%x_xg%*RJiDSI84;M=$u$50b4 z;x*)@cpk=aHa>wBcnEp6`4;u2KcQ0pJ8EImNpl|7qUKqS{kpN5P7Q8Dt?Vw;iuWOV zWDZ~z9?9PS8TE#FMaHO1ig6N_p~jt!T1XXYfy+@f(T=K>F4RJH7meGCYz5W{Yy_2Xn{uQ;LTna)(nva^W5OZ-JYM~2J;}%aN|N7!m zJ|N4c5tWfvw6FuK@pfE<&*PCCV~(S04ii-%Fq`33d;-|$SV;}wqQ1D!gW}IH=|C;V|W&h;z9fhHGYs;R6|cA zADQ=2&;Jg22h%^5Zz;udP;Xv^=V3Eyz%8hS4WfP@4&XI7f=kijrWUdV^}Sp9qf9-B zIvua0PR|L{gr_ozGF^()O21h^XBi*VBhNH9qE5wbT#jbec(JTNJ$NN8 z5&6{pnaD@xoUE%*r{Y@F0&LXxy0X`)?DcNc!tO>b=sxV%vDi;XD}4-g44*>n(Mzb5 zy@h1g9K$O70UNQD%GGrnawsybDeD9+6CGrjS)08+AFmzX>G89v)Tn8%RPk367O|Ni z!L9fLtBC7}HG~$SrnJ@*+BUtRnik%i>5bP}wwqzL_Wv5XdTX_F301!;bqk@U zEl@q^|ANIt8=>zH?&*nvh znu<{Su3}?LGrw4u<91@AT}fwk_Ch~II)Z8qgnkb$C3GB(Rk5qjvLk`(B`QsLPhR=Z z-n_A#63a_i-FD2ecG-U5M!K9nE4(Scw0M^t_fmQ*NkiCJWK9{rSXw{SQM5j%Y&?sdk)3vBHly@i z`r&iaW=_$ETQ;w?hMt>No15c=gC%ok{gucb$4~Bbt%PkQNl?Q5zuQA6O6H%EJ2DV{ zI-@%LY{v0?n^%tZx(PdcytFnPDlMOywo;?R>7di=Nw}TiaOvFeQ0Y69+@OnR&pa@B zSJX*H`oe~?hl=}5mz(Ic+5^Xqo6LrVpO+o&U&AKF?I0cLWj$7}9rU=4AMLewjtoT7 z=HGX_{az>5H8K#*-fd!6o7|M|b+W0pX-@l2r*?Is)0;MJPSnnP)-k$=fo!J3Oy20e zkvmP)G97ik-Dx)d=ecX5aW~3vMw@3F_ X39n~lz>4{)?vaQ8nIJn{G`spwo=nJO delta 2157 zcmY+^Z){Ul7{~F`ZHzHwqn)5@M|V5^wXnIZz<^n&Zj%iZbPm`H#8^i&yOEBpGb9q| z)C?u=h4Hco2~Ld(6B9C_i2^|*k(hulglsP$GfRw-1cMhSo(?5L0=^q;O;o8``^bjah(4(2XCWPMyLaPGA|{z*4+}k75Rk za1onF(2vWp0rk9>FrZiU($S40&WRHkV*d-&4O6%R|G`=e%rnNq4qS@^sDX`RHJ-;s zcnfu321{^hu`zT_7|St&D>c=fbacZZT#83=F`mN^{)Bqa-_Ch!zA;tox1t|=uo4fW z9()qH)O?4U>5s_I++?!>e?t%YA2MdOQe97H8SX|VY2LyxzNZWDTht7Hcg)}#_DguW z51TQFFC(YSJE)l+MWucWHL$OcRWa94@40~~o%n@L4c~szwS~XAQuM7FLy#f31CsbD|S9vR$Ym+k?8X7pY5g z2=&4@Q3F4W7Jh;n*d<(vQ+U?J+M@ zhN^{as5OqEW;BdivN2SOzef#p8kMQLSc_f`YH7BhiaCi(@Hp1v*C{%Bz-`o8yBLj% zu?F>m7G!MZHPlSrK+Sv@*Wkyf>nBkIyN&vc^EkK*D{(CzKn>(e)O9yenM(ahM^)@) znyT`Rs29G1l!F;St?dvt;0R`CjGE~*uE#}X+YF&*KI)wR2vs{LQO`Y%D&F&` z;=PFc%q2Ff^!@)#$HKYfNizu|#cP@gRjFDl@hq`WJG93LedB7%$`jchvqlw`mQGCr z)iP`$R0nGLgqB!YNNHyJ*Hc?fXy$5L39XxIqm$T7Y$w#7o5ehZ`iEo%{%c+Iw0x=o z6{woNs22%JE&COLX(5=b=Kp_FI+bF5B1);+&RHJVvNGA4P?}#Lw7$8f;!=7ku54Cw z$MreZ5zi1i2-VyJ?{Ci@nBA;*`WqcpSh=>1PLO!gInao0gw}S0b4)x7*7=B3|Wye!|&l%KJ$cq{B?--S8Rfu7jl2NmN5dt%9M`*g*z`6076 zp6IhW2V+sYYsppnh~H;l_qSEfzO*-%9JKcJC;Im%;xVf~8NWQ-6WyDL2JDW?>VEe( diff --git a/locale/pl/LC_MESSAGES/rcgcdw.po b/locale/pl/LC_MESSAGES/rcgcdw.po index 6ccc2f6..4f5cd41 100644 --- a/locale/pl/LC_MESSAGES/rcgcdw.po +++ b/locale/pl/LC_MESSAGES/rcgcdw.po @@ -5,8 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" -"POT-Creation-Date: 2018-07-05 20:21+0200\n" -"PO-Revision-Date: 2018-07-05 20:22+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-12 11:29+0200\n" +"PO-Revision-Date: 2018-07-12 11:41+0200\n" "Last-Translator: Frisk \n" "Language-Team: \n" "Language: pl\n" @@ -18,39 +19,44 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: rcgcdw.py:126 +#: rcgcdw.py:124 msgid "(N!) " msgstr "(N!) " -#: rcgcdw.py:126 +#: rcgcdw.py:124 msgid "m " msgstr "d " -#: rcgcdw.py:144 -msgid "([preview]({link}) | [undo]({undolink}))" -msgstr "([podgląd]({link}) | [wycofaj]({undolink}))" - -#: rcgcdw.py:144 rcgcdw.py:170 +#: rcgcdw.py:142 rcgcdw.py:168 msgid "Options" msgstr "Opcje" -#: rcgcdw.py:145 +#: rcgcdw.py:142 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "([podgląd]({link}) | [wycofaj]({undolink}))" + +#: rcgcdw.py:143 +#, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Przesłał(a) nową wersję {name}" -#: rcgcdw.py:147 +#: rcgcdw.py:145 +#, python-brace-format msgid "Uploaded {name}" msgstr "Przesłał(a) {name}" -#: rcgcdw.py:160 +#: rcgcdw.py:158 msgid "**No license!**" msgstr "**Brak licencji!**" -#: rcgcdw.py:170 +#: rcgcdw.py:168 +#, python-brace-format msgid "([preview]({link}))" msgstr "([podgląd]({link}))" -#: rcgcdw.py:171 +#: rcgcdw.py:169 +#, python-brace-format msgid "" "{desc}\n" "License: {license}" @@ -58,315 +64,418 @@ msgstr "" "{desc}\n" "Licencja: {license}" -#: rcgcdw.py:174 +#: rcgcdw.py:172 +#, python-brace-format msgid "Deleted page {article}" msgstr "Usunął/usunęła {article}" -#: rcgcdw.py:177 +#: rcgcdw.py:175 +#, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "" "Usunął/usunęła przekierowanie ({article}) aby utworzyć miejsce dla " "przenoszonej strony" -#: rcgcdw.py:180 -msgid "A redirect has been made" -msgstr "Zostało utworzone przekierowanie" - -#: rcgcdw.py:180 +#: rcgcdw.py:178 msgid "No redirect has been made" msgstr "Nie utworzono przekierowania" -#: rcgcdw.py:181 +#: rcgcdw.py:178 +msgid "A redirect has been made" +msgstr "Zostało utworzone przekierowanie" + +#: rcgcdw.py:179 +#, python-brace-format msgid "Moved {article} to {target}" msgstr "Przeniósł/przeniosła {article} do {target}" -#: rcgcdw.py:184 +#: rcgcdw.py:182 +#, python-brace-format msgid "Moved {article} to {title} over redirect" -msgstr "Przeniósł/przeniosła {article} do strony przekierowującej {target}" +msgstr "Przeniósł/przeniosła {article} do strony przekierowującej {title}" -#: rcgcdw.py:187 +#: rcgcdw.py:185 +#, python-brace-format msgid "Moved protection settings from {article} to {title}" msgstr "Przeniesiono ustawienia zabezpieczeń z {article} do {title}" -#: rcgcdw.py:191 +#: rcgcdw.py:189 msgid "infinity and beyond" msgstr "wieczność" -#: rcgcdw.py:192 +#: rcgcdw.py:190 +#, python-brace-format msgid "Blocked {blocked_user} for {time}" msgstr "Zablokowano {blocked_user} na {time}" -#: rcgcdw.py:196 +#: rcgcdw.py:194 +#, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Zmienił ustawienia blokady {blocked_user}" -#: rcgcdw.py:200 +#: rcgcdw.py:198 +#, python-brace-format msgid "Unblocked {blocked_user}" msgstr "Odblokował {blocked_user}" -#: rcgcdw.py:204 +#: rcgcdw.py:202 +#, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Pozostawiono komentarz na profilu użytkownika {target}" -#: rcgcdw.py:208 +#: rcgcdw.py:206 +#, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Odpowiedziano na komentarz na profilu użytkownika {target}" -#: rcgcdw.py:212 +#: rcgcdw.py:210 +#, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Edytowano komentarz na profilu użytkownika {target}" -#: rcgcdw.py:216 +#: rcgcdw.py:214 msgid "Location" msgstr "Lokacja" -#: rcgcdw.py:218 +#: rcgcdw.py:216 msgid "About me" msgstr "O mnie" -#: rcgcdw.py:220 +#: rcgcdw.py:218 msgid "Google link" msgstr "link Google" -#: rcgcdw.py:222 +#: rcgcdw.py:220 msgid "Facebook link" msgstr "link Facebook" -#: rcgcdw.py:224 +#: rcgcdw.py:222 msgid "Twitter link" msgstr "link Twitter" -#: rcgcdw.py:226 +#: rcgcdw.py:224 msgid "Reddit link" msgstr "link Reddit" -#: rcgcdw.py:228 +#: rcgcdw.py:226 msgid "Twitch link" msgstr "link Twitch" -#: rcgcdw.py:230 +#: rcgcdw.py:228 msgid "PSN link" msgstr "link PSN" -#: rcgcdw.py:232 +#: rcgcdw.py:230 msgid "VK link" msgstr "link VK" -#: rcgcdw.py:234 +#: rcgcdw.py:232 msgid "XVL link" msgstr "link XVL" -#: rcgcdw.py:236 +#: rcgcdw.py:234 msgid "Steam link" msgstr "link Steam" -#: rcgcdw.py:238 +#: rcgcdw.py:236 msgid "Unknown" msgstr "Nieznana" -#: rcgcdw.py:239 +#: rcgcdw.py:237 +#, python-brace-format msgid "Edited {target}'s profile" msgstr "Edytowano profil użytkownika {target}" -#: rcgcdw.py:240 +#: rcgcdw.py:238 +#, python-brace-format msgid "{field} field changed to: {desc}" msgstr "pole {field} zostało zmienione na: {desc}" -#: rcgcdw.py:244 +#: rcgcdw.py:242 +#, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Usunął komentarz na profilu użytkownika {target}" -#: rcgcdw.py:247 +#: rcgcdw.py:246 +#, python-brace-format msgid "Changed group membership for {target}" msgstr "Zmieniono przynależność do grup dla {target}" -#: rcgcdw.py:251 rcgcdw.py:253 +#: rcgcdw.py:248 +msgid "System" +msgstr "System" + +#: rcgcdw.py:250 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "{target} automatycznie otrzymał nową grupę użytkownika" + +#: rcgcdw.py:260 rcgcdw.py:262 msgid "none" msgstr "brak" -#: rcgcdw.py:254 rcgcdw.py:376 +#: rcgcdw.py:263 rcgcdw.py:385 msgid "No description provided" msgstr "Nie podano opisu zmian" -#: rcgcdw.py:255 +#: rcgcdw.py:264 +#, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "Grupy zmienione z {old_groups} do {new_groups}{reason}" -#: rcgcdw.py:258 +#: rcgcdw.py:267 +#, python-brace-format msgid "Protected {target}" msgstr "Zabezpieczono {target}" -#: rcgcdw.py:262 +#: rcgcdw.py:271 +#, python-brace-format msgid "Changed protection level for {article}" msgstr "Zmieniono poziom zabezpieczeń {article}" -#: rcgcdw.py:266 +#: rcgcdw.py:275 +#, python-brace-format msgid "Removed protection from {article}" msgstr "Usunięto zabezpieczenie {article}" -#: rcgcdw.py:269 -msgid "Changed visibility of revision(s) on page {article} " -msgstr "Zmieniono widoczność wersji na stroni {article}" +#: rcgcdw.py:279 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "Zmieniono widoczność wersji na stronie {article}" +msgstr[1] "Zmieniono widoczność {amount} wersji na stronie {article}" +msgstr[2] "Zmieniono widoczność {amount} wersji na stronie {article}" -#: rcgcdw.py:272 -msgid "Imported {article} with {count} revision(s)" -msgstr "Zaimportowano {article} z {count} wersjami" +#: rcgcdw.py:282 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "Zaimportowano {article} z {count} wersją" +msgstr[1] "Zaimportowano {article} z {count} wersjami" +msgstr[2] "Zaimportowano {article} z {count} wersjami" -#: rcgcdw.py:275 +#: rcgcdw.py:285 +#, python-brace-format msgid "Restored {article}" -msgstr "Przywrócono {article)" +msgstr "Przywrócono {article}" -#: rcgcdw.py:278 +#: rcgcdw.py:288 msgid "Changed visibility of log events" msgstr "Zmieniono widoczność logów" -#: rcgcdw.py:281 +#: rcgcdw.py:291 msgid "Imported interwiki" msgstr "Zaimportowano interwiki" -#: rcgcdw.py:284 +#: rcgcdw.py:294 +#, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Edytowano filtr nadużyć numer {number}" -#: rcgcdw.py:287 +#: rcgcdw.py:297 +#, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Połączono historie {article} z {dest}" -#: rcgcdw.py:290 +#: rcgcdw.py:300 msgid "Added an entry to the interwiki table" msgstr "Dodano wpis do tabeli interwiki" -#: rcgcdw.py:291 rcgcdw.py:295 +#: rcgcdw.py:301 rcgcdw.py:305 +#, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" -msgstr "Prefix: {prefix}, strona: {website} | desc" +msgstr "Prefix: {prefix}, strona: {website} | {desc}" -#: rcgcdw.py:294 +#: rcgcdw.py:304 msgid "Edited an entry in interwiki table" msgstr "Edytowano wpis interwiki" -#: rcgcdw.py:298 +#: rcgcdw.py:308 msgid "Deleted an entry in interwiki table" msgstr "Usunięto wpis interwiki" -#: rcgcdw.py:299 +#: rcgcdw.py:309 +#, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Prefix: {prefix} | {desc}" -#: rcgcdw.py:302 +#: rcgcdw.py:312 +#, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Zmieniono model zawartości {article}" -#: rcgcdw.py:303 +#: rcgcdw.py:313 +#, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Model został zmieniony z {old} na {new}: {reason}" -#: rcgcdw.py:306 +#: rcgcdw.py:316 +#, python-brace-format msgid "Edited the sprite for {article}" msgstr "Edytowano sprite dla {article}" -#: rcgcdw.py:309 +#: rcgcdw.py:319 +#, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Utworzono sprite sheet dla {article}" -#: rcgcdw.py:312 +#: rcgcdw.py:322 +#, python-brace-format msgid "Edited the slice for {article}" msgstr "Edytowano część sprite dla {article}" -#: rcgcdw.py:315 +#: rcgcdw.py:325 +#, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Utworzono tag \"{tag}\"" -#: rcgcdw.py:319 +#: rcgcdw.py:329 +#, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Usunięto tag \"{tag}\"" -#: rcgcdw.py:323 +#: rcgcdw.py:333 +#, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Aktywowano tag \"{tag}\"" -#: rcgcdw.py:326 +#: rcgcdw.py:336 +#, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Dezaktywowano tag \"{tag}\"" -#: rcgcdw.py:347 +#: rcgcdw.py:357 msgid "Tags" msgstr "Tagi" -#: rcgcdw.py:469 +#: rcgcdw.py:480 msgid "Unable to process the event" msgstr "Nie udało się odczytać wydarzenia" -#: rcgcdw.py:469 +#: rcgcdw.py:480 msgid "error" msgstr "błąd" -#: rcgcdw.py:549 +#: rcgcdw.py:560 msgid "Daily overview" msgstr "Podsumowanie dnia" -#: rcgcdw.py:565 -msgid " ({} actions)" -msgstr "({} akcji)" +#: rcgcdw.py:576 +msgid " ({} action)" +msgid_plural "({} actions)" +msgstr[0] " ({} akcja)" +msgstr[1] " ({} akcji)" +msgstr[2] " ({} akcji)" -#: rcgcdw.py:566 -msgid " UTC ({} actions)" -msgstr " UTC ({} akcji)" +#: rcgcdw.py:577 +msgid " UTC ({} action)" +msgid_plural " UTC ({} actions)" +msgstr[0] " UTC ({} akcja)" +msgstr[1] " UTC ({} akcji)" +msgstr[2] " UTC ({} akcji)" -#: rcgcdw.py:568 rcgcdw.py:569 +#: rcgcdw.py:579 rcgcdw.py:580 msgid "But nobody came" msgstr "Ale nikt nie przyszedł" -#: rcgcdw.py:573 -msgid "Admin actions" -msgstr "Akcji administratorskich" +#: rcgcdw.py:584 +msgid "Most active user" +msgid_plural "Most active users" +msgstr[0] "Najbardziej aktywny użytkownik" +msgstr[1] "Najbardziej aktywni użytkownicy" +msgstr[2] "Najbardziej aktywni użytkownicy" -#: rcgcdw.py:573 -msgid "Bytes changed" -msgstr "Zmienionych bajtów" - -#: rcgcdw.py:573 -msgid "Day score" -msgstr "Wynik dnia" - -#: rcgcdw.py:573 +#: rcgcdw.py:584 msgid "Edits made" msgstr "Zrobionych edycji" -#: rcgcdw.py:573 -msgid "Most active hours" -msgstr "Najbardziej aktywne godziny" - -#: rcgcdw.py:573 -msgid "Most active users" -msgstr "Najbardziej aktywni użytkownicy" - -#: rcgcdw.py:573 -msgid "New articles" -msgstr "Nowych artykułów" - -#: rcgcdw.py:573 +#: rcgcdw.py:584 msgid "New files" msgstr "Nowych plików" -#: rcgcdw.py:573 +#: rcgcdw.py:584 +msgid "Admin actions" +msgstr "Akcji administratorskich" + +#: rcgcdw.py:584 +msgid "Bytes changed" +msgstr "Zmienionych bajtów" + +#: rcgcdw.py:584 +msgid "New articles" +msgstr "Nowych artykułów" + +#: rcgcdw.py:584 msgid "Unique contributors" msgstr "Unikalnych edytujących" -#: rcgcdw.py:662 +#: rcgcdw.py:584 +msgid "Most active hour" +msgid_plural "Most active hours" +msgstr[0] "Najbardziej aktywna godzina" +msgstr[1] "Najbardziej aktywne godziny" +msgstr[2] "Najbardziej aktywne godziny" + +#: rcgcdw.py:584 +msgid "Day score" +msgstr "Wynik dnia" + +#: rcgcdw.py:674 +#, python-brace-format msgid "Connection to {wiki} seems to be stable now." msgstr "Połączenie z {wiki} wygląda na stabilne." -#: rcgcdw.py:662 rcgcdw.py:715 +#: rcgcdw.py:674 rcgcdw.py:729 msgid "Connection status" msgstr "Problem z połączeniem" -#: rcgcdw.py:715 +#: rcgcdw.py:729 +#, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki} nie działa lub jest nieosiągalna." -#: rcgcdw.py:737 -msgid "{wiki} is back up!" -msgstr "{wiki} jest ponownie osiągalna!" +#: rcgcdw.py:751 +msgid "director" +msgstr "Dyrektor" + +#: rcgcdw.py:751 +msgid "bot" +msgstr "Bot" + +#: rcgcdw.py:751 +msgid "editor" +msgstr "Redaktor" + +#: rcgcdw.py:751 +msgid "directors" +msgstr "Dyrektorzy" + +#: rcgcdw.py:751 +msgid "sysop" +msgstr "Administrator" + +#: rcgcdw.py:751 +msgid "bureaucrat" +msgstr "Biurokrata" + +#: rcgcdw.py:751 +msgid "reviewer" +msgstr "Przeglądający" + +#: rcgcdw.py:751 +msgid "autoreview" +msgstr "Automatycznie przeglądający" + +#: rcgcdw.py:751 +msgid "autopatrol" +msgstr "Automatycznie zatwierdzający" + +#: rcgcdw.py:751 +msgid "wiki_guardian" +msgstr "Strażnik wiki" + +#~ msgid "{wiki} is back up!" +#~ msgstr "{wiki} jest ponownie osiągalna!" #~ msgid "Moved {article} to redirect page ({title})" #~ msgstr "Przeniesiono {article} do przekierowania ({title})" diff --git a/rcgcdw.pot b/rcgcdw.pot index d75b2ee..7f63349 100644 --- a/rcgcdw.pot +++ b/rcgcdw.pot @@ -1,407 +1,464 @@ # SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR ORGANIZATION +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2018-07-12 10:57+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-12 11:29+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" +"Language: \n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" +"Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: pygettext.py 1.5\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - -#: rcgcdw.py:123 +#: rcgcdw.py:124 msgid "(N!) " msgstr "" -#: rcgcdw.py:123 +#: rcgcdw.py:124 msgid "m " msgstr "" -#: rcgcdw.py:141 -msgid "([preview]({link}) | [undo]({undolink}))" -msgstr "" - -#: rcgcdw.py:141 rcgcdw.py:167 +#: rcgcdw.py:142 rcgcdw.py:168 msgid "Options" msgstr "" #: rcgcdw.py:142 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: rcgcdw.py:143 +#, python-brace-format msgid "Uploaded a new version of {name}" msgstr "" -#: rcgcdw.py:144 +#: rcgcdw.py:145 +#, python-brace-format msgid "Uploaded {name}" msgstr "" -#: rcgcdw.py:157 +#: rcgcdw.py:158 msgid "**No license!**" msgstr "" -#: rcgcdw.py:167 +#: rcgcdw.py:168 +#, python-brace-format msgid "([preview]({link}))" msgstr "" -#: rcgcdw.py:168 +#: rcgcdw.py:169 +#, python-brace-format msgid "" "{desc}\n" "License: {license}" msgstr "" -#: rcgcdw.py:171 +#: rcgcdw.py:172 +#, python-brace-format msgid "Deleted page {article}" msgstr "" -#: rcgcdw.py:174 +#: rcgcdw.py:175 +#, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "" -#: rcgcdw.py:177 -msgid "A redirect has been made" -msgstr "" - -#: rcgcdw.py:177 +#: rcgcdw.py:178 msgid "No redirect has been made" msgstr "" #: rcgcdw.py:178 +msgid "A redirect has been made" +msgstr "" + +#: rcgcdw.py:179 +#, python-brace-format msgid "Moved {article} to {target}" msgstr "" -#: rcgcdw.py:181 +#: rcgcdw.py:182 +#, python-brace-format msgid "Moved {article} to {title} over redirect" msgstr "" -#: rcgcdw.py:184 +#: rcgcdw.py:185 +#, python-brace-format msgid "Moved protection settings from {article} to {title}" msgstr "" -#: rcgcdw.py:188 +#: rcgcdw.py:189 msgid "infinity and beyond" msgstr "" -#: rcgcdw.py:189 +#: rcgcdw.py:190 +#, python-brace-format msgid "Blocked {blocked_user} for {time}" msgstr "" -#: rcgcdw.py:193 +#: rcgcdw.py:194 +#, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "" -#: rcgcdw.py:197 +#: rcgcdw.py:198 +#, python-brace-format msgid "Unblocked {blocked_user}" msgstr "" -#: rcgcdw.py:201 +#: rcgcdw.py:202 +#, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "" -#: rcgcdw.py:205 +#: rcgcdw.py:206 +#, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "" -#: rcgcdw.py:209 +#: rcgcdw.py:210 +#, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "" -#: rcgcdw.py:213 +#: rcgcdw.py:214 msgid "Location" msgstr "" -#: rcgcdw.py:215 +#: rcgcdw.py:216 msgid "About me" msgstr "" -#: rcgcdw.py:217 +#: rcgcdw.py:218 msgid "Google link" msgstr "" -#: rcgcdw.py:219 +#: rcgcdw.py:220 msgid "Facebook link" msgstr "" -#: rcgcdw.py:221 +#: rcgcdw.py:222 msgid "Twitter link" msgstr "" -#: rcgcdw.py:223 +#: rcgcdw.py:224 msgid "Reddit link" msgstr "" -#: rcgcdw.py:225 +#: rcgcdw.py:226 msgid "Twitch link" msgstr "" -#: rcgcdw.py:227 +#: rcgcdw.py:228 msgid "PSN link" msgstr "" -#: rcgcdw.py:229 +#: rcgcdw.py:230 msgid "VK link" msgstr "" -#: rcgcdw.py:231 +#: rcgcdw.py:232 msgid "XVL link" msgstr "" -#: rcgcdw.py:233 +#: rcgcdw.py:234 msgid "Steam link" msgstr "" -#: rcgcdw.py:235 +#: rcgcdw.py:236 msgid "Unknown" msgstr "" -#: rcgcdw.py:236 +#: rcgcdw.py:237 +#, python-brace-format msgid "Edited {target}'s profile" msgstr "" -#: rcgcdw.py:237 +#: rcgcdw.py:238 +#, python-brace-format msgid "{field} field changed to: {desc}" msgstr "" -#: rcgcdw.py:241 +#: rcgcdw.py:242 +#, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "" -#: rcgcdw.py:245 +#: rcgcdw.py:246 +#, python-brace-format msgid "Changed group membership for {target}" msgstr "" -#: rcgcdw.py:247 +#: rcgcdw.py:248 msgid "System" msgstr "" -#: rcgcdw.py:249 +#: rcgcdw.py:250 +#, python-brace-format msgid "{target} got autopromoted to a new usergroup" msgstr "" -#: rcgcdw.py:259 rcgcdw.py:261 +#: rcgcdw.py:260 rcgcdw.py:262 msgid "none" msgstr "" -#: rcgcdw.py:262 rcgcdw.py:383 +#: rcgcdw.py:263 rcgcdw.py:385 msgid "No description provided" msgstr "" -#: rcgcdw.py:263 +#: rcgcdw.py:264 +#, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "" -#: rcgcdw.py:266 +#: rcgcdw.py:267 +#, python-brace-format msgid "Protected {target}" msgstr "" -#: rcgcdw.py:270 +#: rcgcdw.py:271 +#, python-brace-format msgid "Changed protection level for {article}" msgstr "" -#: rcgcdw.py:274 +#: rcgcdw.py:275 +#, python-brace-format msgid "Removed protection from {article}" msgstr "" -#: rcgcdw.py:277 -msgid "Changed visibility of revision(s) on page {article} " -msgstr "" +#: rcgcdw.py:279 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "" +msgstr[1] "" -#: rcgcdw.py:280 -msgid "Imported {article} with {count} revision(s)" -msgstr "" +#: rcgcdw.py:282 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" +msgstr[1] "" -#: rcgcdw.py:283 +#: rcgcdw.py:285 +#, python-brace-format msgid "Restored {article}" msgstr "" -#: rcgcdw.py:286 +#: rcgcdw.py:288 msgid "Changed visibility of log events" msgstr "" -#: rcgcdw.py:289 +#: rcgcdw.py:291 msgid "Imported interwiki" msgstr "" -#: rcgcdw.py:292 +#: rcgcdw.py:294 +#, python-brace-format msgid "Edited abuse filter number {number}" msgstr "" -#: rcgcdw.py:295 +#: rcgcdw.py:297 +#, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "" -#: rcgcdw.py:298 +#: rcgcdw.py:300 msgid "Added an entry to the interwiki table" msgstr "" -#: rcgcdw.py:299 rcgcdw.py:303 +#: rcgcdw.py:301 rcgcdw.py:305 +#, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "" -#: rcgcdw.py:302 +#: rcgcdw.py:304 msgid "Edited an entry in interwiki table" msgstr "" -#: rcgcdw.py:306 +#: rcgcdw.py:308 msgid "Deleted an entry in interwiki table" msgstr "" -#: rcgcdw.py:307 +#: rcgcdw.py:309 +#, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "" -#: rcgcdw.py:310 +#: rcgcdw.py:312 +#, python-brace-format msgid "Changed the content model of the page {article}" msgstr "" -#: rcgcdw.py:311 +#: rcgcdw.py:313 +#, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "" -#: rcgcdw.py:314 +#: rcgcdw.py:316 +#, python-brace-format msgid "Edited the sprite for {article}" msgstr "" -#: rcgcdw.py:317 +#: rcgcdw.py:319 +#, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "" -#: rcgcdw.py:320 +#: rcgcdw.py:322 +#, python-brace-format msgid "Edited the slice for {article}" msgstr "" -#: rcgcdw.py:323 +#: rcgcdw.py:325 +#, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:327 +#: rcgcdw.py:329 +#, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:331 +#: rcgcdw.py:333 +#, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:334 +#: rcgcdw.py:336 +#, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "" -#: rcgcdw.py:355 +#: rcgcdw.py:357 msgid "Tags" msgstr "" -#: rcgcdw.py:478 +#: rcgcdw.py:480 msgid "Unable to process the event" msgstr "" -#: rcgcdw.py:478 +#: rcgcdw.py:480 msgid "error" msgstr "" -#: rcgcdw.py:558 +#: rcgcdw.py:560 msgid "Daily overview" msgstr "" -#: rcgcdw.py:574 -msgid " ({} actions)" -msgstr "" +#: rcgcdw.py:576 +msgid " ({} action)" +msgid_plural "({} actions)" +msgstr[0] "" +msgstr[1] "" -#: rcgcdw.py:575 -msgid " UTC ({} actions)" -msgstr "" +#: rcgcdw.py:577 +msgid " UTC ({} action)" +msgid_plural " UTC ({} actions)" +msgstr[0] "" +msgstr[1] "" -#: rcgcdw.py:577 rcgcdw.py:578 +#: rcgcdw.py:579 rcgcdw.py:580 msgid "But nobody came" msgstr "" -#: rcgcdw.py:582 -msgid "Admin actions" -msgstr "" +#: rcgcdw.py:584 +msgid "Most active user" +msgid_plural "Most active users" +msgstr[0] "" +msgstr[1] "" -#: rcgcdw.py:582 -msgid "Bytes changed" -msgstr "" - -#: rcgcdw.py:582 -msgid "Day score" -msgstr "" - -#: rcgcdw.py:582 +#: rcgcdw.py:584 msgid "Edits made" msgstr "" -#: rcgcdw.py:582 -msgid "Most active hours" -msgstr "" - -#: rcgcdw.py:582 -msgid "Most active users" -msgstr "" - -#: rcgcdw.py:582 -msgid "New articles" -msgstr "" - -#: rcgcdw.py:582 +#: rcgcdw.py:584 msgid "New files" msgstr "" -#: rcgcdw.py:582 +#: rcgcdw.py:584 +msgid "Admin actions" +msgstr "" + +#: rcgcdw.py:584 +msgid "Bytes changed" +msgstr "" + +#: rcgcdw.py:584 +msgid "New articles" +msgstr "" + +#: rcgcdw.py:584 msgid "Unique contributors" msgstr "" -#: rcgcdw.py:672 +#: rcgcdw.py:584 +msgid "Most active hour" +msgid_plural "Most active hours" +msgstr[0] "" +msgstr[1] "" + +#: rcgcdw.py:584 +msgid "Day score" +msgstr "" + +#: rcgcdw.py:674 +#, python-brace-format msgid "Connection to {wiki} seems to be stable now." msgstr "" -#: rcgcdw.py:672 rcgcdw.py:727 +#: rcgcdw.py:674 rcgcdw.py:729 msgid "Connection status" msgstr "" -#: rcgcdw.py:727 +#: rcgcdw.py:729 +#, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "" -#: rcgcdw.py:749 -msgid "autopatrol" -msgstr "" - -#: rcgcdw.py:749 -msgid "autoreview" -msgstr "" - -#: rcgcdw.py:749 -msgid "bot" -msgstr "" - -#: rcgcdw.py:749 -msgid "bureaucrat" -msgstr "" - -#: rcgcdw.py:749 +#: rcgcdw.py:751 msgid "director" msgstr "" -#: rcgcdw.py:749 -msgid "directors" +#: rcgcdw.py:751 +msgid "bot" msgstr "" -#: rcgcdw.py:749 +#: rcgcdw.py:751 msgid "editor" msgstr "" -#: rcgcdw.py:749 -msgid "reviewer" +#: rcgcdw.py:751 +msgid "directors" msgstr "" -#: rcgcdw.py:749 +#: rcgcdw.py:751 msgid "sysop" msgstr "" -#: rcgcdw.py:749 -msgid "wiki_guardian" +#: rcgcdw.py:751 +msgid "bureaucrat" msgstr "" +#: rcgcdw.py:751 +msgid "reviewer" +msgstr "" + +#: rcgcdw.py:751 +msgid "autoreview" +msgstr "" + +#: rcgcdw.py:751 +msgid "autopatrol" +msgstr "" + +#: rcgcdw.py:751 +msgid "wiki_guardian" +msgstr "" diff --git a/rcgcdw.py b/rcgcdw.py index 6d465aa..c1deeca 100644 --- a/rcgcdw.py +++ b/rcgcdw.py @@ -36,6 +36,7 @@ if settings["limitrefetch"] != -1 and os.path.exists("lastchange.txt") == False: logging.info("Current settings: {settings}".format(settings=settings)) lang = gettext.translation('rcgcdw', localedir='locale', languages=[settings["lang"]]) lang.install() +ngettext = lang.ngettext def send(message, name, avatar): send_to_discord({"content": message, "avatar_url": avatar, "username": name}) @@ -273,11 +274,12 @@ def webhook_formatter(action, STATIC, **params): link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Removed protection from {article}").format(article=params["title"]) elif action == "delete/revision": + amount = len(params["amount"]) link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) - embed["title"] = _("Changed visibility of revision(s) on page {article} ").format(article=params["title"]) + embed["title"] = ngettext("Changed visibility of revision on page {article} ", "Changed visibility of {amount} revisions on page {article} ", amount).format(article=params["title"], amount=amount) elif action == "import/upload": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) - embed["title"] = _("Imported {article} with {count} revision(s)").format(article=params["title"], count=params["amount"]) + embed["title"] = ngettext("Imported {article} with {count} revision", "Imported {article} with {count} revisions", params["amount"]).format(article=params["title"], count=params["amount"]) elif action == "delete/restore": link = "https://{wiki}.gamepedia.com/{article}".format(wiki=settings["wiki"], article=params["title"].replace(" ", "_")) embed["title"] = _("Restored {article}").format(article=params["title"]) @@ -394,7 +396,7 @@ def first_pass(change): #I've decided to split the embed formatter and change ha except KeyError: STATIC_VARS = {**STATIC_VARS ,**{"color": "", "icon": ""}} logging.error("No value in the settings has been given for {}".format(combination)) - if combination == "protect/protect" + if combination == "protect/protect": webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, settings=change["logparams"]["description"]) elif combination=="protect/modify": webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, settings=change["logparams"]["description"]) @@ -411,7 +413,7 @@ def first_pass(change): #I've decided to split the embed formatter and change ha elif combination=="delete/restore": webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) elif combination=="delete/revision": - webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment) + webhook_formatter(combination, STATIC_VARS, user=change["user"], title=change["title"], desc=parsedcomment, amount=change["logparams"]["ids"]) elif combination=="delete/event": webhook_formatter(combination, STATIC_VARS, user=change["user"], desc=parsedcomment) elif combination=="import/upload": @@ -571,15 +573,15 @@ def day_overview(): #time.strftime('%Y-%m-%dT%H:%M:%S.000Z', time.gmtime(time.ti active_hours = [] for hour, numberh in Counter(hours).most_common(list(v).count(max(v))): #find most active users active_hours.append(str(hour)) - usramount = _(" ({} actions)").format(numberu) - houramount = _(" UTC ({} actions)").format(numberh) + usramount = ngettext(" ({} action)", " ({} actions)", numberu).format(numberu) + houramount = ngettext(" UTC ({} action)", " UTC ({} actions)", numberh).format(numberh) else: active_users = [_("But nobody came")] #a reference to my favorite game of all the time, sorry ^_^ active_hours = [_("But nobody came")] usramount = "" houramount = "" embed["fields"] = [] - fields = ((_("Most active users"), ', '.join(active_users) + usramount), (_("Edits made"), edits), (_("New files"), files), (_("Admin actions"), admin), (_("Bytes changed"), changed_bytes), (_("New articles"), new_articles), (_("Unique contributors"), str(len(activity))), (_("Most active hours"), ', '.join(active_hours) + houramount), (_("Day score"), str(overall))) + fields = ((ngettext("Most active user", "Most active users", len(active_users)), ', '.join(active_users) + usramount), (_("Edits made"), edits), (_("New files"), files), (_("Admin actions"), admin), (_("Bytes changed"), changed_bytes), (_("New articles"), new_articles), (_("Unique contributors"), str(len(activity))), (ngettext("Most active hour", "Most active hours", len(active_hours)), ', '.join(active_hours) + houramount), (_("Day score"), str(overall))) for name, value in fields: embed["fields"].append({"name": name, "value": value}) data = {} From ebb9b7dfb343e1581a65fac9d5dd3c4b362b3214 Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 12:34:33 +0200 Subject: [PATCH 06/11] Updated pl translation --- locale/pl/LC_MESSAGES/rcgcdw.mo | Bin 8061 -> 8061 bytes locale/pl/LC_MESSAGES/rcgcdw.po | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/locale/pl/LC_MESSAGES/rcgcdw.mo b/locale/pl/LC_MESSAGES/rcgcdw.mo index 695f40c122647f90ee9ed433761396fe980f28d2..b469ff87c50c5add776c301f04c91d548eb30008 100644 GIT binary patch delta 30 mcmexs_t$Pipb(3Zm9fd@P@yD7#?;9>gtZw{H$M@c$qfLk847^_ delta 30 mcmexs_t$Pipb(3pm5JfzP@yD7#>~k(gtZwnH$M@c$qfLkCJKfC diff --git a/locale/pl/LC_MESSAGES/rcgcdw.po b/locale/pl/LC_MESSAGES/rcgcdw.po index 4f5cd41..43235ca 100644 --- a/locale/pl/LC_MESSAGES/rcgcdw.po +++ b/locale/pl/LC_MESSAGES/rcgcdw.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-07-12 11:29+0200\n" -"PO-Revision-Date: 2018-07-12 11:41+0200\n" +"PO-Revision-Date: 2018-07-12 12:34+0200\n" "Last-Translator: Frisk \n" "Language-Team: \n" "Language: pl\n" @@ -364,14 +364,14 @@ msgstr "Podsumowanie dnia" msgid " ({} action)" msgid_plural "({} actions)" msgstr[0] " ({} akcja)" -msgstr[1] " ({} akcji)" +msgstr[1] " ({} akcje)" msgstr[2] " ({} akcji)" #: rcgcdw.py:577 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] " UTC ({} akcja)" -msgstr[1] " UTC ({} akcji)" +msgstr[1] " UTC ({} akcje)" msgstr[2] " UTC ({} akcji)" #: rcgcdw.py:579 rcgcdw.py:580 From 8d8330b63fdd22eed48d0f7e7c3915a4fafd140e Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 12:49:51 +0200 Subject: [PATCH 07/11] Updated CONTRIBUTING.md --- CONTRIBUTING.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 13953ea..0dc0654 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,11 @@ Welcome! If you got here, it means you want to learn how to contribute to my little project. That's great! Thank you for your interest. ## Code ## -This may be a bit painful, the quality of code can be very... Questionable, to say the least. However, if you like adventures, you are free to contribute to the project! All I ask you is just so you send merge requests to the testing branch. +This may be a bit painful, the quality of code can be very... Questionable, to say the least. However, if you like adventures, you are free to contribute to the project! All I ask you is just so you send merge requests to the testing unstable. +Current branch rules are as follows: +master - the most stable branch that has been tested for at least one day. +testing - testing branch is what all of my hosted scripts run. It is used to test the code before merging it with master branch. All languages must be finished for code to be pushed to this branch. +unstable - the most unstable of unstable. Can result in frying the machine, well, not really, but all of new changes come here first, after some internal testing and translations it can be merged with testing branch. ## Translations ## If you speak in other languages than English, you are more than welcome to. All you need to do, is grab the [translation template file](rcgcdw.pot) and fill out the empty strings under every English sentence. You can use software like Poedit or use your favorite text editor to do that. If you are looking for examples, you can look at [Polish translation](/locale/pl/LC_MESSAGES/rcgcdw.po). After you translate it, you can either send a merge request to the testing branch, or, if you don't know git [contact me directly](https://minecraft.gamepedia.com/User:Frisk#Contact) so I can do this for you. From 408fc01a30d4f7c51ad31bd61954abfb73350b67 Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 12:51:40 +0200 Subject: [PATCH 08/11] Fixed formatting --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0dc0654..e99865f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,10 +3,10 @@ If you got here, it means you want to learn how to contribute to my little proje ## Code ## This may be a bit painful, the quality of code can be very... Questionable, to say the least. However, if you like adventures, you are free to contribute to the project! All I ask you is just so you send merge requests to the testing unstable. -Current branch rules are as follows: -master - the most stable branch that has been tested for at least one day. -testing - testing branch is what all of my hosted scripts run. It is used to test the code before merging it with master branch. All languages must be finished for code to be pushed to this branch. -unstable - the most unstable of unstable. Can result in frying the machine, well, not really, but all of new changes come here first, after some internal testing and translations it can be merged with testing branch. +Current branch rules are as follows: +`master` - the most stable branch that has been tested for at least one day. +`testing `- testing branch is what all of my hosted scripts run. It is used to test the code before merging it with master branch. All languages must be finished for code to be pushed to this branch. +`unstable` - the most unstable of unstable. Can result in frying the machine, well, not really, but all of new changes come here first, after some internal testing and translations it can be merged with testing branch. ## Translations ## If you speak in other languages than English, you are more than welcome to. All you need to do, is grab the [translation template file](rcgcdw.pot) and fill out the empty strings under every English sentence. You can use software like Poedit or use your favorite text editor to do that. If you are looking for examples, you can look at [Polish translation](/locale/pl/LC_MESSAGES/rcgcdw.po). After you translate it, you can either send a merge request to the testing branch, or, if you don't know git [contact me directly](https://minecraft.gamepedia.com/User:Frisk#Contact) so I can do this for you. From e0ec3ed064d52e4b4d1adff5adaf897dc386c9d5 Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 15:44:57 +0200 Subject: [PATCH 09/11] Fetch big amount after internet connection is good --- rcgcdw.py | 1 + 1 file changed, 1 insertion(+) diff --git a/rcgcdw.py b/rcgcdw.py index c1deeca..7421063 100644 --- a/rcgcdw.py +++ b/rcgcdw.py @@ -712,6 +712,7 @@ class recent_changes_class(object): if looped == False: while 1: #recursed loop, check for connection (every 10 seconds) as long as three services are down, don't do anything else if self.check_connection(looped=True): + recent_changes.fetch(amount=settings["limitrefetch"]) break time.sleep(10) return False From 748f9470523edac0ea6a9a429c234d2386a5556f Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 15:47:44 +0200 Subject: [PATCH 10/11] If failed retriving changes, for the love of god, DO NOT RESET THE LAST CHANGE ID --- rcgcdw.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rcgcdw.py b/rcgcdw.py index 7421063..fcf1051 100644 --- a/rcgcdw.py +++ b/rcgcdw.py @@ -638,7 +638,7 @@ class recent_changes_class(object): self.unsent_messages = self.unsent_messages[num:] logging.debug(self.unsent_messages) last_check = self.fetch_changes(amount=amount) - self.recent_id = last_check if last_check is not None else self.recent_id + self.recent_id = last_check if last_check is not None else self.file_id if settings["limitrefetch"] != -1 and self.recent_id != self.file_id: self.file_id = self.recent_id with open("lastchange.txt", "w") as record: From 1380deafcbee778821bfa5040b72ddab45e458a8 Mon Sep 17 00:00:00 2001 From: Frisk Date: Thu, 12 Jul 2018 18:42:29 +0200 Subject: [PATCH 11/11] Added FR translation --- locale/fr/LC_MESSAGES/rcgcdw.mo | Bin 7065 -> 7984 bytes locale/fr/LC_MESSAGES/rcgcdw.po | 345 +++++++++++++++++++++----------- 2 files changed, 224 insertions(+), 121 deletions(-) diff --git a/locale/fr/LC_MESSAGES/rcgcdw.mo b/locale/fr/LC_MESSAGES/rcgcdw.mo index 785353c5e541d0dba167a991f8ae4844626545f4..f492b2b3949e33644de8f1ba009ea6854a0838e0 100644 GIT binary patch delta 2826 zcmZwHTWl0n9LMp~axKIiPsp@#9NFcM!Y--XaFC4(0ECVc>DggQzX%o{`YfsX6KwU z=l?%_Y}tYC(IcfZA2qZ-;#{I>hB0G!*=#;&J#&pY2iM{G*pIXDer&)8u?%0u7=DNg z@hjxd{KQ8Ep29^~R$$E8*on2qjGDD{^k5>oF@#I_z6bTdLA(IJz!v-qEiRpBObV~V z5_}t*@DP^cAE@U_&oZV6JCR3C59)<_aWV6oBpp5Q2-e{XxBx%FC3pfgP^@t3{-vm$ z*oM_Of;IRAYT&n!xy|ROH~j_~!u)_8cnV9gotwSPZ`RVO$Ni`+dk5R_18l@os0kPI z8ge~ej47~Y z*HJ5c7d6pGk%y7`G{>Uv$5Frg0rkeep%#=+L8wRzP!q;5AL~#Hy#V!GV+s4OAGULW zT{c~)9qB=feb|I!xEK%MdwIruiF&iA7+ooO6E)5eRLYJcf2Mf;l=Y|@=|I+Kw%~b~ z7^R~k+k@JogQ%_k2=&8XBWF{g%lTe`D#lINio3BBU&Jmvi4S8f6|4nJpla!T)baiu zFTx56L$xv5!>8VS2P)TT)B_Kps(TXkM&F{vB38K!Tkv8WK>hx4)WDyhp8Fg1#?@@6 zcBmV*vko7cZy2eSQL~RuCl?+?<}imaj^CjM+)z1HR3q5J_kE}Zy^c!FiO5p&aRuL3 zpi*@&UW(&Lw#>1}pHM|UlkKR~`LCd(YHULlMHliLvl=zQc4XJggUE`_GpK(|FJU_# zM%HTPkx&(DJ!+g5RIzoSp1T}%D%PR?&uqq8<~O_PkT&xKY9TM9-uw;Jz~4vLXR)su z_-xcf3nFV##n*(Is10=*x+8l~r=mAZ*Kf?^8j^zWWh3rSx zVqQVz{8Lo1&LYtqidIs#<@}pN)qYliKxgJ?n=FeONrNT_kta<8fL*huse zYF823o@cQlw37s{kmLl>Ts*7)MgM@6UzxD zUagDhA#~Q%t|ycewQfTHuh$UQ5E}^<#3JG*Li6XElC_n%jZj5gPN?ae=@6>gYKU55 z191y6-8R!%8GX^Y+Z6RXQDwiLaCFT!43Ai+Kb!EXW@4=1SYBx|(eK*ZJ^$a|hnvs( zEX*rhl9vga3!e<%D6E_KxbU^S*_(zkSvM7q6}{Z;1X*v;$@*T>sH-8}U8c{=n!dny zouJ=$vL>GJ-F|MK?qrM`PjDe@kJVL8J>&W&GnDZL&91~+uCMZTf5pi!&${P_obt&y>+6wcw=7SnHw73T~a-rMs60CQ|J&c|DFLfaC%`pV z<}%<0{u#Zg6d2d{bv^3^cY1-JF)2$X`-8MOotG=(sYE)F$&yO_a;;M1rfod1GnK5c rrmCxTIzf(|9M4XU=aSSsNR|Q{chVUfq;1*@c2W^GmnAn$RWPRp=~4<66f8<QE{EV8w?`Ywls4cIbNB;Fi3ul^H1XWzUs2?VfdNiY` z2d+b{XcJoaJZfTxu?_y5YW!(0`B@&_R#yV_Z z)I}IZ)xZd9MH8ru975gqMcMB$!TCj0t@s$U8wYU^(-_Co_z2!WKBhHaU)u9H>h;@& zQG6A(hv!f$`3bcpzhDnmP_ZHGL#=27TKF>d<0)K@mr(b6sA!Elj9O?0RmAzjbd=IB zQ4g9%?det2%x|J5vV=nn6R3eEQ1_k0F8mlZk*mnZRFf{*gu^(9+M<`R52ui1=gp;3 z$IKwvGq*8_US_4*h@fgChAOTV7{O~!uy6>S5m=z^%>4ern=-pP+p!YjHW1d1yPFts@Jyqd7N@)MpDhN{T zWI&2ZA}UD0EP*6=)bm+9P><21+=ERqmQ6=(G_-4SM&a(y9GcDr;@svMp`pCYtQC-XXiv*H{(pwR)oQo^HF%XH`Y}tnO$$ z7AubW*1GIZ{0obh{X5*Aq?P%$@Ioq^8XwbR-<`kRZHEH4oX4&Sp0NK328tbxZnr(K y=-Ps0CX>u%%r3-UW_MfL88pdFnI^k(apYfq7}VJS diff --git a/locale/fr/LC_MESSAGES/rcgcdw.po b/locale/fr/LC_MESSAGES/rcgcdw.po index c556bb8..447fe96 100644 --- a/locale/fr/LC_MESSAGES/rcgcdw.po +++ b/locale/fr/LC_MESSAGES/rcgcdw.po @@ -5,8 +5,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2018-07-05 20:21+0200\n" -"PO-Revision-Date: 2018-07-06 10:44+0200\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-12 11:29+0200\n" +"PO-Revision-Date: 2018-07-12 18:41+0200\n" "Last-Translator: JSBM\n" "Language-Team: \n" "Language: fr\n" @@ -19,39 +20,44 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SearchPath-0: rcgcdw.pot\n" -#: rcgcdw.py:126 +#: rcgcdw.py:124 msgid "(N!) " msgstr "(N!) " -#: rcgcdw.py:126 +#: rcgcdw.py:124 msgid "m " msgstr "m " -#: rcgcdw.py:144 -msgid "([preview]({link}) | [undo]({undolink}))" -msgstr "([Aperçu]({link}) | [Annuler]({undolink}))" - -#: rcgcdw.py:144 rcgcdw.py:170 +#: rcgcdw.py:142 rcgcdw.py:168 msgid "Options" msgstr "Options" -#: rcgcdw.py:145 +#: rcgcdw.py:142 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "([Aperçu]({link}) | [Annuler]({undolink}))" + +#: rcgcdw.py:143 +#, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Téléversement d'une nouvelle version de {name}" -#: rcgcdw.py:147 +#: rcgcdw.py:145 +#, python-brace-format msgid "Uploaded {name}" msgstr "Téléversement de {name}" -#: rcgcdw.py:160 +#: rcgcdw.py:158 msgid "**No license!**" msgstr "**Aucune license!**" -#: rcgcdw.py:170 +#: rcgcdw.py:168 +#, python-brace-format msgid "([preview]({link}))" msgstr "([Aperçu]({link}))" -#: rcgcdw.py:171 +#: rcgcdw.py:169 +#, python-brace-format msgid "" "{desc}\n" "License: {license}" @@ -59,310 +65,407 @@ msgstr "" "{desc}\n" "License: {license}" -#: rcgcdw.py:174 +#: rcgcdw.py:172 +#, python-brace-format msgid "Deleted page {article}" msgstr "Suppression de la page {article}" -#: rcgcdw.py:177 +#: rcgcdw.py:175 +#, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "Suppression par écrasement de la redirection {article}" -#: rcgcdw.py:180 -msgid "A redirect has been made" -msgstr "Une redirection a été créée" - -#: rcgcdw.py:180 +#: rcgcdw.py:178 msgid "No redirect has been made" msgstr "Aucune redirection créée" -#: rcgcdw.py:181 +#: rcgcdw.py:178 +msgid "A redirect has been made" +msgstr "Une redirection a été créée" + +#: rcgcdw.py:179 +#, python-brace-format msgid "Moved {article} to {target}" msgstr "Déplacement de {article} vers {target}" -#: rcgcdw.py:184 +#: rcgcdw.py:182 +#, python-brace-format msgid "Moved {article} to {title} over redirect" msgstr "Déplacement de {article} vers {title} par redirection" -#: rcgcdw.py:187 +#: rcgcdw.py:185 +#, python-brace-format msgid "Moved protection settings from {article} to {title}" msgstr "Transfert des paramètres de protection de {article} vers {title}" -#: rcgcdw.py:191 +#: rcgcdw.py:189 msgid "infinity and beyond" msgstr "toujours" -#: rcgcdw.py:192 +#: rcgcdw.py:190 +#, python-brace-format msgid "Blocked {blocked_user} for {time}" msgstr "{blocked_user} a été bloqué pour {time}" -#: rcgcdw.py:196 +#: rcgcdw.py:194 +#, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Modification des paramètres de blocage pour {blocked_user}" -#: rcgcdw.py:200 +#: rcgcdw.py:198 +#, python-brace-format msgid "Unblocked {blocked_user}" msgstr "{blocked_user} a été débloqué" -#: rcgcdw.py:204 +#: rcgcdw.py:202 +#, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Ajout d'un commentaire sur le profil de {target}" -#: rcgcdw.py:208 +#: rcgcdw.py:206 +#, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Réponse à un commentaire sur le profil de {target}" -#: rcgcdw.py:212 +#: rcgcdw.py:210 +#, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Édition d'un commentaire sur le profil de {target}" -#: rcgcdw.py:216 +#: rcgcdw.py:214 msgid "Location" msgstr "Emplacement" -#: rcgcdw.py:218 +#: rcgcdw.py:216 msgid "About me" msgstr "À propos de moi" -#: rcgcdw.py:220 +#: rcgcdw.py:218 msgid "Google link" msgstr "Lien Google" -#: rcgcdw.py:222 +#: rcgcdw.py:220 msgid "Facebook link" msgstr "Lien Facebook" -#: rcgcdw.py:224 +#: rcgcdw.py:222 msgid "Twitter link" msgstr "Lien Twitter" -#: rcgcdw.py:226 +#: rcgcdw.py:224 msgid "Reddit link" msgstr "Lien Reddit" -#: rcgcdw.py:228 +#: rcgcdw.py:226 msgid "Twitch link" msgstr "Lien Twitch" -#: rcgcdw.py:230 +#: rcgcdw.py:228 msgid "PSN link" msgstr "Lien PSN" -#: rcgcdw.py:232 +#: rcgcdw.py:230 msgid "VK link" msgstr "Lien VK" -#: rcgcdw.py:234 +#: rcgcdw.py:232 msgid "XVL link" msgstr "Lien XVL" -#: rcgcdw.py:236 +#: rcgcdw.py:234 msgid "Steam link" msgstr "Lien Steam" -#: rcgcdw.py:238 +#: rcgcdw.py:236 msgid "Unknown" msgstr "Inconnu" -#: rcgcdw.py:239 +#: rcgcdw.py:237 +#, python-brace-format msgid "Edited {target}'s profile" msgstr "Modification du profil de {target}" -#: rcgcdw.py:240 +#: rcgcdw.py:238 +#, python-brace-format msgid "{field} field changed to: {desc}" msgstr "{field} modifié pour: {desc}" -#: rcgcdw.py:244 +#: rcgcdw.py:242 +#, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Retrait d'un commentaire sur le profil de {target}" -#: rcgcdw.py:247 +#: rcgcdw.py:246 +#, python-brace-format msgid "Changed group membership for {target}" msgstr "Modification des groupes pour {target}" -#: rcgcdw.py:251 rcgcdw.py:253 +#: rcgcdw.py:248 +msgid "System" +msgstr "Système" + +#: rcgcdw.py:250 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "{target} a été auto-promu dans un nouveau groupe" + +#: rcgcdw.py:260 rcgcdw.py:262 msgid "none" msgstr "aucun" -#: rcgcdw.py:254 rcgcdw.py:376 +#: rcgcdw.py:263 rcgcdw.py:385 msgid "No description provided" msgstr "Aucune description" -#: rcgcdw.py:255 +#: rcgcdw.py:264 +#, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "Groupe modifié de {old_groups} vers {new_groups}{reason}" -#: rcgcdw.py:258 +#: rcgcdw.py:267 +#, python-brace-format msgid "Protected {target}" msgstr "Protection de {target}" -#: rcgcdw.py:262 +#: rcgcdw.py:271 +#, python-brace-format msgid "Changed protection level for {article}" msgstr "Modification du niveau de protection de {article}" -#: rcgcdw.py:266 +#: rcgcdw.py:275 +#, python-brace-format msgid "Removed protection from {article}" msgstr "Retrait de la protection de {article}" -#: rcgcdw.py:269 -msgid "Changed visibility of revision(s) on page {article} " -msgstr "Modification de la visibilité de révision(s) sur la page {article} " +#: rcgcdw.py:279 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "Modification de la visibilité d'une révision de la page {article} " +msgstr[1] "Modification de la visibilité de {amount} révisions sur la page {article} " -#: rcgcdw.py:272 -msgid "Imported {article} with {count} revision(s)" -msgstr "Article {article} importé avec {count} révision(s)" +#: rcgcdw.py:282 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "Article {article} importé avec {count} révision" +msgstr[1] "Article {article} importé avec {count} révisions" -#: rcgcdw.py:275 +#: rcgcdw.py:285 +#, python-brace-format msgid "Restored {article}" msgstr "Restauration de {article}" -#: rcgcdw.py:278 +#: rcgcdw.py:288 msgid "Changed visibility of log events" msgstr "Modification de la visibilité d'évènements des journaux" -#: rcgcdw.py:281 +#: rcgcdw.py:291 msgid "Imported interwiki" msgstr "Importation d'interwiki" -#: rcgcdw.py:284 +#: rcgcdw.py:294 +#, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Édition de la règle {number} du filtre anti-abus" -#: rcgcdw.py:287 +#: rcgcdw.py:297 +#, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Fusion de l'historique de {article} vers {dest}" -#: rcgcdw.py:290 +#: rcgcdw.py:300 msgid "Added an entry to the interwiki table" msgstr "Ajout d'une entrée à la table interwiki" -#: rcgcdw.py:291 rcgcdw.py:295 +#: rcgcdw.py:301 rcgcdw.py:305 +#, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Préfixe: {prefix}, site: {website} | {desc}" -#: rcgcdw.py:294 +#: rcgcdw.py:304 msgid "Edited an entry in interwiki table" msgstr "Modification d'une entrée de la table interwiki" -#: rcgcdw.py:298 +#: rcgcdw.py:308 msgid "Deleted an entry in interwiki table" msgstr "Retrait d'une entrée de la table interwiki" -#: rcgcdw.py:299 +#: rcgcdw.py:309 +#, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Préfixe: {prefix} | {desc}" -#: rcgcdw.py:302 +#: rcgcdw.py:312 +#, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Modification du modèle de contenu de l'article {article}" -#: rcgcdw.py:303 +#: rcgcdw.py:313 +#, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Modèle changé de {old} à {new}: {reason}" -#: rcgcdw.py:306 +#: rcgcdw.py:316 +#, python-brace-format msgid "Edited the sprite for {article}" msgstr "Édition du sprite de {article}" -#: rcgcdw.py:309 +#: rcgcdw.py:319 +#, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Création d'une feuille de sprite pour {article}" -#: rcgcdw.py:312 +#: rcgcdw.py:322 +#, python-brace-format msgid "Edited the slice for {article}" msgstr "Edited the slice for {article}" -#: rcgcdw.py:315 +#: rcgcdw.py:325 +#, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Création du tag « {tag} »" -#: rcgcdw.py:319 +#: rcgcdw.py:329 +#, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Suppression du tag « {tag} »" -#: rcgcdw.py:323 +#: rcgcdw.py:333 +#, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Activation du tag « {tag} »" -#: rcgcdw.py:326 +#: rcgcdw.py:336 +#, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Désactivation du tag « {tag} »" -#: rcgcdw.py:347 +#: rcgcdw.py:357 msgid "Tags" msgstr "Tags" -#: rcgcdw.py:469 +#: rcgcdw.py:480 msgid "Unable to process the event" msgstr "Impossible d'analyser l'évènement" -#: rcgcdw.py:469 +#: rcgcdw.py:480 msgid "error" msgstr "erreur" -#: rcgcdw.py:549 +#: rcgcdw.py:560 msgid "Daily overview" msgstr "Résumé de la journée" -#: rcgcdw.py:565 -msgid " ({} actions)" -msgstr " ({} actions)" +#: rcgcdw.py:576 +msgid " ({} action)" +msgid_plural "({} actions)" +msgstr[0] " ({} action)" +msgstr[1] " ({} actions)" -#: rcgcdw.py:566 -msgid " UTC ({} actions)" -msgstr " UTC ({} actions)" +#: rcgcdw.py:577 +msgid " UTC ({} action)" +msgid_plural " UTC ({} actions)" +msgstr[0] " UTC ({} action)" +msgstr[1] " UTC ({} actions)" -#: rcgcdw.py:568 rcgcdw.py:569 +#: rcgcdw.py:579 rcgcdw.py:580 msgid "But nobody came" msgstr "Aucune activité" -#: rcgcdw.py:573 -msgid "Admin actions" -msgstr "Actions d'administrateur" +#: rcgcdw.py:584 +msgid "Most active user" +msgid_plural "Most active users" +msgstr[0] "Membre le plus actif" +msgstr[1] "Membres les plus actifs" -#: rcgcdw.py:573 -msgid "Bytes changed" -msgstr "Octets modifiés" - -#: rcgcdw.py:573 -msgid "Day score" -msgstr "Score du jour" - -#: rcgcdw.py:573 +#: rcgcdw.py:584 msgid "Edits made" msgstr "Modifications effectuées" -#: rcgcdw.py:573 -msgid "Most active hours" -msgstr "Heures les plus actives" - -#: rcgcdw.py:573 -msgid "Most active users" -msgstr "Membres les plus actifs" - -#: rcgcdw.py:573 -msgid "New articles" -msgstr "Nouveaux articles" - -#: rcgcdw.py:573 +#: rcgcdw.py:584 msgid "New files" msgstr "Nouveaux fichiers" -#: rcgcdw.py:573 +#: rcgcdw.py:584 +msgid "Admin actions" +msgstr "Actions d'administrateur" + +#: rcgcdw.py:584 +msgid "Bytes changed" +msgstr "Octets modifiés" + +#: rcgcdw.py:584 +msgid "New articles" +msgstr "Nouveaux articles" + +#: rcgcdw.py:584 msgid "Unique contributors" msgstr "Contributeurs uniques" -#: rcgcdw.py:662 +#: rcgcdw.py:584 +msgid "Most active hour" +msgid_plural "Most active hours" +msgstr[0] "Heure la plus active" +msgstr[1] "Heures les plus actives" + +#: rcgcdw.py:584 +msgid "Day score" +msgstr "Score du jour" + +#: rcgcdw.py:674 +#, python-brace-format msgid "Connection to {wiki} seems to be stable now." msgstr "La connexion avec {wiki} semble stable maintenant." -#: rcgcdw.py:662 rcgcdw.py:715 +#: rcgcdw.py:674 rcgcdw.py:729 msgid "Connection status" msgstr "Statut de connexion" -#: rcgcdw.py:715 +#: rcgcdw.py:729 +#, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki} semble être down ou inatteignable." -#: rcgcdw.py:737 -msgid "{wiki} is back up!" -msgstr "{wiki} est de retour!" +#: rcgcdw.py:751 +msgid "director" +msgstr "Directeur" + +#: rcgcdw.py:751 +msgid "bot" +msgstr "Robot" + +#: rcgcdw.py:751 +msgid "editor" +msgstr "editor" + +#: rcgcdw.py:751 +msgid "directors" +msgstr "Directeur" + +#: rcgcdw.py:751 +msgid "sysop" +msgstr "Administrateur" + +#: rcgcdw.py:751 +msgid "bureaucrat" +msgstr "Bureaucrate" + +#: rcgcdw.py:751 +msgid "reviewer" +msgstr "reviewer" + +#: rcgcdw.py:751 +msgid "autoreview" +msgstr "autoreview" + +#: rcgcdw.py:751 +msgid "autopatrol" +msgstr "autopatrol" + +#: rcgcdw.py:751 +msgid "wiki_guardian" +msgstr "Gardien du wiki" + +#~ msgid "{wiki} is back up!" +#~ msgstr "{wiki} est de retour!"