Merge branch 'unstable' into 'testing'

1.2.5

See merge request piotrex43/RcGcDw!11
This commit is contained in:
Frisk 2018-07-12 16:46:29 +00:00
commit 6a5c93d76a
13 changed files with 1537 additions and 635 deletions

1
.gitignore vendored
View file

@ -2,3 +2,4 @@ settings.json
pygettext.py
lastchange.txt
.directory
/debug

View file

@ -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.

Binary file not shown.

View file

@ -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."

Binary file not shown.

View file

@ -0,0 +1,466 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \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 <piotrex43@protonmail.ch>\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"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: rcgcdw.py:124
msgid "(N!) "
msgstr "(N!) "
#: rcgcdw.py:124
msgid "m "
msgstr "m "
#: rcgcdw.py:142 rcgcdw.py:168
msgid "Options"
msgstr "Options"
#: 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:145
#, python-brace-format
msgid "Uploaded {name}"
msgstr "Uploaded {name}"
#: rcgcdw.py:158
msgid "**No license!**"
msgstr "**No license!**"
#: rcgcdw.py:168
#, python-brace-format
msgid "([preview]({link}))"
msgstr "([preview]({link}))"
#: rcgcdw.py:169
#, python-brace-format
msgid ""
"{desc}\n"
"License: {license}"
msgstr ""
"{desc}\n"
"License: {license}"
#: rcgcdw.py:172
#, python-brace-format
msgid "Deleted page {article}"
msgstr "Deleted page {article}"
#: rcgcdw.py:175
#, python-brace-format
msgid "Deleted redirect {article} by overwriting"
msgstr "Deleted redirect {article} by overwriting"
#: rcgcdw.py:178
msgid "No redirect has been made"
msgstr "No redirect has been made"
#: 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:182
#, python-brace-format
msgid "Moved {article} to {title} over redirect"
msgstr "Moved {article} to {title} over redirect"
#: rcgcdw.py:185
#, python-brace-format
msgid "Moved protection settings from {article} to {title}"
msgstr "Moved protection settings from {article} to {title}"
#: rcgcdw.py:189
msgid "infinity and beyond"
msgstr "infinity and beyond"
#: rcgcdw.py:190
#, python-brace-format
msgid "Blocked {blocked_user} for {time}"
msgstr "Blocked {blocked_user} for {time}"
#: rcgcdw.py:194
#, python-brace-format
msgid "Changed block settings for {blocked_user}"
msgstr "Changed block settings for {blocked_user}"
#: rcgcdw.py:198
#, python-brace-format
msgid "Unblocked {blocked_user}"
msgstr "Unblocked {blocked_user}"
#: rcgcdw.py:202
#, python-brace-format
msgid "Left a comment on {target}'s profile"
msgstr "Left a comment on {target}'s profile"
#: 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:210
#, python-brace-format
msgid "Edited a comment on {target}'s profile"
msgstr "Edited a comment on {target}'s profile"
#: rcgcdw.py:214
msgid "Location"
msgstr "Location"
#: rcgcdw.py:216
msgid "About me"
msgstr "About me"
#: rcgcdw.py:218
msgid "Google link"
msgstr "Google link"
#: rcgcdw.py:220
msgid "Facebook link"
msgstr "Facebook link"
#: rcgcdw.py:222
msgid "Twitter link"
msgstr "Twitter link"
#: rcgcdw.py:224
msgid "Reddit link"
msgstr "Reddit link"
#: rcgcdw.py:226
msgid "Twitch link"
msgstr "Twitch link"
#: rcgcdw.py:228
msgid "PSN link"
msgstr "PSN link"
#: rcgcdw.py:230
msgid "VK link"
msgstr "VK link"
#: rcgcdw.py:232
msgid "XVL link"
msgstr "XVL link"
#: rcgcdw.py:234
msgid "Steam link"
msgstr "Steam link"
#: rcgcdw.py:236
msgid "Unknown"
msgstr "Unknown"
#: rcgcdw.py:237
#, python-brace-format
msgid "Edited {target}'s profile"
msgstr "Edited {target}'s profile"
#: rcgcdw.py:238
#, python-brace-format
msgid "{field} field changed to: {desc}"
msgstr "{field} field changed to: {desc}"
#: rcgcdw.py:242
#, python-brace-format
msgid "Deleted a comment on {target}'s profile"
msgstr "Deleted a comment on {target}'s profile"
#: rcgcdw.py:246
#, python-brace-format
msgid "Changed group membership for {target}"
msgstr "Changed group membership for {target}"
#: 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:263 rcgcdw.py:385
msgid "No description provided"
msgstr "No description provided"
#: 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:267
#, python-brace-format
msgid "Protected {target}"
msgstr "Protected {target}"
#: rcgcdw.py:271
#, python-brace-format
msgid "Changed protection level for {article}"
msgstr "Changed protection level for {article}"
#: rcgcdw.py:275
#, python-brace-format
msgid "Removed protection from {article}"
msgstr "Removed protection from {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: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:285
#, python-brace-format
msgid "Restored {article}"
msgstr "Restored {article}"
#: rcgcdw.py:288
msgid "Changed visibility of log events"
msgstr "Changed visibility of log events"
#: rcgcdw.py:291
msgid "Imported interwiki"
msgstr "Imported interwiki"
#: rcgcdw.py:294
#, python-brace-format
msgid "Edited abuse filter number {number}"
msgstr "Edited abuse filter number {number}"
#: rcgcdw.py:297
#, python-brace-format
msgid "Merged revision histories of {article} into {dest}"
msgstr "Merged revision histories of {article} into {dest}"
#: rcgcdw.py:300
msgid "Added an entry to the interwiki table"
msgstr "Added an entry to the interwiki table"
#: rcgcdw.py:301 rcgcdw.py:305
#, python-brace-format
msgid "Prefix: {prefix}, website: {website} | {desc}"
msgstr "Prefix: {prefix}, website: {website} | {desc}"
#: rcgcdw.py:304
msgid "Edited an entry in interwiki table"
msgstr "Edited an entry in interwiki table"
#: rcgcdw.py:308
msgid "Deleted an entry in interwiki table"
msgstr "Deleted an entry in interwiki table"
#: rcgcdw.py:309
#, python-brace-format
msgid "Prefix: {prefix} | {desc}"
msgstr "Prefix: {prefix} | {desc}"
#: 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:313
#, python-brace-format
msgid "Model changed from {old} to {new}: {reason}"
msgstr "Model changed from {old} to {new}: {reason}"
#: rcgcdw.py:316
#, python-brace-format
msgid "Edited the sprite for {article}"
msgstr "Edited the sprite for {article}"
#: rcgcdw.py:319
#, python-brace-format
msgid "Created the sprite sheet for {article}"
msgstr "Created the sprite sheet for {article}"
#: rcgcdw.py:322
#, python-brace-format
msgid "Edited the slice for {article}"
msgstr "Edited the slice for {article}"
#: rcgcdw.py:325
#, python-brace-format
msgid "Created a tag \"{tag}\""
msgstr "Created a tag \"{tag}\""
#: rcgcdw.py:329
#, python-brace-format
msgid "Deleted a tag \"{tag}\""
msgstr "Deleted a tag \"{tag}\""
#: rcgcdw.py:333
#, python-brace-format
msgid "Activated a tag \"{tag}\""
msgstr "Activated a tag \"{tag}\""
#: rcgcdw.py:336
#, python-brace-format
msgid "Deactivated a tag \"{tag}\""
msgstr "Deactivated a tag \"{tag}\""
#: rcgcdw.py:357
msgid "Tags"
msgstr "Tags"
#: rcgcdw.py:480
msgid "Unable to process the event"
msgstr "Unable to process the event"
#: rcgcdw.py:480
msgid "error"
msgstr "error"
#: rcgcdw.py:560
msgid "Daily overview"
msgstr "Daily overview"
#: rcgcdw.py:576
msgid " ({} action)"
msgid_plural "({} actions)"
msgstr[0] " ({} action)"
msgstr[1] " ({} actions)"
#: rcgcdw.py:577
msgid " UTC ({} action)"
msgid_plural " UTC ({} actions)"
msgstr[0] " UTC ({} action)"
msgstr[1] " UTC ({} actions)"
#: rcgcdw.py:579 rcgcdw.py:580
msgid "But nobody came"
msgstr "But nobody came"
#: rcgcdw.py:584
msgid "Most active user"
msgid_plural "Most active users"
msgstr[0] "Most active user"
msgstr[1] "Most active users"
#: rcgcdw.py:584
msgid "Edits made"
msgstr "Edits made"
#: rcgcdw.py:584
msgid "New files"
msgstr "New files"
#: 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: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:674 rcgcdw.py:729
msgid "Connection status"
msgstr "Connection status"
#: rcgcdw.py:729
#, python-brace-format
msgid "{wiki} seems to be down or unreachable."
msgstr "{wiki} seems to be down or unreachable."
#: rcgcdw.py:751
msgid "director"
msgstr "Director"
#: rcgcdw.py:751
msgid "bot"
msgstr "Bot"
#: rcgcdw.py:751
msgid "editor"
msgstr "Editor"
#: rcgcdw.py:751
msgid "directors"
msgstr "Directors"
#: rcgcdw.py:751
msgid "sysop"
msgstr "Administrator"
#: 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"

Binary file not shown.

View file

@ -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!"

Binary file not shown.

View file

@ -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 12:34+0200\n"
"Last-Translator: Frisk <piotrex43@protonmail.ch>\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] " ({} akcje)"
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 ({} akcje)"
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})"

View file

@ -1,363 +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 <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2018-07-05 20:21+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 <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-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:126
#: rcgcdw.py:124
msgid "(N!) "
msgstr ""
#: rcgcdw.py:126
#: rcgcdw.py:124
msgid "m "
msgstr ""
#: rcgcdw.py:144
msgid "([preview]({link}) | [undo]({undolink}))"
msgstr ""
#: rcgcdw.py:144 rcgcdw.py:170
#: rcgcdw.py:142 rcgcdw.py:168
msgid "Options"
msgstr ""
#: rcgcdw.py:145
#: 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:147
#: rcgcdw.py:145
#, python-brace-format
msgid "Uploaded {name}"
msgstr ""
#: rcgcdw.py:160
#: rcgcdw.py:158
msgid "**No license!**"
msgstr ""
#: rcgcdw.py:170
#: rcgcdw.py:168
#, python-brace-format
msgid "([preview]({link}))"
msgstr ""
#: rcgcdw.py:171
#: rcgcdw.py:169
#, python-brace-format
msgid ""
"{desc}\n"
"License: {license}"
msgstr ""
#: rcgcdw.py:174
#: rcgcdw.py:172
#, python-brace-format
msgid "Deleted page {article}"
msgstr ""
#: rcgcdw.py:177
#: rcgcdw.py:175
#, python-brace-format
msgid "Deleted redirect {article} by overwriting"
msgstr ""
#: rcgcdw.py:180
msgid "A redirect has been made"
msgstr ""
#: rcgcdw.py:180
#: rcgcdw.py:178
msgid "No redirect has been made"
msgstr ""
#: rcgcdw.py:181
#: rcgcdw.py:178
msgid "A redirect has been made"
msgstr ""
#: rcgcdw.py:179
#, python-brace-format
msgid "Moved {article} to {target}"
msgstr ""
#: rcgcdw.py:184
#: rcgcdw.py:182
#, python-brace-format
msgid "Moved {article} to {title} over redirect"
msgstr ""
#: rcgcdw.py:187
#: rcgcdw.py:185
#, python-brace-format
msgid "Moved protection settings from {article} to {title}"
msgstr ""
#: rcgcdw.py:191
#: rcgcdw.py:189
msgid "infinity and beyond"
msgstr ""
#: rcgcdw.py:192
#: rcgcdw.py:190
#, python-brace-format
msgid "Blocked {blocked_user} for {time}"
msgstr ""
#: rcgcdw.py:196
#: rcgcdw.py:194
#, python-brace-format
msgid "Changed block settings for {blocked_user}"
msgstr ""
#: rcgcdw.py:200
#: rcgcdw.py:198
#, python-brace-format
msgid "Unblocked {blocked_user}"
msgstr ""
#: rcgcdw.py:204
#: rcgcdw.py:202
#, python-brace-format
msgid "Left a comment on {target}'s profile"
msgstr ""
#: rcgcdw.py:208
#: rcgcdw.py:206
#, python-brace-format
msgid "Replied to a comment on {target}'s profile"
msgstr ""
#: rcgcdw.py:212
#: rcgcdw.py:210
#, python-brace-format
msgid "Edited a comment on {target}'s profile"
msgstr ""
#: rcgcdw.py:216
#: rcgcdw.py:214
msgid "Location"
msgstr ""
#: rcgcdw.py:218
#: rcgcdw.py:216
msgid "About me"
msgstr ""
#: rcgcdw.py:220
#: rcgcdw.py:218
msgid "Google link"
msgstr ""
#: rcgcdw.py:222
#: rcgcdw.py:220
msgid "Facebook link"
msgstr ""
#: rcgcdw.py:224
#: rcgcdw.py:222
msgid "Twitter link"
msgstr ""
#: rcgcdw.py:226
#: rcgcdw.py:224
msgid "Reddit link"
msgstr ""
#: rcgcdw.py:228
#: rcgcdw.py:226
msgid "Twitch link"
msgstr ""
#: rcgcdw.py:230
#: rcgcdw.py:228
msgid "PSN link"
msgstr ""
#: rcgcdw.py:232
#: rcgcdw.py:230
msgid "VK link"
msgstr ""
#: rcgcdw.py:234
#: rcgcdw.py:232
msgid "XVL link"
msgstr ""
#: rcgcdw.py:236
#: rcgcdw.py:234
msgid "Steam link"
msgstr ""
#: rcgcdw.py:238
#: rcgcdw.py:236
msgid "Unknown"
msgstr ""
#: rcgcdw.py:239
#: rcgcdw.py:237
#, python-brace-format
msgid "Edited {target}'s profile"
msgstr ""
#: rcgcdw.py:240
#: rcgcdw.py:238
#, python-brace-format
msgid "{field} field changed to: {desc}"
msgstr ""
#: rcgcdw.py:244
#: rcgcdw.py:242
#, python-brace-format
msgid "Deleted a comment on {target}'s profile"
msgstr ""
#: rcgcdw.py:247
#: rcgcdw.py:246
#, python-brace-format
msgid "Changed group membership for {target}"
msgstr ""
#: rcgcdw.py:251 rcgcdw.py:253
#: rcgcdw.py:248
msgid "System"
msgstr ""
#: rcgcdw.py:250
#, python-brace-format
msgid "{target} got autopromoted to a new usergroup"
msgstr ""
#: rcgcdw.py:260 rcgcdw.py:262
msgid "none"
msgstr ""
#: rcgcdw.py:254 rcgcdw.py:376
#: rcgcdw.py:263 rcgcdw.py:385
msgid "No description provided"
msgstr ""
#: rcgcdw.py:255
#: rcgcdw.py:264
#, python-brace-format
msgid "Groups changed from {old_groups} to {new_groups}{reason}"
msgstr ""
#: rcgcdw.py:258
#: rcgcdw.py:267
#, python-brace-format
msgid "Protected {target}"
msgstr ""
#: rcgcdw.py:262
#: rcgcdw.py:271
#, python-brace-format
msgid "Changed protection level for {article}"
msgstr ""
#: rcgcdw.py:266
#: rcgcdw.py:275
#, python-brace-format
msgid "Removed protection from {article}"
msgstr ""
#: rcgcdw.py:269
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:272
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:275
#: rcgcdw.py:285
#, python-brace-format
msgid "Restored {article}"
msgstr ""
#: rcgcdw.py:278
#: rcgcdw.py:288
msgid "Changed visibility of log events"
msgstr ""
#: rcgcdw.py:281
#: rcgcdw.py:291
msgid "Imported interwiki"
msgstr ""
#: rcgcdw.py:284
#: rcgcdw.py:294
#, python-brace-format
msgid "Edited abuse filter number {number}"
msgstr ""
#: rcgcdw.py:287
#: rcgcdw.py:297
#, python-brace-format
msgid "Merged revision histories of {article} into {dest}"
msgstr ""
#: rcgcdw.py:290
#: rcgcdw.py:300
msgid "Added an entry to the interwiki table"
msgstr ""
#: rcgcdw.py:291 rcgcdw.py:295
#: rcgcdw.py:301 rcgcdw.py:305
#, python-brace-format
msgid "Prefix: {prefix}, website: {website} | {desc}"
msgstr ""
#: rcgcdw.py:294
#: rcgcdw.py:304
msgid "Edited an entry in interwiki table"
msgstr ""
#: rcgcdw.py:298
#: rcgcdw.py:308
msgid "Deleted an entry in interwiki table"
msgstr ""
#: rcgcdw.py:299
#: rcgcdw.py:309
#, python-brace-format
msgid "Prefix: {prefix} | {desc}"
msgstr ""
#: rcgcdw.py:302
#: rcgcdw.py:312
#, python-brace-format
msgid "Changed the content model of the page {article}"
msgstr ""
#: rcgcdw.py:303
#: rcgcdw.py:313
#, python-brace-format
msgid "Model changed from {old} to {new}: {reason}"
msgstr ""
#: rcgcdw.py:306
#: rcgcdw.py:316
#, python-brace-format
msgid "Edited the sprite for {article}"
msgstr ""
#: rcgcdw.py:309
#: rcgcdw.py:319
#, python-brace-format
msgid "Created the sprite sheet for {article}"
msgstr ""
#: rcgcdw.py:312
#: rcgcdw.py:322
#, python-brace-format
msgid "Edited the slice for {article}"
msgstr ""
#: rcgcdw.py:315
#: rcgcdw.py:325
#, python-brace-format
msgid "Created a tag \"{tag}\""
msgstr ""
#: rcgcdw.py:319
#: rcgcdw.py:329
#, python-brace-format
msgid "Deleted a tag \"{tag}\""
msgstr ""
#: rcgcdw.py:323
#: rcgcdw.py:333
#, python-brace-format
msgid "Activated a tag \"{tag}\""
msgstr ""
#: rcgcdw.py:326
#: rcgcdw.py:336
#, python-brace-format
msgid "Deactivated a tag \"{tag}\""
msgstr ""
#: rcgcdw.py:347
#: rcgcdw.py:357
msgid "Tags"
msgstr ""
#: rcgcdw.py:469
#: rcgcdw.py:480
msgid "Unable to process the event"
msgstr ""
#: rcgcdw.py:469
#: rcgcdw.py:480
msgid "error"
msgstr ""
#: rcgcdw.py:549
#: rcgcdw.py:560
msgid "Daily overview"
msgstr ""
#: rcgcdw.py:565
msgid " ({} actions)"
msgstr ""
#: rcgcdw.py:576
msgid " ({} action)"
msgid_plural "({} actions)"
msgstr[0] ""
msgstr[1] ""
#: rcgcdw.py:566
msgid " UTC ({} actions)"
msgstr ""
#: rcgcdw.py:577
msgid " UTC ({} action)"
msgid_plural " UTC ({} actions)"
msgstr[0] ""
msgstr[1] ""
#: rcgcdw.py:568 rcgcdw.py:569
#: rcgcdw.py:579 rcgcdw.py:580
msgid "But nobody came"
msgstr ""
#: rcgcdw.py:573
msgid "Admin actions"
msgstr ""
#: rcgcdw.py:584
msgid "Most active user"
msgid_plural "Most active users"
msgstr[0] ""
msgstr[1] ""
#: rcgcdw.py:573
msgid "Bytes changed"
msgstr ""
#: rcgcdw.py:573
msgid "Day score"
msgstr ""
#: rcgcdw.py:573
#: rcgcdw.py:584
msgid "Edits made"
msgstr ""
#: rcgcdw.py:573
msgid "Most active hours"
msgstr ""
#: rcgcdw.py:573
msgid "Most active users"
msgstr ""
#: rcgcdw.py:573
msgid "New articles"
msgstr ""
#: rcgcdw.py:573
#: rcgcdw.py:584
msgid "New files"
msgstr ""
#: rcgcdw.py:573
#: 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:662
#: 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:662 rcgcdw.py:715
#: rcgcdw.py:674 rcgcdw.py:729
msgid "Connection status"
msgstr ""
#: rcgcdw.py:715
#: rcgcdw.py:729
#, python-brace-format
msgid "{wiki} seems to be down or unreachable."
msgstr ""
#: rcgcdw.py:737
msgid "{wiki} is back up!"
#: rcgcdw.py:751
msgid "director"
msgstr ""
#: rcgcdw.py:751
msgid "bot"
msgstr ""
#: rcgcdw.py:751
msgid "editor"
msgstr ""
#: rcgcdw.py:751
msgid "directors"
msgstr ""
#: rcgcdw.py:751
msgid "sysop"
msgstr ""
#: 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 ""

288
rcgcdw.py
View file

@ -34,11 +34,9 @@ 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
ngettext = lang.ngettext
def send(message, name, avatar):
send_to_discord({"content": message, "avatar_url": avatar, "username": name})
@ -107,7 +105,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:
@ -123,8 +121,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 = ""
@ -169,48 +167,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")
@ -238,90 +236,102 @@ 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]
if action == "rights/rights":
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
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"
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)
elif action == 2:
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 == "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":
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"])
elif action == 11:
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"])
elif action == 8:
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"])
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:
@ -373,95 +383,97 @@ 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)
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))
try:
STATIC_VARS = {**STATIC_VARS ,**{"color": settings["appearance"][combination]["color"], "icon": settings["appearance"][combination]["icon"]}}
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=', '.join(change["logparams"]["oldgroups"]), new_groups=', '.join(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, amount=change["logparams"]["ids"])
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)
@ -471,9 +483,9 @@ 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"])
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!")
@ -561,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 = {}
@ -588,6 +600,7 @@ class recent_changes_class(object):
last_downtime = 0
clock = 0
tags = {}
groups = {}
unsent_messages = []
streak = -1
if settings["limitrefetch"] != -1:
@ -625,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:
@ -699,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
@ -735,7 +749,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)

View file

@ -15,12 +15,13 @@
"no_event": "",
"embed": ""
},
"ignored": ["external"],
"verbose_level": 0,
"show_updown_messages": true,
"overview": false,
"overview_time": "00:00",
"license_regex_detect": "\\{\\{(license|lizenz|licence)",
"license_regex": "\\{\\{(license|lizenz|licence)(\\ |\\|)(?P<license>.*?)\\}\\}",
"license_regex_detect": "\\{\\{(license|lizenz|licence|copyright)",
"license_regex": "\\{\\{(license|lizenz|licence|copyright)(\\ |\\|)(?P<license>.*?)\\}\\}",
"appearance":{
"daily_overview": {
"color": 16312092,