diff --git a/README.md b/README.md index 69f5ba1..6f1e855 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,16 @@ #### Translators #### * MarkusRost – German translation * JSBM – French translation -* Eduaddad – Brazilian Portuguese translation +* [Eduaddad](https://eduardoaddad.com.br) – Brazilian Portuguese translation * BabylonAS and Russian Minecraft Wiki community – Russian translation * Mak_and_Iv – Ukrainian translation Thank you! +[![Translation status](https://weblate.frisk.space/widgets/rcgcdw/-/multi-auto.svg)](https://weblate.frisk.space/engage/rcgcdw/?utm_source=widget) + +### Other extensions/compatible programs ### +* [Wiki Utilities](https://github.com/Sidemen19/Wiki-Utilities) - an integration allowing administrator to execute revert/block or delete actions on the wiki using reactions in messages created by RcGcDw/RcGcDb. Author: [Sidemen19](https://github.com/Sidemen19) + ### Wiki ### For more information, check the [wiki](https://gitlab.com/piotrex43/RcGcDw/wikis/Home)! \ No newline at end of file diff --git a/locale/de/LC_MESSAGES/discussion_formatters.mo b/locale/de/LC_MESSAGES/discussion_formatters.mo index e4a535a..8f21535 100644 Binary files a/locale/de/LC_MESSAGES/discussion_formatters.mo and b/locale/de/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/de/LC_MESSAGES/discussion_formatters.po b/locale/de/LC_MESSAGES/discussion_formatters.po index 88c61e2..648de9e 100644 --- a/locale/de/LC_MESSAGES/discussion_formatters.po +++ b/locale/de/LC_MESSAGES/discussion_formatters.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" -"PO-Revision-Date: 2020-08-11 21:22+0000\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-20 09:22+0000\n" "Last-Translator: MarkusRost \n" "Language-Team: German \n" @@ -17,9 +17,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1.1\n" +"X-Generator: Weblate 4.2.1\n" -#: src/discussion_formatters.py:32 +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "Nicht angemeldeter Benutzer" + +#: src/discussion_formatters.py:34 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " @@ -28,7 +32,7 @@ msgstr "" "[{author}]({author_url}) erstellte [{title}](<{url}f/p/{threadId}>) in " "{forumName}" -#: src/discussion_formatters.py:34 +#: src/discussion_formatters.py:36 #, python-brace-format msgid "" "[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " @@ -37,7 +41,7 @@ msgstr "" "[{author}]({author_url}) erstellte eine Umfrage [{title}](<{url}f/p/" "{threadId}>) in {forumName}" -#: src/discussion_formatters.py:36 +#: src/discussion_formatters.py:38 #, python-brace-format msgid "" "[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " @@ -46,7 +50,7 @@ msgstr "" "[{author}]({author_url}) erstellte ein Quiz [{title}](<{url}f/p/{threadId}>) " "in {forumName}" -#: src/discussion_formatters.py:41 +#: src/discussion_formatters.py:43 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " @@ -55,12 +59,12 @@ msgstr "" "[{author}]({author_url}) erstellte eine [Antwork](<{url}f/p/{threadId}/r/" "{postId}>) zu [{title}](<{url}f/p/{threadId}>) in {forumName}" -#: src/discussion_formatters.py:43 src/discussion_formatters.py:52 -#: src/discussion_formatters.py:129 src/discussion_formatters.py:142 +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 msgid "unknown" msgstr "Unbekannt" -#: src/discussion_formatters.py:47 +#: src/discussion_formatters.py:49 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" @@ -71,7 +75,7 @@ msgstr "" "{user_wall}?threadId={threadId}>) auf der [Nachrichtenseite von {user}]" "(<{url}wiki/Message_Wall:{user_wall}>)" -#: src/discussion_formatters.py:49 +#: src/discussion_formatters.py:51 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" @@ -84,99 +88,97 @@ msgstr "" "Message_Wall:{user_wall}?threadId={threadId}>) auf der [Nachrichtenseite von " "{user}](<{url}wiki/Message_Wall:{user_wall}>)" -#: src/discussion_formatters.py:54 +#: src/discussion_formatters.py:57 #, python-brace-format msgid "" -"[{author}]({author_url}) created a [comment](<{url}wiki/{article}?" -"commentId={commentId}>) on [{article}](<{url}wiki/{article}>)" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" msgstr "" -"[{author}]({author_url}) erstellte ein [Kommentar](<{url}wiki/{article}?" -"commentId={commentId}>) zu [{article}](<{url}wiki/{article}>)" - -#: src/discussion_formatters.py:56 -#, python-brace-format -msgid "" -"[{author}]({author_url}) created a [reply](<{url}wiki/{article}?" -"threadId={threadId}) to a [comment](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) on [{article}](<{url}wiki/{article}" -">)" -msgstr "" -"[{author}]({author_url}) erstellte eine [Antwort](<{url}wiki/{article}?" -"threadId={threadId}>) auf ein [Kommentar](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) zu [{article}](<{url}wiki/{article}" -">)" +"[{author}]({author_url}) erstellte ein [Kommentar](<{url}?" +"commentId={commentId}>) zu [{article}](<{url}>)" #: src/discussion_formatters.py:62 #, python-brace-format msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" +"[{author}]({author_url}) erstellte eine [Antwort](<{url}?" +"commentId={commentId}&replyId={replyId}>) auf ein [Kommentar](<{url}?" +"commentId={commentId}>) zu [{article}](<{url}>)" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" "Unbekanntes Event `{event}` von [{author}]({author_url}), melde es auf dem " "[Support-Server](<{support}>)." -#: src/discussion_formatters.py:90 +#: src/discussion_formatters.py:98 #, python-brace-format msgid "Created \"{title}\"" msgstr "Erstellte „{title}“" -#: src/discussion_formatters.py:94 +#: src/discussion_formatters.py:102 #, python-brace-format msgid "Created a poll \"{title}\"" msgstr "Erstellte eine Umfrage „{title}“" -#: src/discussion_formatters.py:101 +#: src/discussion_formatters.py:109 msgid "Option {}" msgstr "Option {}" -#: src/discussion_formatters.py:102 +#: src/discussion_formatters.py:110 #, python-brace-format msgid "__[View image]({image_url})__" msgstr "__[Bild öffnen]({image_url})__" -#: src/discussion_formatters.py:106 +#: src/discussion_formatters.py:114 #, python-brace-format msgid "Created a quiz \"{title}\"" msgstr "Erstellte ein Quiz „{title}“" -#: src/discussion_formatters.py:121 src/discussion_formatters.py:123 +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 msgid "Tags" msgstr "Tags" -#: src/discussion_formatters.py:121 +#: src/discussion_formatters.py:129 msgid "{} tags" msgstr "{} Tags" -#: src/discussion_formatters.py:126 +#: src/discussion_formatters.py:134 #, python-brace-format msgid "Replied to \"{title}\"" msgstr "Antwortete auf „{title}“" -#: src/discussion_formatters.py:135 +#: src/discussion_formatters.py:143 #, python-brace-format msgid "Created \"{title}\" on {user}'s Message Wall" msgstr "Erstellte „{title}“ auf der Nachrichtenseite von {user}" -#: src/discussion_formatters.py:139 +#: src/discussion_formatters.py:147 #, python-brace-format msgid "Replied to \"{title}\" on {user}'s Message Wall" msgstr "Antwortete auf „{title}“ auf der Nachrichtenseite von {user}" -#: src/discussion_formatters.py:146 +#: src/discussion_formatters.py:154 #, python-brace-format msgid "Commented on {article}" msgstr "Kommentierte zu „{article}“" -#: src/discussion_formatters.py:150 +#: src/discussion_formatters.py:158 #, python-brace-format msgid "Replied to a comment on {article}" msgstr "Antwortete auf ein Kommentar zu „{article}“" -#: src/discussion_formatters.py:154 +#: src/discussion_formatters.py:162 #, python-brace-format msgid "Unknown event `{event}`" msgstr "Unbekanntes Event `{event}`" -#: src/discussion_formatters.py:160 src/discussion_formatters.py:162 +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 msgid "Report this on the support server" msgstr "Melde es auf dem Support-Server" diff --git a/locale/de/LC_MESSAGES/misc.mo b/locale/de/LC_MESSAGES/misc.mo index aafbb10..b3af6e6 100644 Binary files a/locale/de/LC_MESSAGES/misc.mo and b/locale/de/LC_MESSAGES/misc.mo differ diff --git a/locale/de/LC_MESSAGES/misc.po b/locale/de/LC_MESSAGES/misc.po index c5864bb..b184992 100644 --- a/locale/de/LC_MESSAGES/misc.po +++ b/locale/de/LC_MESSAGES/misc.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 14:00+0200\n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" "PO-Revision-Date: 2020-08-03 13:44+0000\n" -"Last-Translator: MarkusRost \n" +"Last-Translator: MarkusRost <>\n" "Language-Team: German \n" "Language: de\n" @@ -17,59 +17,59 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" "X-Loco-Parser: loco_parse_po\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "Wohnort" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "„Über mich“-Abschnitt" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "Google-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "Facebook-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "Twitter-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "Reddit-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "Twitch-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "PSN-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "VK-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "XBL link" msgstr "Xbox-Live-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "Steam-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "Discord-Link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "Battle.net-Link" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" @@ -77,11 +77,10 @@ msgstr "" "\n" "__Und mehr__" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "Unbekannt" -#: src/misc.py:425 +#: src/misc.py:273 msgid "unknown" msgstr "unbekannt" - diff --git a/locale/de/LC_MESSAGES/rc.mo b/locale/de/LC_MESSAGES/rc.mo index 0337fb4..e9946df 100644 Binary files a/locale/de/LC_MESSAGES/rc.mo and b/locale/de/LC_MESSAGES/rc.mo differ diff --git a/locale/de/LC_MESSAGES/rc.po b/locale/de/LC_MESSAGES/rc.po index 498cb1a..0941c8c 100644 --- a/locale/de/LC_MESSAGES/rc.po +++ b/locale/de/LC_MESSAGES/rc.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:22+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-08-03 13:44+0000\n" -"Last-Translator: MarkusRost \n" +"Last-Translator: MarkusRost <>\n" "Language-Team: German \n" "Language: de\n" @@ -17,25 +17,24 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" "X-Loco-Parser: loco_parse_po\n" -#: src/rc.py:150 -#, python-brace-format -msgid "Connection to {wiki} seems to be stable now." -msgstr "{wiki} scheint wieder erreichbar zu sein." - -#: src/rc.py:151 src/rc.py:266 -msgid "Connection status" -msgstr "Verbindungsstatus" - -#: src/rc.py:265 +#: src/rc.py:319 #, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "Das {wiki} scheint unerreichbar zu sein." -#: src/rc.py:334 +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "Verbindungsstatus" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "{wiki} scheint wieder erreichbar zu sein." + +#: src/rc.py:401 msgid "~~hidden~~" msgstr "~~versteckt~~" -#: src/rc.py:340 +#: src/rc.py:405 msgid "hidden" msgstr "versteckt" - diff --git a/locale/de/LC_MESSAGES/rc_formatters.mo b/locale/de/LC_MESSAGES/rc_formatters.mo index 43f32b2..d6e8c7c 100644 Binary files a/locale/de/LC_MESSAGES/rc_formatters.mo and b/locale/de/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/de/LC_MESSAGES/rc_formatters.po b/locale/de/LC_MESSAGES/rc_formatters.po index 347555e..f8c2bc1 100644 --- a/locale/de/LC_MESSAGES/rc_formatters.po +++ b/locale/de/LC_MESSAGES/rc_formatters.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-10 16:15+0200\n" -"PO-Revision-Date: 2020-08-11 21:22+0000\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-20 09:22+0000\n" "Last-Translator: MarkusRost \n" "Language-Team: German \n" @@ -12,35 +12,125 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.1.1\n" +"X-Generator: Weblate 4.2.1\n" "X-Loco-Source-Locale: de_DE\n" "Generated-By: pygettext.py 1.5\n" "X-Loco-Parser: loco_parse_po\n" -#: src/rc_formatters.py:42 +#: src/rc_formatters.py:28 +msgid "None" +msgstr "Keine" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "Gewarnt" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "**Benutzer gesperrt**" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "Änderung markiert" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "Aktion verhindert" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "IP-Adressbereich gesperrt" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "Aktionen gedrosselt" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "„Automatisch bestätigter Benutzer“-Status entzogen" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "**Gruppen mit Sonderrechten entfernt**" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "Bearbeitung" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "Hochladen" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "Verschieben" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "Hochladen vom Zwischenspeicher" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "Löschung" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "Benutzerkontenerstellung" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "Automatische Benutzerkontenerstellung" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "Nicht angemeldeter Benutzer" + +#: src/rc_formatters.py:83 #, python-brace-format msgid "" -"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" +"[{author}]({author_url}) löste durch die Aktion „{action}“ auf der Seite " +"*[{target}]({target_url})* den Filter *{abuse_filter}* aus. Ergriffene " +"Maßnahmen: {result}." + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "Unbekannt" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "" "[{author}]({author_url}) bearbeitete [{article}]({edit_link}){comment} " -"({sign}{edit_size})" +"{bold}({sign}{edit_size}){bold}" -#: src/rc_formatters.py:44 +#: src/rc_formatters.py:119 #, python-brace-format msgid "" -"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "" -"[{author}]({author_url}) erstellte [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) erstellte [{article}]({edit_link}){comment} " +"{bold}({sign}{edit_size}){bold}" -#: src/rc_formatters.py:47 +#: src/rc_formatters.py:122 #, python-brace-format msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" msgstr "[{author}]({author_url}) lud [{file}]({file_link}) hoch{comment}" -#: src/rc_formatters.py:54 +#: src/rc_formatters.py:129 #, python-brace-format msgid "" "[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" @@ -48,7 +138,7 @@ msgstr "" "[{author}]({author_url}) setzte [{file}]({file_link}) auf eine alte Version " "zurück{comment}" -#: src/rc_formatters.py:58 +#: src/rc_formatters.py:133 #, python-brace-format msgid "" "[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" @@ -57,12 +147,12 @@ msgstr "" "[{author}]({author_url}) lud eine neue Version von [{file}]({file_link}) " "hoch{comment}" -#: src/rc_formatters.py:61 +#: src/rc_formatters.py:136 #, python-brace-format msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" msgstr "[{author}]({author_url}) löschte [{page}]({page_link}){comment}" -#: src/rc_formatters.py:65 +#: src/rc_formatters.py:142 #, python-brace-format msgid "" "[{author}]({author_url}) deleted redirect by overwriting [{page}]" @@ -71,15 +161,15 @@ msgstr "" "[{author}]({author_url}) löschte die Weiterleitung [{page}]({page_link}) " "durch Überschreiben{comment}" -#: src/rc_formatters.py:69 src/rc_formatters.py:74 +#: src/rc_formatters.py:148 src/rc_formatters.py:153 msgid "without making a redirect" msgstr "ohne eine Weiterleitung zu erstellen" -#: src/rc_formatters.py:69 src/rc_formatters.py:75 +#: src/rc_formatters.py:148 src/rc_formatters.py:154 msgid "with a redirect" msgstr "und erstellte eine Weiterleitung" -#: src/rc_formatters.py:70 +#: src/rc_formatters.py:149 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" @@ -88,7 +178,7 @@ msgstr "" "[{author}]({author_url}) verschob {redirect}*{article}* nach [{target}]" "({target_url}) {made_a_redirect}{comment}" -#: src/rc_formatters.py:76 +#: src/rc_formatters.py:155 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* over redirect to " @@ -97,7 +187,7 @@ msgstr "" "[{author}]({author_url}) verschob {redirect}*{article}* nach [{target}]" "({target_url}) und überschrieb eine Weiterleitung {made_a_redirect}{comment}" -#: src/rc_formatters.py:81 +#: src/rc_formatters.py:160 #, python-brace-format msgid "" "[{author}]({author_url}) moved protection settings from {redirect}*{article}" @@ -106,32 +196,32 @@ msgstr "" "[{author}]({author_url}) verschob die Schutzeinstellungen von {redirect}" "*{article}* nach [{target}]({target_url}){comment}" -#: src/rc_formatters.py:92 src/rc_formatters.py:518 +#: src/rc_formatters.py:171 src/rc_formatters.py:662 msgid "for infinity and beyond" msgstr "für alle Ewigkeit" -#: src/rc_formatters.py:101 src/rc_formatters.py:526 +#: src/rc_formatters.py:180 src/rc_formatters.py:670 #, python-brace-format msgid "for {num} {translated_length}" msgstr "für {num} {translated_length}" -#: src/rc_formatters.py:107 src/rc_formatters.py:529 +#: src/rc_formatters.py:186 src/rc_formatters.py:674 msgid "until {}" msgstr "bis {}" -#: src/rc_formatters.py:111 +#: src/rc_formatters.py:190 msgid " on pages: " msgstr " auf Seiten: " -#: src/rc_formatters.py:118 src/rc_formatters.py:540 +#: src/rc_formatters.py:197 src/rc_formatters.py:687 msgid " and namespaces: " msgstr " und Namensräumen: " -#: src/rc_formatters.py:120 +#: src/rc_formatters.py:199 msgid " on namespaces: " msgstr " in Namensräumen: " -#: src/rc_formatters.py:132 +#: src/rc_formatters.py:211 #, python-brace-format msgid "" "[{author}]({author_url}) blocked [{user}]({user_url}) {time}" @@ -140,7 +230,7 @@ msgstr "" "[{author}]({author_url}) sperrte [{user}]({user_url}) {time}" "{restriction_desc}{comment}" -#: src/rc_formatters.py:136 +#: src/rc_formatters.py:215 #, python-brace-format msgid "" "[{author}]({author_url}) changed block settings for [{blocked_user}]" @@ -149,7 +239,7 @@ msgstr "" "[{author}]({author_url}) änderte die Sperreinstellungen für [{blocked_user}]" "({user_url}){comment}" -#: src/rc_formatters.py:140 +#: src/rc_formatters.py:219 #, python-brace-format msgid "" "[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" @@ -157,80 +247,125 @@ msgstr "" "[{author}]({author_url}) hob die Sperre von [{blocked_user}]({user_url}) " "auf{comment}" -#: src/rc_formatters.py:143 +#: src/rc_formatters.py:224 #, python-brace-format msgid "" -"[{author}]({author_url}) left a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" msgstr "" -"[{author}]({author_url}) hinterließ ein [Kommentar]({comment}) auf dem " +"[{author}]({author_url}) hinterließ einen [Kommentar]({comment}) auf dem " "Profil von {target}" -#: src/rc_formatters.py:143 -msgid "their own profile" -msgstr "das eigene Profil" - -#: src/rc_formatters.py:146 +#: src/rc_formatters.py:226 #, python-brace-format msgid "" -"[{author}]({author_url}) replied to a [comment]({comment}) on {target} " +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) hinterließ einen [Kommentar]({comment}) auf dem " +"eigenen Profil" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " "profile" msgstr "" -"[{author}]({author_url}) antwortete auf ein [Kommentar]({comment}) auf dem " +"[{author}]({author_url}) antwortete auf einen [Kommentar]({comment}) auf dem " "Profil von {target}" -#: src/rc_formatters.py:149 src/rc_formatters.py:155 src/rc_formatters.py:166 -#: src/rc_formatters.py:170 -msgid "their own" -msgstr "sich selbst" - -#: src/rc_formatters.py:152 +#: src/rc_formatters.py:238 #, python-brace-format msgid "" -"[{author}]({author_url}) edited a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" msgstr "" -"[{author}]({author_url}) bearbeitete ein [Kommentar]({comment}) auf dem " +"[{author}]({author_url}) antwortete auf einen [Kommentar]({comment}) auf dem " +"eigenen Profil" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" +"[{author}]({author_url}) bearbeitete einen [Kommentar]({comment}) auf dem " "Profil von {target}" -#: src/rc_formatters.py:158 +#: src/rc_formatters.py:252 #, python-brace-format -msgid "[{author}]({author_url}) purged a comment on {target} profile" +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" msgstr "" -"[{author}]({author_url}) löschte ein Kommentar auf dem Profil von {target} " +"[{author}]({author_url}) bearbeitete einen [Kommentar]({comment}) auf dem " +"eigenen Profil" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" +"[{author}]({author_url}) löschte einen Kommentar auf dem Profil von {target} " "dauerhaft" -#: src/rc_formatters.py:168 +#: src/rc_formatters.py:261 #, python-brace-format -msgid "[{author}]({author_url}) deleted a comment on {target} profile" +msgid "[{author}]({author_url}) purged a comment on their own profile" msgstr "" -"[{author}]({author_url}) löschte ein Kommentar auf dem Profil von {target}" +"[{author}]({author_url}) löschte einen Kommentar auf dem eigenen Profil " +"dauerhaft" -#: src/rc_formatters.py:174 +#: src/rc_formatters.py:265 #, python-brace-format -msgid "[{target}]({target_url})'s" -msgstr "dem Profil von [{target}]({target_url})" +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" +"[{author}]({author_url}) löschte einen Kommentar auf dem Profil von {target}" -#: src/rc_formatters.py:174 +#: src/rc_formatters.py:267 #, python-brace-format -msgid "[their own]({target_url})" -msgstr "dem [eigenen Profil]({target_url})" +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "[{author}]({author_url}) löschte einen Kommentar auf dem eigenen Profil" -#: src/rc_formatters.py:175 +#: src/rc_formatters.py:273 #, python-brace-format msgid "" -"[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" msgstr "" -"[{author}]({author_url}) bearbeitete den {field} auf {target}. *({desc})*" +"[{author}]({author_url}) bearbeitete den {field} auf dem Profil von {target}" +". *({desc})*" -#: src/rc_formatters.py:189 src/rc_formatters.py:191 src/rc_formatters.py:618 -#: src/rc_formatters.py:620 +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" +"[{author}]({author_url}) bearbeitete den {field} auf dem eigenen Profil. " +"*({desc})*" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 msgid "none" msgstr "keine" -#: src/rc_formatters.py:197 src/rc_formatters.py:605 +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" +"[{author}]({author_url}) änderte die Benutzergruppen für [{target}]" +"({target_url}) von {old_groups} zu {new_groups}{comment}" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" +"{author} änderte die Benutzergruppen für [{target}]({target_url}) " +"automatisch von {old_groups} zu {new_groups}{comment}" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 msgid "System" msgstr "System" -#: src/rc_formatters.py:202 +#: src/rc_formatters.py:306 #, python-brace-format msgid "" "[{author}]({author_url}) protected [{article}]({article_url}) with the " @@ -239,12 +374,12 @@ msgstr "" "[{author}]({author_url}) schützte [{article}]({article_url}) {settings}" "{comment}" -#: src/rc_formatters.py:204 src/rc_formatters.py:212 src/rc_formatters.py:628 -#: src/rc_formatters.py:634 +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 msgid " [cascading]" msgstr " [kaskadierend]" -#: src/rc_formatters.py:209 +#: src/rc_formatters.py:313 #, python-brace-format msgid "" "[{author}]({author_url}) modified protection settings of [{article}]" @@ -253,7 +388,7 @@ msgstr "" "[{author}]({author_url}) änderte den Schutzstatus von [{article}]" "({article_url}) {settings}{comment}" -#: src/rc_formatters.py:216 +#: src/rc_formatters.py:320 #, python-brace-format msgid "" "[{author}]({author_url}) removed protection from [{article}]({article_url})" @@ -262,7 +397,7 @@ msgstr "" "[{author}]({author_url}) entfernte den Schutz von [{article}]({article_url})" "{comment}" -#: src/rc_formatters.py:220 +#: src/rc_formatters.py:324 #, python-brace-format msgid "" "[{author}]({author_url}) changed visibility of revision on page [{article}]" @@ -277,7 +412,7 @@ msgstr[1] "" "[{author}]({author_url}) änderte die Sichtbarkeit von {amount} Versionen von " "[{article}]({article_url}){comment}" -#: src/rc_formatters.py:225 +#: src/rc_formatters.py:337 #, python-brace-format msgid "" "[{author}]({author_url}) imported [{article}]({article_url}) with {count} " @@ -292,40 +427,40 @@ msgstr[1] "" "[{author}]({author_url}) importierte [{article}]({article_url}) mit {count} " "Versionen{comment}" -#: src/rc_formatters.py:230 +#: src/rc_formatters.py:342 #, python-brace-format msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" msgstr "" "[{author}]({author_url}) stellte [{article}]({article_url}) wieder " "her{comment}" -#: src/rc_formatters.py:232 +#: src/rc_formatters.py:344 #, python-brace-format msgid "[{author}]({author_url}) changed visibility of log events{comment}" msgstr "" "[{author}]({author_url}) änderte die Sichtbarkeit eines " "Logbucheintrags{comment}" -#: src/rc_formatters.py:234 +#: src/rc_formatters.py:354 #, python-brace-format msgid "[{author}]({author_url}) imported interwiki{comment}" msgstr "[{author}]({author_url}) importierte Interwiki{comment}" -#: src/rc_formatters.py:237 +#: src/rc_formatters.py:357 #, python-brace-format msgid "" "[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" msgstr "" "[{author}]({author_url}) änderte [Missbrauchsfilter {number}]({filter_url})" -#: src/rc_formatters.py:241 +#: src/rc_formatters.py:361 #, python-brace-format msgid "" "[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" msgstr "" "[{author}]({author_url}) erstellte [Missbrauchsfilter {number}]({filter_url})" -#: src/rc_formatters.py:245 +#: src/rc_formatters.py:365 #, python-brace-format msgid "" "[{author}]({author_url}) merged revision histories of [{article}]" @@ -334,17 +469,17 @@ msgstr "" "[{author}]({author_url}) vereinigte Versionen von [{article}]({article_url}) " "in [{dest}]({dest_url}){comment}" -#: src/rc_formatters.py:249 +#: src/rc_formatters.py:369 #, python-brace-format msgid "Account [{author}]({author_url}) was created automatically" msgstr "Konto [{author}]({author_url}) wurde automtisch erstellt" -#: src/rc_formatters.py:252 src/rc_formatters.py:261 +#: src/rc_formatters.py:372 src/rc_formatters.py:381 #, python-brace-format msgid "Account [{author}]({author_url}) was created" msgstr "Konto [{author}]({author_url}) wurde erstellt" -#: src/rc_formatters.py:255 +#: src/rc_formatters.py:375 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url})" @@ -353,7 +488,7 @@ msgstr "" "Konto [{article}]({article_url}) wurde von [{author}]({author_url}) " "erstellt{comment}" -#: src/rc_formatters.py:258 +#: src/rc_formatters.py:378 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url}) " @@ -362,7 +497,7 @@ msgstr "" "Konto [{article}]({article_url}) wurde von [{author}]({author_url}) erstellt " "und das Passwort wurde per E-Mail zugesandt{comment}" -#: src/rc_formatters.py:264 +#: src/rc_formatters.py:384 #, python-brace-format msgid "" "[{author}]({author_url}) added an entry to the [interwiki table]" @@ -371,7 +506,7 @@ msgstr "" "[{author}]({author_url}) erstellte den [Interwiki-Präfix]({table_url}) " "{prefix} nach {website}" -#: src/rc_formatters.py:270 +#: src/rc_formatters.py:390 #, python-brace-format msgid "" "[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " @@ -380,13 +515,13 @@ msgstr "" "[{author}]({author_url}) bearbeitete den [Interwiki-Präfix]({table_url}) " "{prefix} nach {website}" -#: src/rc_formatters.py:276 +#: src/rc_formatters.py:396 #, python-brace-format msgid "" "[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" msgstr "[{author}]({author_url}) entfernte ein [Interwiki-Präfix]({table_url})" -#: src/rc_formatters.py:279 +#: src/rc_formatters.py:399 #, python-brace-format msgid "" "[{author}]({author_url}) changed the content model of the page [{article}]" @@ -395,14 +530,14 @@ msgstr "" "[{author}]({author_url}) änderte das Inhaltsmodell der Seite [{article}]" "({article_url}) von {old} zu {new}{comment}" -#: src/rc_formatters.py:283 +#: src/rc_formatters.py:403 #, python-brace-format msgid "" "[{author}]({author_url}) edited the sprite for [{article}]({article_url})" msgstr "" "[{author}]({author_url}) änderte das Sprite für [{article}]({article_url})" -#: src/rc_formatters.py:286 +#: src/rc_formatters.py:406 #, python-brace-format msgid "" "[{author}]({author_url}) created the sprite sheet for [{article}]" @@ -411,61 +546,113 @@ msgstr "" "[{author}]({author_url}) erstellte das Sprite-sheet für [{article}]" "({article_url})" -#: src/rc_formatters.py:289 +#: src/rc_formatters.py:409 #, python-brace-format msgid "" "[{author}]({author_url}) edited the slice for [{article}]({article_url})" msgstr "" "[{author}]({author_url}) änderte das Stück für [{article}]({article_url})" -#: src/rc_formatters.py:294 +#: src/rc_formatters.py:414 #, python-brace-format msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) erstellte die Cargo-Tabelle „{table}“" -#: src/rc_formatters.py:296 +#: src/rc_formatters.py:416 #, python-brace-format msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) löschte die Cargo-Tabelle „{table}“" -#: src/rc_formatters.py:301 +#: src/rc_formatters.py:421 #, python-brace-format msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) erstellte die Cargo-Tabelle „{table}“ neu" -#: src/rc_formatters.py:306 +#: src/rc_formatters.py:426 #, python-brace-format msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) ersetzte die Cargo-Tabelle „{table}“" -#: src/rc_formatters.py:309 +#: src/rc_formatters.py:429 #, python-brace-format msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" msgstr "" "[{author}]({author_url}) erstellte eine [Markierung]({tag_url}) „{tag}“" -#: src/rc_formatters.py:313 +#: src/rc_formatters.py:433 #, python-brace-format msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) löschte eine [Markierung]({tag_url}) „{tag}“" -#: src/rc_formatters.py:317 +#: src/rc_formatters.py:437 #, python-brace-format msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" msgstr "" "[{author}]({author_url}) aktivierte eine [Markierung]({tag_url}) „{tag}“" -#: src/rc_formatters.py:320 +#: src/rc_formatters.py:440 #, python-brace-format msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" msgstr "" "[{author}]({author_url}) deaktivierte eine [Markierung]({tag_url}) „{tag}“" -#: src/rc_formatters.py:322 +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "[{author}]({author_url}) änderte Wiki-Einstellungen ({reason})" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) löschte das Wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) sperrte das Wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) bearbeitete den Namensraum *{namespace_name}* für " +"*{wiki_name}* ({comment})" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) löschte den Namesraum *{namespace_name}* für " +"*{wiki_name}* ({comment})" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) bearbeitete die Benutzergruppe *{group_name}* " +"({comment})" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) stellte das Wiki *{wiki_name}* wieder her " +"({comment})" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) entsperrte das Wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:473 msgid "An action has been hidden by administration." msgstr "Eine Aktion wurde versteckt." -#: src/rc_formatters.py:329 +#: src/rc_formatters.py:480 #, python-brace-format msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " @@ -474,63 +661,80 @@ msgstr "" "Unbekanntes Event `{event}` von [{author}]({author_url}), melde es auf dem " "[Support-Server](<{support}>)." -#: src/rc_formatters.py:337 src/rc_formatters.py:621 +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "{user} löste „{abuse_filter}“ aus" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "Aktion" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "Maßnahmen" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "Seite" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 msgid "No description provided" msgstr "Keine Zusammenfassung angegeben" -#: src/rc_formatters.py:384 +#: src/rc_formatters.py:524 msgid "(N!) " msgstr "(N!) " -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "m" msgstr "K" -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "b" msgstr "B" -#: src/rc_formatters.py:402 src/rc_formatters.py:407 +#: src/rc_formatters.py:542 src/rc_formatters.py:547 msgid "__Only whitespace__" msgstr "__Nur Leerraum__" -#: src/rc_formatters.py:412 +#: src/rc_formatters.py:552 msgid "Removed" msgstr "Entfernt" -#: src/rc_formatters.py:414 +#: src/rc_formatters.py:554 msgid "Added" msgstr "Hinzugefügt" -#: src/rc_formatters.py:448 src/rc_formatters.py:487 +#: src/rc_formatters.py:588 src/rc_formatters.py:627 msgid "Options" msgstr "Optionen" -#: src/rc_formatters.py:448 +#: src/rc_formatters.py:588 #, python-brace-format msgid "([preview]({link}) | [undo]({undolink}))" msgstr "([Vorschau]({link}) | [zurücksetzen]({undolink}))" -#: src/rc_formatters.py:453 +#: src/rc_formatters.py:593 #, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Neue Dateiversion {name}" -#: src/rc_formatters.py:455 +#: src/rc_formatters.py:595 #, python-brace-format msgid "Reverted a version of {name}" msgstr "Setzte {name} auf eine alte Version zurück" -#: src/rc_formatters.py:457 +#: src/rc_formatters.py:597 #, python-brace-format msgid "Uploaded {name}" msgstr "Neue Datei {name}" -#: src/rc_formatters.py:473 +#: src/rc_formatters.py:613 msgid "**No license!**" msgstr "**Keine Lizenz!**" -#: src/rc_formatters.py:485 +#: src/rc_formatters.py:625 msgid "" "\n" "License: {}" @@ -538,343 +742,400 @@ msgstr "" "\n" "Lizenz: {}" -#: src/rc_formatters.py:487 +#: src/rc_formatters.py:627 #, python-brace-format msgid "([preview]({link}))" msgstr "([Vorschau]({link}))" -#: src/rc_formatters.py:492 +#: src/rc_formatters.py:632 #, python-brace-format msgid "Deleted page {article}" msgstr "Löschte {article}" -#: src/rc_formatters.py:495 +#: src/rc_formatters.py:637 #, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "Löschte die Weiterleitung {article} um Platz zu machen" -#: src/rc_formatters.py:499 +#: src/rc_formatters.py:643 msgid "No redirect has been made" msgstr "Die Erstellung einer Weiterleitung wurde unterdrückt" -#: src/rc_formatters.py:500 +#: src/rc_formatters.py:644 msgid "A redirect has been made" msgstr "Eine Weiterleitung wurde erstellt" -#: src/rc_formatters.py:501 +#: src/rc_formatters.py:645 #, python-brace-format msgid "Moved {redirect}{article} to {target}" msgstr "Verschob {redirect}{article} nach {target}" -#: src/rc_formatters.py:504 +#: src/rc_formatters.py:648 #, python-brace-format msgid "Moved {redirect}{article} to {title} over redirect" msgstr "" "Verschob {redirect}{article} nach {title} und überschrieb eine Weiterleitung" -#: src/rc_formatters.py:508 +#: src/rc_formatters.py:652 #, python-brace-format msgid "Moved protection settings from {redirect}{article} to {title}" msgstr "Verschob die Schutzeinstellungen von {redirect}{article} nach {title}" -#: src/rc_formatters.py:533 +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "unbekannte Ablaufdauer" + +#: src/rc_formatters.py:680 msgid "Blocked from editing the following pages: " msgstr "Bearbeiten von folgenden Seiten gesperrt: " -#: src/rc_formatters.py:542 +#: src/rc_formatters.py:689 msgid "Blocked from editing pages on following namespaces: " msgstr "Bearbeiten von Seiten in folgenden Namensräumen gesperrt: " -#: src/rc_formatters.py:553 +#: src/rc_formatters.py:700 msgid "Partial block details" msgstr "Teilweise Sperre" -#: src/rc_formatters.py:554 +#: src/rc_formatters.py:701 #, python-brace-format msgid "Blocked {blocked_user} {time}" msgstr "Sperrte {blocked_user} {time}" -#: src/rc_formatters.py:558 +#: src/rc_formatters.py:705 #, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Änderte die Sperreinstellungen für {blocked_user}" -#: src/rc_formatters.py:562 +#: src/rc_formatters.py:709 #, python-brace-format msgid "Unblocked {blocked_user}" msgstr "Hob die Sperre von {blocked_user} auf" -#: src/rc_formatters.py:567 +#: src/rc_formatters.py:714 #, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Hinterließ ein Kommentar auf dem Profil von {target}" -#: src/rc_formatters.py:569 +#: src/rc_formatters.py:716 msgid "Left a comment on their own profile" msgstr "Hinterließ ein Kommentar auf dem eigenen Profil" -#: src/rc_formatters.py:574 +#: src/rc_formatters.py:721 #, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Antwortete auf ein Kommentar auf dem Profil von {target}" -#: src/rc_formatters.py:576 +#: src/rc_formatters.py:723 msgid "Replied to a comment on their own profile" msgstr "Antwortete auf ein Kommentar auf dem eigenen Profil" -#: src/rc_formatters.py:581 +#: src/rc_formatters.py:728 #, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Bearbeitete ein Kommentar auf dem Profil von {target}" -#: src/rc_formatters.py:583 +#: src/rc_formatters.py:730 msgid "Edited a comment on their own profile" msgstr "Bearbeitete ein Kommentar auf dem eigenen Profil" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 #, python-brace-format msgid "Edited {target}'s profile" msgstr "Bearbeitete das Profil von {target}" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 msgid "Edited their own profile" msgstr "Bearbeitete das eigene Profil" -#: src/rc_formatters.py:588 +#: src/rc_formatters.py:735 #, python-brace-format msgid "Cleared the {field} field" msgstr "Entfernte den {field}" -#: src/rc_formatters.py:590 +#: src/rc_formatters.py:737 #, python-brace-format msgid "{field} field changed to: {desc}" msgstr "{field} geändert zu: {desc}" -#: src/rc_formatters.py:593 +#: src/rc_formatters.py:740 #, python-brace-format msgid "Purged a comment on {target}'s profile" msgstr "Löschte ein Kommentar auf dem Profil von {target} dauerhaft" -#: src/rc_formatters.py:599 +#: src/rc_formatters.py:746 #, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Löschte ein Kommentar auf dem Profil von {target}" -#: src/rc_formatters.py:603 +#: src/rc_formatters.py:750 #, python-brace-format msgid "Changed group membership for {target}" msgstr "Änderte die Gruppenzugehörigkeit von {target}" -#: src/rc_formatters.py:607 +#: src/rc_formatters.py:754 #, python-brace-format msgid "{target} got autopromoted to a new usergroup" msgstr "{target} wurde automatisch einer neuen Benutzergruppe zugeordnet" -#: src/rc_formatters.py:622 +#: src/rc_formatters.py:769 #, 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}" -#: src/rc_formatters.py:626 +#: src/rc_formatters.py:773 #, python-brace-format msgid "Protected {target}" msgstr "Schützte {target}" -#: src/rc_formatters.py:632 +#: src/rc_formatters.py:779 #, python-brace-format msgid "Changed protection level for {article}" msgstr "Änderte den Schutzstatus von {article}" -#: src/rc_formatters.py:638 +#: src/rc_formatters.py:785 #, python-brace-format msgid "Removed protection from {article}" msgstr "Entfernte den Schutz von {article}" -#: src/rc_formatters.py:642 +#: src/rc_formatters.py:789 #, 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} " -#: src/rc_formatters.py:647 +#: src/rc_formatters.py:801 #, 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" -#: src/rc_formatters.py:652 +#: src/rc_formatters.py:806 #, python-brace-format msgid "Restored {article}" msgstr "Stellte {article} wieder her" -#: src/rc_formatters.py:655 +#: src/rc_formatters.py:809 msgid "Changed visibility of log events" msgstr "Änderte die Sichtbarkeit eines Logbucheintrags" -#: src/rc_formatters.py:658 +#: src/rc_formatters.py:819 msgid "Imported interwiki" msgstr "Importierte Interwiki" -#: src/rc_formatters.py:661 +#: src/rc_formatters.py:822 #, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Änderte Missbrauchsfilter {number}" -#: src/rc_formatters.py:664 +#: src/rc_formatters.py:825 #, python-brace-format msgid "Created abuse filter number {number}" msgstr "Erstellte Missbrauchsfilter {number}" -#: src/rc_formatters.py:667 +#: src/rc_formatters.py:828 #, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Vereinigte Versionen von {article} in {dest}" -#: src/rc_formatters.py:671 +#: src/rc_formatters.py:832 msgid "Created account automatically" msgstr "Erstellte Konto automatisch" -#: src/rc_formatters.py:674 src/rc_formatters.py:683 +#: src/rc_formatters.py:835 src/rc_formatters.py:844 msgid "Created account" msgstr "Erstellte Konto" -#: src/rc_formatters.py:677 +#: src/rc_formatters.py:838 #, python-brace-format msgid "Created account {article}" msgstr "Erstellte Konto {article}" -#: src/rc_formatters.py:680 +#: src/rc_formatters.py:841 #, python-brace-format msgid "Created account {article} and password was sent by email" msgstr "Erstellte Konto {article} und das Passwort wurde per E-Mail zugesandt" -#: src/rc_formatters.py:686 +#: src/rc_formatters.py:847 msgid "Added an entry to the interwiki table" msgstr "Fügte ein Interwiki-Präfix hinzu" -#: src/rc_formatters.py:687 src/rc_formatters.py:693 +#: src/rc_formatters.py:848 src/rc_formatters.py:854 #, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Präfix: {prefix}, URL: {website} | {desc}" -#: src/rc_formatters.py:692 +#: src/rc_formatters.py:853 msgid "Edited an entry in interwiki table" msgstr "Änderte ein Interwiki-Präfix" -#: src/rc_formatters.py:698 +#: src/rc_formatters.py:859 msgid "Deleted an entry in interwiki table" msgstr "Entfernte ein Interwiki-Präfix" -#: src/rc_formatters.py:699 +#: src/rc_formatters.py:860 #, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Präfix: {prefix} | {desc}" -#: src/rc_formatters.py:702 +#: src/rc_formatters.py:863 #, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Änderte das Inhaltsmodell von {article}" -#: src/rc_formatters.py:703 +#: src/rc_formatters.py:864 #, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Modell geändert von {old} zu {new}: {reason}" -#: src/rc_formatters.py:708 +#: src/rc_formatters.py:869 #, python-brace-format msgid "Edited the sprite for {article}" msgstr "Änderte das Sprite für {article}" -#: src/rc_formatters.py:711 +#: src/rc_formatters.py:872 #, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Erstellte das Sprite-sheet für {article}" -#: src/rc_formatters.py:714 +#: src/rc_formatters.py:875 #, python-brace-format msgid "Edited the slice for {article}" msgstr "Änderte das Stück für {article}" -#: src/rc_formatters.py:720 +#: src/rc_formatters.py:881 #, python-brace-format msgid "Created the Cargo table \"{table}\"" msgstr "Erstellte die Cargo-Tabelle „{table}“" -#: src/rc_formatters.py:724 +#: src/rc_formatters.py:885 #, python-brace-format msgid "Deleted the Cargo table \"{table}\"" msgstr "Löschte die Cargo-Tabelle „{table}“" -#: src/rc_formatters.py:731 +#: src/rc_formatters.py:892 #, python-brace-format msgid "Recreated the Cargo table \"{table}\"" msgstr "Erstellte die Cargo-Tabelle „{table}“ neu" -#: src/rc_formatters.py:738 +#: src/rc_formatters.py:899 #, python-brace-format msgid "Replaced the Cargo table \"{table}\"" msgstr "Ersetzte die Cargo-Tabelle „{table}“" -#: src/rc_formatters.py:742 +#: src/rc_formatters.py:903 #, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Erstellte die Markierung „{tag}“" -#: src/rc_formatters.py:746 +#: src/rc_formatters.py:907 #, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Löschte die Markierung „{tag}“" -#: src/rc_formatters.py:750 +#: src/rc_formatters.py:911 #, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Aktivierte die Markierung „{tag}“" -#: src/rc_formatters.py:753 +#: src/rc_formatters.py:914 #, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Deaktivierte die Markierung „{tag}“" -#: src/rc_formatters.py:756 +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "Änderte Wiki-Einstellungen" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "Löschte das Wiki „{wiki}“" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "Sperrte das Wiki „{wiki}“" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "Bearbeitete den Namensraum „{namespace_name}“" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "Wiki" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "Löschte den Namensraum „{namespace_name}“" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "Bearbeitete die Benutzergruppe „{usergroup_name}“" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "Stellte das Wiki „{wiki}“ wieder her" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "Entsperrte das Wiki „{wiki}“" + +#: src/rc_formatters.py:946 msgid "Action has been hidden by administration" msgstr "Aktion wurde versteckt" -#: src/rc_formatters.py:757 -msgid "Unknown" -msgstr "Unbekannt" - -#: src/rc_formatters.py:761 +#: src/rc_formatters.py:951 #, python-brace-format msgid "Unknown event `{event}`" msgstr "Unbekanntes Event `{event}`" -#: src/rc_formatters.py:767 src/rc_formatters.py:769 +#: src/rc_formatters.py:957 src/rc_formatters.py:959 msgid "Report this on the support server" msgstr "Melde es auf dem Support-Server" -#: src/rc_formatters.py:786 +#: src/rc_formatters.py:976 msgid "Tags" -msgstr "Tags" +msgstr "Markierungen" -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid "**Added**: " msgstr "**Hinzugefügt:** " -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid " and {} more\n" msgstr " und {} mehr\n" -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid "**Removed**: " msgstr "**Entfernt:** " -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid " and {} more" msgstr " und {} mehr" -#: src/rc_formatters.py:791 +#: src/rc_formatters.py:981 msgid "Changed categories" msgstr "Geänderte Kategorien" + +#~ msgid "their own profile" +#~ msgstr "das eigene Profil" + +#~ msgid "their own" +#~ msgstr "sich selbst" + +#, python-brace-format +#~ msgid "[{target}]({target_url})'s" +#~ msgstr "dem Profil von [{target}]({target_url})" + +#, python-brace-format +#~ msgid "[their own]({target_url})" +#~ msgstr "dem [eigenen Profil]({target_url})" diff --git a/locale/de/LC_MESSAGES/rcgcdw.mo b/locale/de/LC_MESSAGES/rcgcdw.mo index 7a5b994..c8e8b5b 100644 Binary files a/locale/de/LC_MESSAGES/rcgcdw.mo and b/locale/de/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/de/LC_MESSAGES/rcgcdw.po b/locale/de/LC_MESSAGES/rcgcdw.po index f4b08e4..5fa6148 100644 --- a/locale/de/LC_MESSAGES/rcgcdw.po +++ b/locale/de/LC_MESSAGES/rcgcdw.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:21+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-09-03 13:14+0200\n" -"Last-Translator: MarkusRost \n" +"Last-Translator: MarkusRost <>\n" "Language-Team: German \n" "Language: de\n" @@ -17,183 +17,183 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" "X-Loco-Parser: loco_parse_po\n" -#: src/rcgcdw.py:113 src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 -#: src/rcgcdw.py:121 src/rcgcdw.py:123 src/rcgcdw.py:125 +#: src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 src/rcgcdw.py:121 +#: src/rcgcdw.py:123 src/rcgcdw.py:125 src/rcgcdw.py:127 #, python-brace-format msgid "{value} (avg. {avg})" msgstr "{value} (vgl. {avg})" -#: src/rcgcdw.py:145 +#: src/rcgcdw.py:147 msgid "Daily overview" msgstr "Tägliche Übersicht" -#: src/rcgcdw.py:153 +#: src/rcgcdw.py:155 msgid "No activity" msgstr "Keine Aktivität" -#: src/rcgcdw.py:177 +#: src/rcgcdw.py:179 msgid " ({} action)" msgid_plural " ({} actions)" msgstr[0] " (eine Aktion)" msgstr[1] " ({} Aktionen)" -#: src/rcgcdw.py:179 +#: src/rcgcdw.py:181 msgid " ({} edit)" msgid_plural " ({} edits)" msgstr[0] " (eine Änderung)" msgstr[1] " ({} Änderungen)" -#: src/rcgcdw.py:184 +#: src/rcgcdw.py:186 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] " UTC (eine Aktion)" msgstr[1] " UTC ({} Aktionen)" -#: src/rcgcdw.py:186 src/rcgcdw.py:187 src/rcgcdw.py:191 +#: src/rcgcdw.py:188 src/rcgcdw.py:189 src/rcgcdw.py:193 msgid "But nobody came" msgstr "Keine Aktivität" -#: src/rcgcdw.py:194 +#: src/rcgcdw.py:196 msgid "Most active user" msgid_plural "Most active users" msgstr[0] "Aktivster Benutzer" msgstr[1] "Aktivste Benutzer" -#: src/rcgcdw.py:195 +#: src/rcgcdw.py:197 msgid "Most edited article" msgid_plural "Most edited articles" msgstr[0] "Meist bearbeiteter Artikel" msgstr[1] "Meist bearbeitete Artikel" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Edits made" msgstr "Bearbeitungen" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "New files" msgstr "Neue Dateien" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Admin actions" msgstr "Admin-Aktionen" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "Bytes changed" msgstr "Bytes geändert" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "New articles" msgstr "Neue Artikel" -#: src/rcgcdw.py:198 +#: src/rcgcdw.py:200 msgid "Unique contributors" msgstr "Einzelne Autoren" -#: src/rcgcdw.py:199 +#: src/rcgcdw.py:201 msgid "Most active hour" msgid_plural "Most active hours" msgstr[0] "Aktivste Stunde" msgstr[1] "Aktivste Stunden" -#: src/rcgcdw.py:200 +#: src/rcgcdw.py:202 msgid "Day score" msgstr "Tageswert" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "director" msgstr "Direktor" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bot" msgstr "Bot" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "editor" msgstr "editor" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "directors" msgstr "Direktor" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "sysop" msgstr "Administrator" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bureaucrat" msgstr "Bürokrat" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "reviewer" msgstr "Prüfer" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autoreview" msgstr "Passive Sichter" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autopatrol" msgstr "autopatrol" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "wiki_guardian" msgstr "Wiki Guardian" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "second" msgid_plural "seconds" msgstr[0] "Sekunde" msgstr[1] "Sekunden" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "minute" msgid_plural "minutes" msgstr[0] "Minute" msgstr[1] "Minuten" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "hour" msgid_plural "hours" msgstr[0] "Stunde" msgstr[1] "Stunden" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "day" msgid_plural "days" msgstr[0] "Tag" msgstr[1] "Tage" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "week" msgid_plural "weeks" msgstr[0] "Woche" msgstr[1] "Wochen" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "month" msgid_plural "months" msgstr[0] "Monat" msgstr[1] "Monate" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "year" msgid_plural "years" msgstr[0] "Jahr" msgstr[1] "Jahre" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "millennium" msgid_plural "millennia" msgstr[0] "Jahrtausend" msgstr[1] "Jahrtausende" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "decade" msgid_plural "decades" msgstr[0] "Jahrzehnt" msgstr[1] "Jahrzehnte" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "century" msgid_plural "centuries" msgstr[0] "Jahrhundert" diff --git a/locale/de/LC_MESSAGES/redaction.mo b/locale/de/LC_MESSAGES/redaction.mo new file mode 100644 index 0000000..1321f36 Binary files /dev/null and b/locale/de/LC_MESSAGES/redaction.mo differ diff --git a/locale/de/LC_MESSAGES/redaction.po b/locale/de/LC_MESSAGES/redaction.po new file mode 100644 index 0000000..9edca82 --- /dev/null +++ b/locale/de/LC_MESSAGES/redaction.po @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 15:17+0100\n" +"PO-Revision-Date: 2020-11-20 09:22+0000\n" +"Last-Translator: MarkusRost \n" +"Language-Team: German \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "Versteckt" diff --git a/locale/es/LC_MESSAGES/discussion_formatters.mo b/locale/es/LC_MESSAGES/discussion_formatters.mo new file mode 100644 index 0000000..48ab95a Binary files /dev/null and b/locale/es/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/es/LC_MESSAGES/discussion_formatters.po b/locale/es/LC_MESSAGES/discussion_formatters.po new file mode 100644 index 0000000..ce8c1f5 --- /dev/null +++ b/locale/es/LC_MESSAGES/discussion_formatters.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:36 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:38 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:43 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " +"to [{title}](<{url}f/p/{threadId}>) in {forumName}" +msgstr "" + +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 +msgid "unknown" +msgstr "" + +#: src/discussion_formatters.py:49 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/" +"Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:51 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall]" +"(<{url}wiki/Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:57 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:62 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/discussion_formatters.py:98 +#, python-brace-format +msgid "Created \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:102 +#, python-brace-format +msgid "Created a poll \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:109 +msgid "Option {}" +msgstr "" + +#: src/discussion_formatters.py:110 +#, python-brace-format +msgid "__[View image]({image_url})__" +msgstr "" + +#: src/discussion_formatters.py:114 +#, python-brace-format +msgid "Created a quiz \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 +msgid "Tags" +msgstr "" + +#: src/discussion_formatters.py:129 +msgid "{} tags" +msgstr "" + +#: src/discussion_formatters.py:134 +#, python-brace-format +msgid "Replied to \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:143 +#, python-brace-format +msgid "Created \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:147 +#, python-brace-format +msgid "Replied to \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:154 +#, python-brace-format +msgid "Commented on {article}" +msgstr "" + +#: src/discussion_formatters.py:158 +#, python-brace-format +msgid "Replied to a comment on {article}" +msgstr "" + +#: src/discussion_formatters.py:162 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 +msgid "Report this on the support server" +msgstr "" diff --git a/locale/es/LC_MESSAGES/misc.po b/locale/es/LC_MESSAGES/misc.po new file mode 100644 index 0000000..55232d6 --- /dev/null +++ b/locale/es/LC_MESSAGES/misc.po @@ -0,0 +1,83 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/misc.py:45 +msgid "Location" +msgstr "" + +#: src/misc.py:45 +msgid "About me" +msgstr "" + +#: src/misc.py:45 +msgid "Google link" +msgstr "" + +#: src/misc.py:45 +msgid "Facebook link" +msgstr "" + +#: src/misc.py:45 +msgid "Twitter link" +msgstr "" + +#: src/misc.py:45 +msgid "Reddit link" +msgstr "" + +#: src/misc.py:45 +msgid "Twitch link" +msgstr "" + +#: src/misc.py:45 +msgid "PSN link" +msgstr "" + +#: src/misc.py:45 +msgid "VK link" +msgstr "" + +#: src/misc.py:45 +msgid "XBL link" +msgstr "" + +#: src/misc.py:45 +msgid "Steam link" +msgstr "" + +#: src/misc.py:45 +msgid "Discord handle" +msgstr "" + +#: src/misc.py:45 +msgid "Battle.net handle" +msgstr "" + +#: src/misc.py:114 +msgid "" +"\n" +"__And more__" +msgstr "" + +#: src/misc.py:271 +msgid "Unknown" +msgstr "" + +#: src/misc.py:273 +msgid "unknown" +msgstr "" diff --git a/locale/es/LC_MESSAGES/rc.mo b/locale/es/LC_MESSAGES/rc.mo new file mode 100644 index 0000000..48ab95a Binary files /dev/null and b/locale/es/LC_MESSAGES/rc.mo differ diff --git a/locale/es/LC_MESSAGES/rc.po b/locale/es/LC_MESSAGES/rc.po new file mode 100644 index 0000000..8375ab1 --- /dev/null +++ b/locale/es/LC_MESSAGES/rc.po @@ -0,0 +1,39 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/rc.py:319 +#, python-brace-format +msgid "{wiki} seems to be down or unreachable." +msgstr "" + +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "" + +#: src/rc.py:401 +msgid "~~hidden~~" +msgstr "" + +#: src/rc.py:405 +msgid "hidden" +msgstr "" diff --git a/locale/es/LC_MESSAGES/rc_formatters.mo b/locale/es/LC_MESSAGES/rc_formatters.mo new file mode 100644 index 0000000..386c5a9 Binary files /dev/null and b/locale/es/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/es/LC_MESSAGES/rc_formatters.po b/locale/es/LC_MESSAGES/rc_formatters.po new file mode 100644 index 0000000..95e89c3 --- /dev/null +++ b/locale/es/LC_MESSAGES/rc_formatters.po @@ -0,0 +1,1024 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, 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] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/es/LC_MESSAGES/rcgcdw.mo b/locale/es/LC_MESSAGES/rcgcdw.mo new file mode 100644 index 0000000..386c5a9 Binary files /dev/null and b/locale/es/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/es/LC_MESSAGES/rcgcdw.po b/locale/es/LC_MESSAGES/rcgcdw.po new file mode 100644 index 0000000..95e89c3 --- /dev/null +++ b/locale/es/LC_MESSAGES/rcgcdw.po @@ -0,0 +1,1024 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, 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] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/fr/LC_MESSAGES/discussion_formatters.mo b/locale/fr/LC_MESSAGES/discussion_formatters.mo index 55a0d32..221b7c9 100644 Binary files a/locale/fr/LC_MESSAGES/discussion_formatters.mo and b/locale/fr/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/fr/LC_MESSAGES/discussion_formatters.po b/locale/fr/LC_MESSAGES/discussion_formatters.po index 92cb592..f38ab4d 100644 --- a/locale/fr/LC_MESSAGES/discussion_formatters.po +++ b/locale/fr/LC_MESSAGES/discussion_formatters.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: 2020-07-04 01:08+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -18,7 +18,11 @@ msgstr "" "X-Generator: Poedit 2.3\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: src/discussion_formatters.py:32 +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " @@ -27,7 +31,7 @@ msgstr "" "Création de [{title}](<{url}f/p/{threadId}>) par [{author}](<{url}f/u/" "{creatorId}>) dans {forumName}" -#: src/discussion_formatters.py:34 +#: src/discussion_formatters.py:36 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " @@ -36,7 +40,7 @@ msgstr "" "Création de [{title}](<{url}f/p/{threadId}>) par [{author}](<{url}f/u/" "{creatorId}>) dans {forumName}" -#: src/discussion_formatters.py:36 +#: src/discussion_formatters.py:38 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " @@ -45,7 +49,7 @@ msgstr "" "Création de [{title}](<{url}f/p/{threadId}>) par [{author}](<{url}f/u/" "{creatorId}>) dans {forumName}" -#: src/discussion_formatters.py:41 +#: src/discussion_formatters.py:43 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " @@ -54,12 +58,12 @@ msgstr "" "[Réponse](<{url}f/p/{threadId}/r/{postId}>) de [{author}](<{url}f/u/" "{creatorId}>) à [{title}](<{url}f/p/{threadId}>) dans {forumName}" -#: src/discussion_formatters.py:43 src/discussion_formatters.py:52 -#: src/discussion_formatters.py:129 src/discussion_formatters.py:142 +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 msgid "unknown" msgstr "inconnu" -#: src/discussion_formatters.py:47 +#: src/discussion_formatters.py:49 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" @@ -69,7 +73,7 @@ msgstr "" "Création de [{title}](<{url}f/p/{threadId}>) par [{author}](<{url}f/u/" "{creatorId}>) dans {forumName}" -#: src/discussion_formatters.py:49 +#: src/discussion_formatters.py:51 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" @@ -80,91 +84,94 @@ msgstr "" "Création de [{title}](<{url}f/p/{threadId}>) par [{author}](<{url}f/u/" "{creatorId}>) dans {forumName}" -#: src/discussion_formatters.py:54 -#, python-brace-format +#: src/discussion_formatters.py:57 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) created a [comment](<{url}wiki/{article}?" -"commentId={commentId}>) on [{article}](<{url}wiki/{article}>)" -msgstr "" - -#: src/discussion_formatters.py:56 -#, python-brace-format -msgid "" -"[{author}]({author_url}) created a [reply](<{url}wiki/{article}?" -"threadId={threadId}) to a [comment](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) on [{article}](<{url}wiki/{article}" -">)" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" msgstr "" +"[Réponse](<{url}f/p/{threadId}/r/{postId}>) de [{author}](<{url}f/u/" +"{creatorId}>) à [{title}](<{url}f/p/{threadId}>) dans {forumName}" #: src/discussion_formatters.py:62 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" +"[Réponse](<{url}f/p/{threadId}/r/{postId}>) de [{author}](<{url}f/u/" +"{creatorId}>) à [{title}](<{url}f/p/{threadId}>) dans {forumName}" + +#: src/discussion_formatters.py:70 #, python-brace-format msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -#: src/discussion_formatters.py:90 +#: src/discussion_formatters.py:98 #, python-brace-format msgid "Created \"{title}\"" msgstr "Création de {title}" -#: src/discussion_formatters.py:94 +#: src/discussion_formatters.py:102 #, fuzzy, python-brace-format msgid "Created a poll \"{title}\"" msgstr "Création de {title}" -#: src/discussion_formatters.py:101 +#: src/discussion_formatters.py:109 msgid "Option {}" msgstr "" -#: src/discussion_formatters.py:102 +#: src/discussion_formatters.py:110 #, python-brace-format msgid "__[View image]({image_url})__" msgstr "" -#: src/discussion_formatters.py:106 +#: src/discussion_formatters.py:114 #, fuzzy, python-brace-format msgid "Created a quiz \"{title}\"" msgstr "Création de {title}" -#: src/discussion_formatters.py:121 src/discussion_formatters.py:123 +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 msgid "Tags" msgstr "" -#: src/discussion_formatters.py:121 +#: src/discussion_formatters.py:129 msgid "{} tags" msgstr "" -#: src/discussion_formatters.py:126 +#: src/discussion_formatters.py:134 #, python-brace-format msgid "Replied to \"{title}\"" msgstr "A répondu à « {title} »" -#: src/discussion_formatters.py:135 +#: src/discussion_formatters.py:143 #, python-brace-format msgid "Created \"{title}\" on {user}'s Message Wall" msgstr "Création de « {title} » sur le mur de {user}" -#: src/discussion_formatters.py:139 +#: src/discussion_formatters.py:147 #, python-brace-format msgid "Replied to \"{title}\" on {user}'s Message Wall" msgstr "Réponse à « {title} » sur le mur de {user}" -#: src/discussion_formatters.py:146 +#: src/discussion_formatters.py:154 #, fuzzy, python-brace-format msgid "Commented on {article}" msgstr "Création de {title}" -#: src/discussion_formatters.py:150 +#: src/discussion_formatters.py:158 #, fuzzy, python-brace-format msgid "Replied to a comment on {article}" msgstr "A répondu à « {title} »" -#: src/discussion_formatters.py:154 +#: src/discussion_formatters.py:162 #, python-brace-format msgid "Unknown event `{event}`" msgstr "" -#: src/discussion_formatters.py:160 src/discussion_formatters.py:162 +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 msgid "Report this on the support server" msgstr "" diff --git a/locale/fr/LC_MESSAGES/misc.mo b/locale/fr/LC_MESSAGES/misc.mo index 8c9e66b..808593d 100644 Binary files a/locale/fr/LC_MESSAGES/misc.mo and b/locale/fr/LC_MESSAGES/misc.mo differ diff --git a/locale/fr/LC_MESSAGES/misc.po b/locale/fr/LC_MESSAGES/misc.po index e03ee4b..be78fed 100644 --- a/locale/fr/LC_MESSAGES/misc.po +++ b/locale/fr/LC_MESSAGES/misc.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 14:00+0200\n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" "PO-Revision-Date: 2020-03-17 21:40+0100\n" -"Last-Translator: Frisk \n" +"Last-Translator: Frisk <>\n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -20,59 +20,59 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SearchPath-0: rcgcdw.pot\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "Emplacement" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "À propos de moi" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "Lien Google" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "Lien Facebook" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "Lien Twitter" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "Lien Reddit" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "Lien Twitch" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "Lien PSN" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "Lien VK" -#: src/misc.py:42 +#: src/misc.py:45 msgid "XBL link" msgstr "Lien XBL" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "Lien Steam" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" @@ -80,11 +80,11 @@ msgstr "" "\n" "__Et plus__" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "Inconnu" -#: src/misc.py:425 +#: src/misc.py:273 #, fuzzy msgid "unknown" msgstr "Inconnu" diff --git a/locale/fr/LC_MESSAGES/rc.mo b/locale/fr/LC_MESSAGES/rc.mo index f7a589d..33627f1 100644 Binary files a/locale/fr/LC_MESSAGES/rc.mo and b/locale/fr/LC_MESSAGES/rc.mo differ diff --git a/locale/fr/LC_MESSAGES/rc.po b/locale/fr/LC_MESSAGES/rc.po index 27144d0..ff7bc67 100644 --- a/locale/fr/LC_MESSAGES/rc.po +++ b/locale/fr/LC_MESSAGES/rc.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:22+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-03-17 21:40+0100\n" -"Last-Translator: Frisk \n" +"Last-Translator: Frisk <>\n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -20,24 +20,24 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SearchPath-0: rcgcdw.pot\n" -#: src/rc.py:150 -#, python-brace-format -msgid "Connection to {wiki} seems to be stable now." -msgstr "La connexion avec {wiki} semble stable maintenant." - -#: src/rc.py:151 src/rc.py:266 -msgid "Connection status" -msgstr "Statut de connexion" - -#: src/rc.py:265 +#: src/rc.py:319 #, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki} semble être down ou inatteignable." -#: src/rc.py:334 +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "Statut de connexion" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "La connexion avec {wiki} semble stable maintenant." + +#: src/rc.py:401 msgid "~~hidden~~" msgstr "" -#: src/rc.py:340 +#: src/rc.py:405 msgid "hidden" msgstr "" diff --git a/locale/fr/LC_MESSAGES/rc_formatters.mo b/locale/fr/LC_MESSAGES/rc_formatters.mo index 2ba8a3b..0934919 100644 Binary files a/locale/fr/LC_MESSAGES/rc_formatters.mo and b/locale/fr/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/fr/LC_MESSAGES/rc_formatters.po b/locale/fr/LC_MESSAGES/rc_formatters.po index 6b2d6d2..8cfc4e8 100644 --- a/locale/fr/LC_MESSAGES/rc_formatters.po +++ b/locale/fr/LC_MESSAGES/rc_formatters.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-10 16:15+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: 2020-03-17 21:40+0100\n" -"Last-Translator: Frisk \n" +"Last-Translator: Frisk <>\n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -20,26 +20,114 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SearchPath-0: rcgcdw.pot\n" -#: src/rc_formatters.py:42 +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 #, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" +"Transfert des paramètres de protection de {redirect}{article} vers {title}" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "Inconnu" + +#: src/rc_formatters.py:117 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "Édition d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:44 +#: src/rc_formatters.py:119 #, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "Création d'une feuille de sprite pour {article}" -#: src/rc_formatters.py:47 +#: src/rc_formatters.py:122 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" msgstr "Modification de la visibilité d'évènements des journaux" -#: src/rc_formatters.py:54 +#: src/rc_formatters.py:129 #, python-brace-format msgid "" "[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" @@ -47,19 +135,19 @@ msgstr "" "[{author}]({author_url}) a rétabli une version de [{file}]({file_link})" "{comment}" -#: src/rc_formatters.py:58 +#: src/rc_formatters.py:133 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" "{comment}" msgstr "Modification de la visibilité d'une révision de la page {article} " -#: src/rc_formatters.py:61 +#: src/rc_formatters.py:136 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" msgstr "[{author}]({author_url}) a supprimé le tableau Cargo « {table} »" -#: src/rc_formatters.py:65 +#: src/rc_formatters.py:142 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) deleted redirect by overwriting [{page}]" @@ -67,15 +155,15 @@ msgid "" msgstr "" "Transfert des paramètres de protection de {redirect}{article} vers {title}" -#: src/rc_formatters.py:69 src/rc_formatters.py:74 +#: src/rc_formatters.py:148 src/rc_formatters.py:153 msgid "without making a redirect" msgstr "" -#: src/rc_formatters.py:69 src/rc_formatters.py:75 +#: src/rc_formatters.py:148 src/rc_formatters.py:154 msgid "with a redirect" msgstr "" -#: src/rc_formatters.py:70 +#: src/rc_formatters.py:149 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" @@ -83,7 +171,7 @@ msgid "" msgstr "" "Transfert des paramètres de protection de {redirect}{article} vers {title}" -#: src/rc_formatters.py:76 +#: src/rc_formatters.py:155 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* over redirect to " @@ -91,7 +179,7 @@ msgid "" msgstr "" "Transfert des paramètres de protection de {redirect}{article} vers {title}" -#: src/rc_formatters.py:81 +#: src/rc_formatters.py:160 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) moved protection settings from {redirect}*{article}" @@ -99,131 +187,160 @@ msgid "" msgstr "" "Transfert des paramètres de protection de {redirect}{article} vers {title}" -#: src/rc_formatters.py:92 src/rc_formatters.py:518 +#: src/rc_formatters.py:171 src/rc_formatters.py:662 #, fuzzy msgid "for infinity and beyond" msgstr "toujours" -#: src/rc_formatters.py:101 src/rc_formatters.py:526 +#: src/rc_formatters.py:180 src/rc_formatters.py:670 #, python-brace-format msgid "for {num} {translated_length}" msgstr "" -#: src/rc_formatters.py:107 src/rc_formatters.py:529 +#: src/rc_formatters.py:186 src/rc_formatters.py:674 msgid "until {}" msgstr "" -#: src/rc_formatters.py:111 +#: src/rc_formatters.py:190 msgid " on pages: " msgstr " on pages: " -#: src/rc_formatters.py:118 src/rc_formatters.py:540 +#: src/rc_formatters.py:197 src/rc_formatters.py:687 msgid " and namespaces: " msgstr " et ces espaces de noms: " -#: src/rc_formatters.py:120 +#: src/rc_formatters.py:199 msgid " on namespaces: " msgstr " on namespaces: " -#: src/rc_formatters.py:132 +#: src/rc_formatters.py:211 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) blocked [{user}]({user_url}) {time}" "{restriction_desc}{comment}" msgstr "Modification des paramètres de blocage pour {blocked_user}" -#: src/rc_formatters.py:136 +#: src/rc_formatters.py:215 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) changed block settings for [{blocked_user}]" "({user_url}){comment}" msgstr "Modification des paramètres de blocage pour {blocked_user}" -#: src/rc_formatters.py:140 +#: src/rc_formatters.py:219 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" msgstr "Modification des paramètres de blocage pour {blocked_user}" -#: src/rc_formatters.py:143 +#: src/rc_formatters.py:224 #, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) left a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" msgstr "Ajout d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:143 -#, fuzzy -msgid "their own profile" -msgstr "Modification de son propre profil" - -#: src/rc_formatters.py:146 +#: src/rc_formatters.py:226 #, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) replied to a [comment]({comment}) on {target} " +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "Ajout d'un commentaire sur le profil de {target}" + +#: src/rc_formatters.py:232 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " "profile" msgstr "Réponse à un commentaire sur le profil de {target}" -#: src/rc_formatters.py:149 src/rc_formatters.py:155 src/rc_formatters.py:166 -#: src/rc_formatters.py:170 -#, fuzzy -msgid "their own" -msgstr "Modification de son propre profil" - -#: src/rc_formatters.py:152 +#: src/rc_formatters.py:238 #, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "Réponse à un commentaire sur le profil de {target}" + +#: src/rc_formatters.py:246 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" msgstr "Édition d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:158 -#, python-brace-format -msgid "[{author}]({author_url}) purged a comment on {target} profile" +#: src/rc_formatters.py:252 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "Édition d'un commentaire sur le profil de {target}" + +#: src/rc_formatters.py:259 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" msgstr "" "[{author}]({author_url}) a retiré un commentaire sur le profil de {target}." -#: src/rc_formatters.py:168 +#: src/rc_formatters.py:261 #, fuzzy, python-brace-format -msgid "[{author}]({author_url}) deleted a comment on {target} profile" +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" +"[{author}]({author_url}) a retiré un commentaire sur le profil de {target}." + +#: src/rc_formatters.py:265 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" msgstr "Retrait d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[{target}]({target_url})'s" -msgstr "" +#: src/rc_formatters.py:267 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "Retrait d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[their own]({target_url})" -msgstr "" - -#: src/rc_formatters.py:175 +#: src/rc_formatters.py:273 #, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" msgstr "Retrait d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:189 src/rc_formatters.py:191 src/rc_formatters.py:618 -#: src/rc_formatters.py:620 +#: src/rc_formatters.py:279 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "Retrait d'un commentaire sur le profil de {target}" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 msgid "none" msgstr "aucun" -#: src/rc_formatters.py:197 src/rc_formatters.py:605 +#: src/rc_formatters.py:298 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "Modification de la visibilité d'une révision de la page {article} " + +#: src/rc_formatters.py:300 +#, fuzzy, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "Modification de la visibilité d'une révision de la page {article} " + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 msgid "System" msgstr "Système" -#: src/rc_formatters.py:202 +#: src/rc_formatters.py:306 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) protected [{article}]({article_url}) with the " "following settings: {settings}{comment}" msgstr "Modification des paramètres de blocage pour {blocked_user}" -#: src/rc_formatters.py:204 src/rc_formatters.py:212 src/rc_formatters.py:628 -#: src/rc_formatters.py:634 +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 msgid " [cascading]" msgstr " [protection en cascade]" -#: src/rc_formatters.py:209 +#: src/rc_formatters.py:313 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) modified protection settings of [{article}]" @@ -231,14 +348,14 @@ msgid "" msgstr "" "Transfert des paramètres de protection de {redirect}{article} vers {title}" -#: src/rc_formatters.py:216 +#: src/rc_formatters.py:320 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) removed protection from [{article}]({article_url})" "{comment}" msgstr "Création d'une feuille de sprite pour {article}" -#: src/rc_formatters.py:220 +#: src/rc_formatters.py:324 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) changed visibility of revision on page [{article}]" @@ -250,7 +367,7 @@ 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} " -#: src/rc_formatters.py:225 +#: src/rc_formatters.py:337 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) imported [{article}]({article_url}) with {count} " @@ -261,34 +378,34 @@ msgid_plural "" msgstr[0] "Modification des paramètres de blocage pour {blocked_user}" msgstr[1] "Modification des paramètres de blocage pour {blocked_user}" -#: src/rc_formatters.py:230 +#: src/rc_formatters.py:342 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" msgstr "Modification de la visibilité d'une révision de la page {article} " -#: src/rc_formatters.py:232 +#: src/rc_formatters.py:344 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) changed visibility of log events{comment}" msgstr "Modification de la visibilité d'évènements des journaux" -#: src/rc_formatters.py:234 +#: src/rc_formatters.py:354 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) imported interwiki{comment}" msgstr "Modification de la visibilité d'évènements des journaux" -#: src/rc_formatters.py:237 +#: src/rc_formatters.py:357 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" msgstr "Édition de la règle {number} du filtre anti-abus" -#: src/rc_formatters.py:241 +#: src/rc_formatters.py:361 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" msgstr "Édition de la règle {number} du filtre anti-abus" -#: src/rc_formatters.py:245 +#: src/rc_formatters.py:365 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) merged revision histories of [{article}]" @@ -296,185 +413,246 @@ msgid "" msgstr "" "Transfert des paramètres de protection de {redirect}{article} vers {title}" -#: src/rc_formatters.py:249 +#: src/rc_formatters.py:369 #, fuzzy, python-brace-format msgid "Account [{author}]({author_url}) was created automatically" msgstr "[{author}]({author_url}) a créé le tableau Cargo « {table} »" -#: src/rc_formatters.py:252 src/rc_formatters.py:261 +#: src/rc_formatters.py:372 src/rc_formatters.py:381 #, fuzzy, python-brace-format msgid "Account [{author}]({author_url}) was created" msgstr "[{author}]({author_url}) a créé le tableau Cargo « {table} »" -#: src/rc_formatters.py:255 +#: src/rc_formatters.py:375 #, fuzzy, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url})" "{comment}" msgstr "Modification de la visibilité d'une révision de la page {article} " -#: src/rc_formatters.py:258 +#: src/rc_formatters.py:378 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url}) " "and password was sent by email{comment}" msgstr "" -#: src/rc_formatters.py:264 +#: src/rc_formatters.py:384 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) added an entry to the [interwiki table]" "({table_url}) pointing to {website} with {prefix} prefix" msgstr "Retrait d'une entrée de la table interwiki" -#: src/rc_formatters.py:270 +#: src/rc_formatters.py:390 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " "pointing to {website} with {prefix} prefix" msgstr "Retrait d'une entrée de la table interwiki" -#: src/rc_formatters.py:276 +#: src/rc_formatters.py:396 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" msgstr "Retrait d'une entrée de la table interwiki" -#: src/rc_formatters.py:279 +#: src/rc_formatters.py:399 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) changed the content model of the page [{article}]" "({article_url}) from {old} to {new}{comment}" msgstr "Modification de la visibilité d'une révision de la page {article} " -#: src/rc_formatters.py:283 +#: src/rc_formatters.py:403 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) edited the sprite for [{article}]({article_url})" msgstr "Création d'une feuille de sprite pour {article}" -#: src/rc_formatters.py:286 +#: src/rc_formatters.py:406 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) created the sprite sheet for [{article}]" "({article_url})" msgstr "Création d'une feuille de sprite pour {article}" -#: src/rc_formatters.py:289 +#: src/rc_formatters.py:409 #, fuzzy, python-brace-format msgid "" "[{author}]({author_url}) edited the slice for [{article}]({article_url})" msgstr "Création d'une feuille de sprite pour {article}" -#: src/rc_formatters.py:294 +#: src/rc_formatters.py:414 #, python-brace-format msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) a créé le tableau Cargo « {table} »" -#: src/rc_formatters.py:296 +#: src/rc_formatters.py:416 #, python-brace-format msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) a supprimé le tableau Cargo « {table} »" -#: src/rc_formatters.py:301 +#: src/rc_formatters.py:421 #, python-brace-format msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) a recréé le tableau Cargo « {table} »" -#: src/rc_formatters.py:306 +#: src/rc_formatters.py:426 #, python-brace-format msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) a remplacé le tableau cargo « {table} »" -#: src/rc_formatters.py:309 +#: src/rc_formatters.py:429 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) a créé le tableau Cargo « {table} »" -#: src/rc_formatters.py:313 +#: src/rc_formatters.py:433 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) a supprimé le tableau Cargo « {table} »" -#: src/rc_formatters.py:317 +#: src/rc_formatters.py:437 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) a créé le tableau Cargo « {table} »" -#: src/rc_formatters.py:320 +#: src/rc_formatters.py:440 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) a recréé le tableau Cargo « {table} »" -#: src/rc_formatters.py:322 +#: src/rc_formatters.py:442 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "Modification de la visibilité d'évènements des journaux" + +#: src/rc_formatters.py:444 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "Modification de la visibilité d'évènements des journaux" + +#: src/rc_formatters.py:447 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "Modification de la visibilité d'évènements des journaux" + +#: src/rc_formatters.py:450 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "Modification de la visibilité d'une révision de la page {article} " + +#: src/rc_formatters.py:455 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) a supprimé le tableau Cargo « {table} »" + +#: src/rc_formatters.py:460 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "Modification de la visibilité d'évènements des journaux" + +#: src/rc_formatters.py:464 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "Modification de la visibilité d'évènements des journaux" + +#: src/rc_formatters.py:468 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "Modification de la visibilité d'évènements des journaux" + +#: src/rc_formatters.py:473 #, fuzzy msgid "An action has been hidden by administration." msgstr "L'action a été masquée par le personnel de Gamepedia." -#: src/rc_formatters.py:329 +#: src/rc_formatters.py:480 #, python-brace-format msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -#: src/rc_formatters.py:337 src/rc_formatters.py:621 +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 msgid "No description provided" msgstr "Aucune description" -#: src/rc_formatters.py:384 +#: src/rc_formatters.py:524 msgid "(N!) " msgstr "(N!) " -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "m" msgstr "m" -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "b" msgstr "b" -#: src/rc_formatters.py:402 src/rc_formatters.py:407 +#: src/rc_formatters.py:542 src/rc_formatters.py:547 msgid "__Only whitespace__" msgstr "__Espaces uniquement__" -#: src/rc_formatters.py:412 +#: src/rc_formatters.py:552 msgid "Removed" msgstr "Retirés" -#: src/rc_formatters.py:414 +#: src/rc_formatters.py:554 msgid "Added" msgstr "Ajoutés" -#: src/rc_formatters.py:448 src/rc_formatters.py:487 +#: src/rc_formatters.py:588 src/rc_formatters.py:627 msgid "Options" msgstr "Options" -#: src/rc_formatters.py:448 +#: src/rc_formatters.py:588 #, python-brace-format msgid "([preview]({link}) | [undo]({undolink}))" msgstr "([Aperçu]({link}) | [Annuler]({undolink}))" -#: src/rc_formatters.py:453 +#: src/rc_formatters.py:593 #, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Téléversement d'une nouvelle version de {name}" -#: src/rc_formatters.py:455 +#: src/rc_formatters.py:595 #, python-brace-format msgid "Reverted a version of {name}" msgstr "Rétablissement d'une version de {name}" -#: src/rc_formatters.py:457 +#: src/rc_formatters.py:597 #, python-brace-format msgid "Uploaded {name}" msgstr "Téléversement de {name}" -#: src/rc_formatters.py:473 +#: src/rc_formatters.py:613 msgid "**No license!**" msgstr "**Aucune license!**" -#: src/rc_formatters.py:485 +#: src/rc_formatters.py:625 msgid "" "\n" "License: {}" @@ -482,159 +660,163 @@ msgstr "" "\n" "License: {}" -#: src/rc_formatters.py:487 +#: src/rc_formatters.py:627 #, python-brace-format msgid "([preview]({link}))" msgstr "([Aperçu]({link}))" -#: src/rc_formatters.py:492 +#: src/rc_formatters.py:632 #, python-brace-format msgid "Deleted page {article}" msgstr "Suppression de la page {article}" -#: src/rc_formatters.py:495 +#: src/rc_formatters.py:637 #, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "Suppression par écrasement de la redirection {article}" -#: src/rc_formatters.py:499 +#: src/rc_formatters.py:643 msgid "No redirect has been made" msgstr "Aucune redirection créée" -#: src/rc_formatters.py:500 +#: src/rc_formatters.py:644 msgid "A redirect has been made" msgstr "Une redirection a été créée" -#: src/rc_formatters.py:501 +#: src/rc_formatters.py:645 #, python-brace-format msgid "Moved {redirect}{article} to {target}" msgstr "Déplacement de {redirect}{article} vers {target}" -#: src/rc_formatters.py:504 +#: src/rc_formatters.py:648 #, python-brace-format msgid "Moved {redirect}{article} to {title} over redirect" msgstr "Déplacement de {redirect}{article} vers {title} par redirection" -#: src/rc_formatters.py:508 +#: src/rc_formatters.py:652 #, python-brace-format msgid "Moved protection settings from {redirect}{article} to {title}" msgstr "" "Transfert des paramètres de protection de {redirect}{article} vers {title}" -#: src/rc_formatters.py:533 +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 msgid "Blocked from editing the following pages: " msgstr "Ne peut plus modifier les pages suivantes : " -#: src/rc_formatters.py:542 +#: src/rc_formatters.py:689 msgid "Blocked from editing pages on following namespaces: " msgstr "Ne peut plus modifier les pages des espaces de noms suivants : " -#: src/rc_formatters.py:553 +#: src/rc_formatters.py:700 msgid "Partial block details" msgstr "Détails partiaux du blocage" -#: src/rc_formatters.py:554 +#: src/rc_formatters.py:701 #, fuzzy, python-brace-format msgid "Blocked {blocked_user} {time}" msgstr "{blocked_user} a été bloqué pour {time}" -#: src/rc_formatters.py:558 +#: src/rc_formatters.py:705 #, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Modification des paramètres de blocage pour {blocked_user}" -#: src/rc_formatters.py:562 +#: src/rc_formatters.py:709 #, python-brace-format msgid "Unblocked {blocked_user}" msgstr "{blocked_user} a été débloqué" -#: src/rc_formatters.py:567 +#: src/rc_formatters.py:714 #, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Ajout d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:569 +#: src/rc_formatters.py:716 msgid "Left a comment on their own profile" msgstr "Ajout d'un commentaire sur son propre profil" -#: src/rc_formatters.py:574 +#: src/rc_formatters.py:721 #, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Réponse à un commentaire sur le profil de {target}" -#: src/rc_formatters.py:576 +#: src/rc_formatters.py:723 msgid "Replied to a comment on their own profile" msgstr "Réponse à un commentaire sur son propre profil" -#: src/rc_formatters.py:581 +#: src/rc_formatters.py:728 #, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Édition d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:583 +#: src/rc_formatters.py:730 msgid "Edited a comment on their own profile" msgstr "Modification d'un commentaire sur son propre profil" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 #, python-brace-format msgid "Edited {target}'s profile" msgstr "Modification du profil de {target}" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 msgid "Edited their own profile" msgstr "Modification de son propre profil" -#: src/rc_formatters.py:588 +#: src/rc_formatters.py:735 #, python-brace-format msgid "Cleared the {field} field" msgstr "" -#: src/rc_formatters.py:590 +#: src/rc_formatters.py:737 #, python-brace-format msgid "{field} field changed to: {desc}" msgstr "{field} modifié pour: {desc}" -#: src/rc_formatters.py:593 +#: src/rc_formatters.py:740 #, python-brace-format msgid "Purged a comment on {target}'s profile" msgstr "Retrait d'un commentaire sur le profil de {target}." -#: src/rc_formatters.py:599 +#: src/rc_formatters.py:746 #, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Retrait d'un commentaire sur le profil de {target}" -#: src/rc_formatters.py:603 +#: src/rc_formatters.py:750 #, python-brace-format msgid "Changed group membership for {target}" msgstr "Modification des groupes pour {target}" -#: src/rc_formatters.py:607 +#: src/rc_formatters.py:754 #, python-brace-format msgid "{target} got autopromoted to a new usergroup" msgstr "{target} a été auto-promu dans un nouveau groupe" -#: src/rc_formatters.py:622 +#: src/rc_formatters.py:769 #, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "Groupe modifié de {old_groups} vers {new_groups}{reason}" -#: src/rc_formatters.py:626 +#: src/rc_formatters.py:773 #, python-brace-format msgid "Protected {target}" msgstr "Protection de {target}" -#: src/rc_formatters.py:632 +#: src/rc_formatters.py:779 #, python-brace-format msgid "Changed protection level for {article}" msgstr "Modification du niveau de protection de {article}" -#: src/rc_formatters.py:638 +#: src/rc_formatters.py:785 #, python-brace-format msgid "Removed protection from {article}" msgstr "Retrait de la protection de {article}" -#: src/rc_formatters.py:642 +#: src/rc_formatters.py:789 #, python-brace-format msgid "Changed visibility of revision on page {article} " msgid_plural "Changed visibility of {amount} revisions on page {article} " @@ -642,184 +824,231 @@ 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} " -#: src/rc_formatters.py:647 +#: src/rc_formatters.py:801 #, 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" -#: src/rc_formatters.py:652 +#: src/rc_formatters.py:806 #, python-brace-format msgid "Restored {article}" msgstr "Restauration de {article}" -#: src/rc_formatters.py:655 +#: src/rc_formatters.py:809 msgid "Changed visibility of log events" msgstr "Modification de la visibilité d'évènements des journaux" -#: src/rc_formatters.py:658 +#: src/rc_formatters.py:819 msgid "Imported interwiki" msgstr "Importation d'interwiki" -#: src/rc_formatters.py:661 +#: src/rc_formatters.py:822 #, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Édition de la règle {number} du filtre anti-abus" -#: src/rc_formatters.py:664 +#: src/rc_formatters.py:825 #, fuzzy, python-brace-format msgid "Created abuse filter number {number}" msgstr "Édition de la règle {number} du filtre anti-abus" -#: src/rc_formatters.py:667 +#: src/rc_formatters.py:828 #, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Fusion de l'historique de {article} vers {dest}" -#: src/rc_formatters.py:671 +#: src/rc_formatters.py:832 msgid "Created account automatically" msgstr "" -#: src/rc_formatters.py:674 src/rc_formatters.py:683 +#: src/rc_formatters.py:835 src/rc_formatters.py:844 msgid "Created account" msgstr "" -#: src/rc_formatters.py:677 +#: src/rc_formatters.py:838 #, fuzzy, python-brace-format msgid "Created account {article}" msgstr "Suppression de la page {article}" -#: src/rc_formatters.py:680 +#: src/rc_formatters.py:841 #, python-brace-format msgid "Created account {article} and password was sent by email" msgstr "" -#: src/rc_formatters.py:686 +#: src/rc_formatters.py:847 msgid "Added an entry to the interwiki table" msgstr "Ajout d'une entrée à la table interwiki" -#: src/rc_formatters.py:687 src/rc_formatters.py:693 +#: src/rc_formatters.py:848 src/rc_formatters.py:854 #, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Préfixe: {prefix}, site: {website} | {desc}" -#: src/rc_formatters.py:692 +#: src/rc_formatters.py:853 msgid "Edited an entry in interwiki table" msgstr "Modification d'une entrée de la table interwiki" -#: src/rc_formatters.py:698 +#: src/rc_formatters.py:859 msgid "Deleted an entry in interwiki table" msgstr "Retrait d'une entrée de la table interwiki" -#: src/rc_formatters.py:699 +#: src/rc_formatters.py:860 #, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Préfixe: {prefix} | {desc}" -#: src/rc_formatters.py:702 +#: src/rc_formatters.py:863 #, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Modification du modèle de contenu de l'article {article}" -#: src/rc_formatters.py:703 +#: src/rc_formatters.py:864 #, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Modèle changé de {old} à {new}: {reason}" -#: src/rc_formatters.py:708 +#: src/rc_formatters.py:869 #, python-brace-format msgid "Edited the sprite for {article}" msgstr "Édition du sprite de {article}" -#: src/rc_formatters.py:711 +#: src/rc_formatters.py:872 #, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Création d'une feuille de sprite pour {article}" -#: src/rc_formatters.py:714 +#: src/rc_formatters.py:875 #, python-brace-format msgid "Edited the slice for {article}" msgstr "Edited the slice for {article}" -#: src/rc_formatters.py:720 +#: src/rc_formatters.py:881 #, python-brace-format msgid "Created the Cargo table \"{table}\"" msgstr "Création du tableau Cargo « {table} »" -#: src/rc_formatters.py:724 +#: src/rc_formatters.py:885 #, python-brace-format msgid "Deleted the Cargo table \"{table}\"" msgstr "Suppression du tableau Cargo « {table} »" -#: src/rc_formatters.py:731 +#: src/rc_formatters.py:892 #, python-brace-format msgid "Recreated the Cargo table \"{table}\"" msgstr "Recréation du tableau Cargo « {table} »" -#: src/rc_formatters.py:738 +#: src/rc_formatters.py:899 #, python-brace-format msgid "Replaced the Cargo table \"{table}\"" msgstr "Remplacement du tableau Cargo « {table} »" -#: src/rc_formatters.py:742 +#: src/rc_formatters.py:903 #, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Création du tag « {tag} »" -#: src/rc_formatters.py:746 +#: src/rc_formatters.py:907 #, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Suppression du tag « {tag} »" -#: src/rc_formatters.py:750 +#: src/rc_formatters.py:911 #, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Activation du tag « {tag} »" -#: src/rc_formatters.py:753 +#: src/rc_formatters.py:914 #, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Désactivation du tag « {tag} »" -#: src/rc_formatters.py:756 +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, fuzzy, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "Suppression du tag « {tag} »" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 #, fuzzy msgid "Action has been hidden by administration" msgstr "L'action a été masquée par le personnel de Gamepedia." -#: src/rc_formatters.py:757 -msgid "Unknown" -msgstr "Inconnu" - -#: src/rc_formatters.py:761 +#: src/rc_formatters.py:951 #, python-brace-format msgid "Unknown event `{event}`" msgstr "" -#: src/rc_formatters.py:767 src/rc_formatters.py:769 +#: src/rc_formatters.py:957 src/rc_formatters.py:959 msgid "Report this on the support server" msgstr "" -#: src/rc_formatters.py:786 +#: src/rc_formatters.py:976 msgid "Tags" msgstr "Tags" -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid "**Added**: " msgstr "**Ajoutées : ** " -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid " and {} more\n" msgstr " et {} autres\n" -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid "**Removed**: " msgstr "**Retirées : ** " -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid " and {} more" msgstr " et {} autres" -#: src/rc_formatters.py:791 +#: src/rc_formatters.py:981 msgid "Changed categories" msgstr "Catégories modifiées" + +#, fuzzy +#~ msgid "their own profile" +#~ msgstr "Modification de son propre profil" + +#, fuzzy +#~ msgid "their own" +#~ msgstr "Modification de son propre profil" diff --git a/locale/fr/LC_MESSAGES/rcgcdw.mo b/locale/fr/LC_MESSAGES/rcgcdw.mo index 7e95607..407b91a 100644 Binary files a/locale/fr/LC_MESSAGES/rcgcdw.mo and b/locale/fr/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/fr/LC_MESSAGES/rcgcdw.po b/locale/fr/LC_MESSAGES/rcgcdw.po index ed8caf1..30cb217 100644 --- a/locale/fr/LC_MESSAGES/rcgcdw.po +++ b/locale/fr/LC_MESSAGES/rcgcdw.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:21+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-09-03 13:14+0200\n" -"Last-Translator: Frisk \n" +"Last-Translator: Frisk <>\n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -20,183 +20,183 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SearchPath-0: rcgcdw.pot\n" -#: src/rcgcdw.py:113 src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 -#: src/rcgcdw.py:121 src/rcgcdw.py:123 src/rcgcdw.py:125 +#: src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 src/rcgcdw.py:121 +#: src/rcgcdw.py:123 src/rcgcdw.py:125 src/rcgcdw.py:127 #, python-brace-format msgid "{value} (avg. {avg})" msgstr "" -#: src/rcgcdw.py:145 +#: src/rcgcdw.py:147 msgid "Daily overview" msgstr "Résumé de la journée" -#: src/rcgcdw.py:153 +#: src/rcgcdw.py:155 msgid "No activity" msgstr "Aucune activité" -#: src/rcgcdw.py:177 +#: src/rcgcdw.py:179 msgid " ({} action)" msgid_plural " ({} actions)" msgstr[0] " ({} action)" msgstr[1] " ({} actions)" -#: src/rcgcdw.py:179 +#: src/rcgcdw.py:181 msgid " ({} edit)" msgid_plural " ({} edits)" msgstr[0] " ({} modification)" msgstr[1] " ({} modifications)" -#: src/rcgcdw.py:184 +#: src/rcgcdw.py:186 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] " UTC ({} action)" msgstr[1] " UTC ({} actions)" -#: src/rcgcdw.py:186 src/rcgcdw.py:187 src/rcgcdw.py:191 +#: src/rcgcdw.py:188 src/rcgcdw.py:189 src/rcgcdw.py:193 msgid "But nobody came" msgstr "Aucune activité" -#: src/rcgcdw.py:194 +#: src/rcgcdw.py:196 msgid "Most active user" msgid_plural "Most active users" msgstr[0] "Membre le plus actif" msgstr[1] "Membres les plus actifs" -#: src/rcgcdw.py:195 +#: src/rcgcdw.py:197 msgid "Most edited article" msgid_plural "Most edited articles" msgstr[0] "Article le plus modifié" msgstr[1] "Articles les plus modifiés" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Edits made" msgstr "Modifications effectuées" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "New files" msgstr "Nouveaux fichiers" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Admin actions" msgstr "Actions d'administrateur" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "Bytes changed" msgstr "Octets modifiés" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "New articles" msgstr "Nouveaux articles" -#: src/rcgcdw.py:198 +#: src/rcgcdw.py:200 msgid "Unique contributors" msgstr "Contributeurs uniques" -#: src/rcgcdw.py:199 +#: src/rcgcdw.py:201 msgid "Most active hour" msgid_plural "Most active hours" msgstr[0] "Heure la plus active" msgstr[1] "Heures les plus actives" -#: src/rcgcdw.py:200 +#: src/rcgcdw.py:202 msgid "Day score" msgstr "Score du jour" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "director" msgstr "Directeur" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bot" msgstr "Robot" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "editor" msgstr "editor" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "directors" msgstr "Directeur" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "sysop" msgstr "Administrateur" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bureaucrat" msgstr "Bureaucrate" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "reviewer" msgstr "reviewer" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autoreview" msgstr "autoreview" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autopatrol" msgstr "autopatrol" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "wiki_guardian" msgstr "Gardien du wiki" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "second" msgid_plural "seconds" msgstr[0] "seconde" msgstr[1] "secondes" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "minute" msgid_plural "minutes" msgstr[0] "minute" msgstr[1] "minutes" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "hour" msgid_plural "hours" msgstr[0] "heure" msgstr[1] "heures" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "day" msgid_plural "days" msgstr[0] "jour" msgstr[1] "jours" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "week" msgid_plural "weeks" msgstr[0] "semaine" msgstr[1] "semaines" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "month" msgid_plural "months" msgstr[0] "mois" msgstr[1] "mois" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "year" msgid_plural "years" msgstr[0] "année" msgstr[1] "années" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "millennium" msgid_plural "millennia" msgstr[0] "millénaire" msgstr[1] "millénaires" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "decade" msgid_plural "decades" msgstr[0] "décennie" msgstr[1] "décennies" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "century" msgid_plural "centuries" msgstr[0] "centenaire" diff --git a/locale/fr/LC_MESSAGES/redaction.mo b/locale/fr/LC_MESSAGES/redaction.mo new file mode 100644 index 0000000..e96667c Binary files /dev/null and b/locale/fr/LC_MESSAGES/redaction.mo differ diff --git a/locale/fr/LC_MESSAGES/redaction.po b/locale/fr/LC_MESSAGES/redaction.po new file mode 100644 index 0000000..0efa0b9 --- /dev/null +++ b/locale/fr/LC_MESSAGES/redaction.po @@ -0,0 +1,24 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-18 15:17+0100\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: fr\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "" diff --git a/locale/hi/LC_MESSAGES/discussion_formatters.mo b/locale/hi/LC_MESSAGES/discussion_formatters.mo new file mode 100644 index 0000000..a8ee5f3 Binary files /dev/null and b/locale/hi/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/hi/LC_MESSAGES/discussion_formatters.po b/locale/hi/LC_MESSAGES/discussion_formatters.po new file mode 100644 index 0000000..513b8f6 --- /dev/null +++ b/locale/hi/LC_MESSAGES/discussion_formatters.po @@ -0,0 +1,184 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Creeper \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "अनरेजिसटर्ड सदस्य" + +#: src/discussion_formatters.py:34 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" +"{author}({author_url}) ने {forumName} में [{title}](<{url}f/p/{threadId}>) " +"बनाया" + +#: src/discussion_formatters.py:36 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" +"[{author}]({author_url}) ने {forumName} में पॉल [{title}](<{url}f/p/" +"{threadId}>) बनाया" + +#: src/discussion_formatters.py:38 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" +"[{author}]({author_url}) ने {forumName} में क्विज़ [{title}](<{url}f/p/" +"{threadId}>) बनाया" + +#: src/discussion_formatters.py:43 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " +"to [{title}](<{url}f/p/{threadId}>) in {forumName}" +msgstr "" +"[{author}]({author_url}) ने {forumName} में [{title}](<{url}f/p/{threadId}> " +"पर [जवाब](<{url}f/p/{threadId}/r/{postId}>) दिया" + +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 +msgid "unknown" +msgstr "अनजान" + +#: src/discussion_formatters.py:49 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/" +"Message_Wall:{user_wall}>)" +msgstr "" +"{author}({author_url}) ने [{user} के मैसेज वॉल](<{url}wiki/" +"Message_Wall:{user_wall}>) पर [{title}(<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) बनाया" + +#: src/discussion_formatters.py:51 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall]" +"(<{url}wiki/Message_Wall:{user_wall}>)" +msgstr "" +"[{author}]({author_url}) ने [{user} के मैसेज वॉल](<{url}wiki/" +"Message_Wall:{user_wall}>) के [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) पर [जवाब](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}#{replyId}>) दिया" + +#: src/discussion_formatters.py:57 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" +msgstr "" +"[{author}]({author_url}) ने [{article}](<{url}>) पर " +"[कमेंट](<{url}?commentId={commentId}>) किया" + +#: src/discussion_formatters.py:62 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" +"[{author}]({author_url}) ने [{article}](<{url}>) के एक " +"[कमेंट](<{url}?commentId={commentId}>) पर " +"[जवाब](<{url}?commentId={commentId}&replyId={replyId}>) दिया" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" +"[{author}]({author_url}) द्वारा अनजान घटना `{event}`, [सहायता " +"सर्वर](<{support}>) पर रिपोर्ट करें।" + +#: src/discussion_formatters.py:98 +#, python-brace-format +msgid "Created \"{title}\"" +msgstr "\"{title}\" बनाया" + +#: src/discussion_formatters.py:102 +#, python-brace-format +msgid "Created a poll \"{title}\"" +msgstr "पॉल \"{title}\" बनाया" + +#: src/discussion_formatters.py:109 +msgid "Option {}" +msgstr "विकल्प {}" + +#: src/discussion_formatters.py:110 +#, python-brace-format +msgid "__[View image]({image_url})__" +msgstr "__[चित्र देखें]({image_url})__" + +#: src/discussion_formatters.py:114 +#, python-brace-format +msgid "Created a quiz \"{title}\"" +msgstr "एक क्विज़ \"{title}\" बनाया" + +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 +msgid "Tags" +msgstr "टैग" + +#: src/discussion_formatters.py:129 +msgid "{} tags" +msgstr "{} टैग" + +#: src/discussion_formatters.py:134 +#, python-brace-format +msgid "Replied to \"{title}\"" +msgstr "\"{title}\" पर जवाब दिया" + +#: src/discussion_formatters.py:143 +#, python-brace-format +msgid "Created \"{title}\" on {user}'s Message Wall" +msgstr "{user} के मैसेज वॉल पर \"{title}\" बनाया" + +#: src/discussion_formatters.py:147 +#, python-brace-format +msgid "Replied to \"{title}\" on {user}'s Message Wall" +msgstr "{user} के मैसेज वॉल के \"{title}\" पर जवाब दिया" + +#: src/discussion_formatters.py:154 +#, python-brace-format +msgid "Commented on {article}" +msgstr "{article} पर कमेंट किया" + +#: src/discussion_formatters.py:158 +#, python-brace-format +msgid "Replied to a comment on {article}" +msgstr "{article} के एक कमेंट पर जवाब दिया" + +#: src/discussion_formatters.py:162 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "अनजान घटना `{event}`" + +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 +msgid "Report this on the support server" +msgstr "इसे सहायता सर्वर पर रिपोर्ट करें" diff --git a/locale/hi/LC_MESSAGES/misc.po b/locale/hi/LC_MESSAGES/misc.po new file mode 100644 index 0000000..5de2552 --- /dev/null +++ b/locale/hi/LC_MESSAGES/misc.po @@ -0,0 +1,87 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Creeper \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/misc.py:45 +msgid "Location" +msgstr "जगह" + +#: src/misc.py:45 +msgid "About me" +msgstr "मेरे बारे में" + +#: src/misc.py:45 +msgid "Google link" +msgstr "गूगल लिंक" + +#: src/misc.py:45 +msgid "Facebook link" +msgstr "फेसबुक लिंक" + +#: src/misc.py:45 +msgid "Twitter link" +msgstr "ट्विटर लिंक" + +#: src/misc.py:45 +msgid "Reddit link" +msgstr "रेड्डिट लिंक" + +#: src/misc.py:45 +msgid "Twitch link" +msgstr "ट्विच लिंक" + +#: src/misc.py:45 +msgid "PSN link" +msgstr "PSN लिंक" + +#: src/misc.py:45 +msgid "VK link" +msgstr "VK लिंक" + +#: src/misc.py:45 +msgid "XBL link" +msgstr "XBL लिंक" + +#: src/misc.py:45 +msgid "Steam link" +msgstr "स्टीम लिंक" + +#: src/misc.py:45 +msgid "Discord handle" +msgstr "डिस्कॉर्ड अकाउंट" + +#: src/misc.py:45 +msgid "Battle.net handle" +msgstr "Battle.net अकाउंट" + +#: src/misc.py:114 +msgid "" +"\n" +"__And more__" +msgstr "" +"\n" +"__और काफी कुछ__" + +#: src/misc.py:271 +msgid "Unknown" +msgstr "अनजान" + +#: src/misc.py:273 +msgid "unknown" +msgstr "अनजान" diff --git a/locale/hi/LC_MESSAGES/rc.mo b/locale/hi/LC_MESSAGES/rc.mo new file mode 100644 index 0000000..bfd9f51 Binary files /dev/null and b/locale/hi/LC_MESSAGES/rc.mo differ diff --git a/locale/hi/LC_MESSAGES/rc.po b/locale/hi/LC_MESSAGES/rc.po new file mode 100644 index 0000000..ffea55a --- /dev/null +++ b/locale/hi/LC_MESSAGES/rc.po @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Creeper \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/rc.py:319 +#, python-brace-format +msgid "{wiki} seems to be down or unreachable." +msgstr "शायद {wiki} डाउन है या इस तक पहुँचा नहीं जा सकता।" + +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "कनेक्शन की स्थिति" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "{wiki} से सम्पर्क अब स्थिर होने लगा है।" + +#: src/rc.py:401 +msgid "~~hidden~~" +msgstr "~~छिपाया गया~~" + +#: src/rc.py:405 +msgid "hidden" +msgstr "छिपाया गया" diff --git a/locale/hi/LC_MESSAGES/rc_formatters.mo b/locale/hi/LC_MESSAGES/rc_formatters.mo new file mode 100644 index 0000000..d659d27 Binary files /dev/null and b/locale/hi/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/hi/LC_MESSAGES/rc_formatters.po b/locale/hi/LC_MESSAGES/rc_formatters.po new file mode 100644 index 0000000..e041c9c --- /dev/null +++ b/locale/hi/LC_MESSAGES/rc_formatters.po @@ -0,0 +1,1128 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Creeper \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "कुछ नहीं" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "सूचना दे दी गई है" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "**ब्लॉक्ड सदस्य**" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "सम्पादना को टैग कर दिया है" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "काम को मना कर दिया" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "**IP रेंज ब्लॉक्ड है**" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "थ्रॉटल किए गए काम" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "ऑटोकन्फर्म्ड ग्रुप हटा दिया गया है" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "**प्रिविलेज वाले ग्रुपों से हटा दिया गया है**" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "सम्पादना" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "अपलोड" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "मूव" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "स्टैश अपलोड" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "डिलीशन" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "अकाउंट सृष्टि" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "ऑटो अकाउंट सृष्टि" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "अनरेजिसटर्ड सदस्य" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" +"[{author}]({author_url}) ने *[{target}]({target_url})* पर ऐक्शन \"{action}\" " +"लेते हुए *{abuse_filter}* को ट्रिगर किया - लिया गया ऐक्शन: {result}।" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "अनजान" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" +"[{author}]({author_url}) ने [{article}]({edit_link}){comment} " +"({bold}{sign}{edit_size}{bold}) को सम्पादित किया" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" +"[{author}]({author_url}) ने [{article}]({edit_link}){comment} " +"({bold}{sign}{edit_size}{bold}) बनाया" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{file}]({file_link}){comment} को अपलोड किया" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{file}]({file_link}){comment} के एक संसकरण को " +"रिवर्ट किया" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" +"[{author}]({author_url}) ने [{file}]({file_link}){comment} के एक नए संसकरण को" +" अपलोड किया" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{page}]({page_link}){comment} को डिलीट किया" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" +"[{author}]({author_url} ने [{page}]({page_link}){comment} को ओवर्राइट करके " +"रेडिरेक्ट को डिलीट किया" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "बिना रेडिरेक्ट छोड़े" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "रेडिरेक्ट छोड़कर" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" +"[{author}]({author_url}) ने {redirect}*{article}* को [{target}]({target_url})" +" पर {made_a_redirect} मूव किया{comment}" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" +"[{author}]({author_url}) ने {redirect}*{article}* को रेडिरेक्ट के साथ " +"[{target}]({target_url}) {made_a_redirect}{comment} पर मूव किया" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने प्रॉटेक्शन सेटिंगस को {redirect}*{article}* से " +"[{target}]({target_url}){comment} पर मूव किया" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "अनंत और इसके परे तक" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "{num} {translated_length} के लिए" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "{} के लिए" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr " इन पृष्ठों पर: " + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr " और इन नेमस्पेसों पर: " + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr " इन नेमस्पेसों पर: " + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" +"[{author}]({author_url}) ने [{user}]({user_url}) {time}{restriction_desc} को " +"ब्लॉक किया{comment}" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{blocked_user}]({user_url}) के ब्लॉक सेटिंगस को " +"बदला{comment}" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{blocked_user}]({user_url}) को अनब्लॉक " +"किया{comment}" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल पर एक [कमेंट]({comment}) " +"छोड़ा" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) ने अपने प्रॉफाइल पर एक [कमेंट]({comment}) छोड़ा" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल के एक [कमेंट]({comment}) पर " +"जवाब दिया" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" +"[{author}]({author_url}) ने अपने प्रॉफाइल के एक [कमेंट] ({comment}) पर जवाब " +"दिया" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल के एक [कमेंट]({comment}) पर " +"जवाब दिया" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) ने अपने प्रॉफाइल के एक [कमेंट]({comment}) को सम्पादि" +"त किया" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल के एक कमेंट को पर्ज किया" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "[{author}]({author_url}) ने अपने प्रॉफाइल के एक कमेंट को पर्ज किया" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल के एक कमेंट को डिलीट किया" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "[{author}]({author_url}) ने अपने प्रॉफाइल पर एक कमेंट को डिलीट किया" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल पर {field} को सम्पादित किया।" +" *({desc})*" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" +"[{author}]({author_url}) ने अपने प्रॉफाइल पर {field} को सम्पादित किया। " +"*({desc})*" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "कुछ नहीं" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" +"[{author}]({author_url}) ने [{target}]({target_url}) के लिए ग्रुप " +"{old_groups} से {new_groups} में बदला{comment}" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" +"{author} ने [{target}]({target_url}) को {old_groups} से {new_groups} में " +"ऑटोप्रमोट किया{comment}" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "सिस्टम" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) को इन सेटिंग्स के साथ " +"प्रॉटेक्ट किया: {settings}{comment}" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr " [कैस्केडिंग]" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) के प्रॉटेक्शन सेटिंग्" +"स को इसमें मॉडिफाइ किया: {settings}{comment}" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) से प्रॉटेक्शन हटा " +"दिया{comment}" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" +"[{author}]({author_url} ने [{article}]({article_url}) पर रिवीशन के दृश्यता को" +" बदल दिया{comment}" +msgstr[1] "" +"[{author}]({author_url} ने [{article}]({article_url}) पर {amount} रिवीशनों के" +" दृश्यता को बदल दिया{comment}" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" +"[{author}]({author_url}) ने [{article}]({article_url}) को {count} रिवीशन के " +"साथ ({article_url}) इम्पोर्ट किया{comment}" +msgstr[1] "" +"[{author}]({author_url}) ने [{article}]({article_url}) को {count} रिवीशनों के" +" साथ ({article_url}) इम्पोर्ट किया{comment}" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) को रिस्टोर " +"किया{comment}" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "[{author}]({author_url}) ने लॉग घटनाओं के दृश्यता को बदल दिया{comment}" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "[{author}]({author_url}) ने इंटरविकी इम्पोर्ट किया{comment}" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" +"[{author}]({author_url}) ने अब्यूज़ फिल्टर [संख्या {number}]({filter_url}) को" +" सम्पादित किया" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" +"[{author}]({author_url}) ने अब्यूज़ फिल्टर [संख्या {number}]({filter_url}) " +"बनाया" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) के रिवीशन इतिहास को " +"[{dest}]({dest_url}) में मर्ज किया{comment}" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "अकाउंट [{author}]({author_url}) अपने आप बना है" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "अकाउंट [{author}]({author_url}) को बनाया गया है" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" +"अकाउंट [{article}]({article_url}) [{author}]({author_url}) द्वारा बनाया गया " +"है{comment}" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" +"अकाउंट [{article}]({article_url}) [{author}]({author_url}) द्वारा बनाया गया " +"है और पासवर्ड ईमेल के ज़रिये भेजा गया है{comment}" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" +"[{author}]({author_url}) ने {prefix} उपसर्ग के साथ {website} की तरफ इशारा " +"करने वाले [इंटरविकी टेबल]({table_url}) में एक एंट्री जोड़ा" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" +"[{author}]({author_url}) ने {prefix} उपसर्ग के साथ {website} की तरफ इशारा " +"करने वाले [इंटरविकी टेबल]({table_url}) में एक एंट्री को सम्पादित किया" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" +"[{author}]({author_url}) ने [इंटरविकी टेबल]({table_url}) पर एक एंट्री को डिली" +"ट किया" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" +"[{author}]({author_url}) ने पृष्ठ [{article}]({article_url}) के कंटेंट मॉडल " +"को {old} से {new} में बदला{comment}" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" +"[{author}]({author_url}) [{article}]({article_url}) के स्प्राइट को सम्पादित " +"किया" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) के लिए स्प्राइट शीट " +"बनाया" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) के स्लाइस को सम्पादित " +"किया" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "[{author}]({author_url}) ने कीर्गो टेबल \"{table}\" बनाया" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "[{author}]({author_url}) ने कार्गो टेबल \"{table}\" को डिलीट किया" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "[{author}]({author_url}) ने कार्गो टेबल \"{table}\" को फिर से बनाया" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "[{author}]({author_url}) ने कार्गो टेबल \"{table}\" को बदल दिया" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) ने एक [टैग]({tag_url}) \"{tag}\" बनाया" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) ने एक [टैग]({tag_url}) \"{tag}\" को डिलीट किया" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" +"[{author}]({author_url}) ने एक [टैग]({tag_url}) \"{tag}\" को ऐक्टिवेट किया" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" +"[{author}]({author_url}) ने एक [टैग]({tag_url}) \"{tag}\" को डिऐक्टिवेट किया" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "[{author}]({author_url}) ने विकी सेटिंग्स को बदला ({reason})" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने विकी *{wiki_name}* को डिलीट किया ({comment})" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) ने विकी *{wiki_name}* ({comment}) के लॉक किया" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने *{wiki_name}* पर एक नेमस्पेस *{namespace_name}* " +"को मॉडिफाइ किया ({comment})" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने *{wiki_name}* पर नेमस्पेस *{namespace_name}* को " +"डिलीट किया ({comment})" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने यूज़र ग्रुप *{group_name}* को मॉडिफाइ किया " +"({comment})" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने एक विकी *{wiki_name}* को रिस्टोर किया ({comment})" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने एक विकी *{wiki_name}* को अनलॉक किया ({comment})" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "एक ऐक्शन ऐडमिनिस्ट्रेशन द्वारा छिपाया गया है।" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" +"[{author}]({author_url}) द्वारा अनजान घटना `{event}`, इसे [सहायता " +"सर्वर](<{support}>) पर रिपोर्ट करें।" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "{user} ने \"{abuse_filter}\" को ट्रिगर किया" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "ऐक्शन" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "लिया गया ऐक्शन" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "शीर्षक" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "कोई विवरण नहीं दिया गया" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "(न!) " + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "छो" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "बॉ" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "__सिर्फ वाइटस्पेस__" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "हटाया गया" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "जोड़ा" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "विकल्प" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "([पूर्वावलोकन]({link}) | [पूर्ववत करें]({undolink}))" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "{name} के एक नए संसकरण को अपलोड किया" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "{name} के एक संसकरण को पूर्ववत किया" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "{name} को अपलोड किया" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "**कोई लाइसेंस नहीं है!**" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" +"\n" +"लाइसेंस: {}" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "([पूर्वावलोकन]({link}))" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "पृष्ठ {article} को डिलीट किया" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "ओवर्राइट करके रेडिरेक्ट {article} को डिलीट किया" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "कोई रेडिरेक्ट नहीं बनाया गया" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "एक रेडिरेक्ट बनाया गया है" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "{redirect}{article} को {target} पर ले जाया गया है" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "{redirect}{article} को रेडिरेक्ट के साथ {title} पर ले जाया गया है" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "प्रॉटेक्शन सेटिंग्स को {redirect}{article} से {title} पर ले जाया गया" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "अनजान समय सीमा" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "इन पृष्ठों को सम्पादित करने से ब्लॉक्ड: " + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "इन नेमस्पेसों में पृष्ठों को सम्पादित करने से ब्लॉक्ड: " + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "आधा ब्लॉक विवरण" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "{blocked_user} को ब्लॉक किया {time}" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "{blocked_user} के ब्लॉक सेटिंग्स को बदला" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "{blocked_user} को अनब्लॉक किया" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल पर एक कमेंट छोड़ा" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "अपने प्रॉफाइल पर एक कमेंट छोड़ा" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल के एक कमेंट पर जवाब दिया" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "अपने प्रॉफाइल क के एक कमेंट पर जवाब दिया" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल के एक कमेंट को सम्पादित किया" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "अपने प्रॉफाइल के एक कमेंट को सम्पादित किया" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "{target} के प्रॉफाइल को सम्पादित किया" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "अपने प्रॉफाइल को सम्पादित किया" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "{field} फील्ड को क्लियर किया" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "{field} फील्ड को बदला गया: {desc} में" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल के एक कमेंट को पर्ज किया" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल के एक कमेंट को सम्पादित किया" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "{target} के ग्रुपों को बदला" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "{target} को एक नए यूज़रग्रुप में ऑटोप्रमोट किया गया" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "ग्रुपों को {old_groups} से {new_groups} में बदला गया{reason}" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "{target} को प्रॉटेक्ट किया गया" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "{article} के प्रॉटेक्शन लेवल को बदला" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "{article} से प्रॉटेक्शन हटा दिया गया" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "पृष्ठ {article} पर रिवीशन के दृश्यता को बदला " +msgstr[1] "पृष्ठ {article} पर {amount} रिवीशनों के दृश्यता को बदला " + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "{count} रिवीशन के साथ {article} को इम्पोर्ट किया गया" +msgstr[1] "{count} रिवीशनों के साथ {article} को इम्पोर्ट किया गया" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "{article} को रिस्टोर किया गया" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "लॉग घटनाओं के दृश्यता को बदला गया" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "इंटरविकी इम्पोर्ट किया गया" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "अब्यूज़ फिल्टर संख्यी {number} को बदला गया" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "अब्यूज़ फिल्टर संख्या {number} को बनाया गया" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "{article} के रिवीशन इतिहास को {dest} में मर्ज किया गया" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "अपने आप अकाउंट बनाया गया" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "अकाउंट बनाया गया" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "अकाउंट {article} बनाया गया" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "अकाउंट {article} बनाया गया और पासवर्ड ईमेल के ज़रिये भेजा गया" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "इंटरविकी टेबल पर एक एंट्री जोड़ा गया" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "उपसर्ग: {prefix}, वेबसाइट: {website} | {desc}" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "इंटरविकी टेबल पर एक एंट्री को सम्पादित किया गया" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "इंटरविकी टेबल में एक एंट्री को डिलीट किया गया" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "उपसर्ग: {prefix} | {desc}" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "पृष्ठ {article} के कंटेंट मॉडल को बदला गया" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "मॉडल को {old} से {new} में बदला गया: {reason}" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "{article} के स्प्राइट को सम्पादित किया गया" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "{article} के लिए स्प्राइट शीट बनाया गया" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "{article} के स्लाइस को सम्पादित किया गया" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "कार्गो टेबल \"{table}\" बनाया गया" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "कार्गो टेबल \"{table}\" को डिलीट किया गया" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "कार्गो टेबल \"{table}\" को फिर से बनाया गया" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "कोर्गो टेबल \"{table}\" को बदला गया" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "टैग \"{tag}\" बनाया गया" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "टैग \"{tag}\" को डिलीट किया गया" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "टैग \"{tag}\" को ऐक्टिवेट किया गया" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "टैग \"{tag}\" को डिऐक्टिवेट किया गया" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "विकी सेटिंग्स को बदला गया" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "\"{wiki}\" विकी को डिलीट किया गया" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "\"{wiki}\" विकी को लॉक किया गया" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "\"{namespace_name}\" नेमस्पेस को मॉडिफाइ किया गया" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "विकी" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "\"{namespace_name}\" नेमस्पेस को डिलीट किया गया" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "\"{usergroup_name}\" यूज़रग्रुप को मॉडिफाइ किया गया" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "\"{wiki}\" विकी को रिस्टोर किया गया" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "\"{wiki}\" विकी को अनलॉक किया गया" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "ऐक्शन ऐडमिनिस्ट्रेशन द्वारा छिपाया गया है" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "अनजान घटना `{event}`" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "इसे सहायता सर्वर पर रिपोर्ट करें" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "टैग" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "**जोड़ा**: " + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr " और {}\n" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "**हटाया**: " + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr " और {}" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "श्रेणियों को बदला गया" diff --git a/locale/hi/LC_MESSAGES/rcgcdw.mo b/locale/hi/LC_MESSAGES/rcgcdw.mo new file mode 100644 index 0000000..60fdad0 Binary files /dev/null and b/locale/hi/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/hi/LC_MESSAGES/rcgcdw.po b/locale/hi/LC_MESSAGES/rcgcdw.po new file mode 100644 index 0000000..3acc81b --- /dev/null +++ b/locale/hi/LC_MESSAGES/rcgcdw.po @@ -0,0 +1,1127 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Creeper \n" +"Language-Team: Hindi \n" +"Language: hi\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "कुछ नहीं" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "सूचना दे दी गई है" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "**सदस्य को ब्लॉक कर दिया गया है**" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "सम्पादना को टैग कर दिया है" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "काम को मना कर दिया" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "**IP रेंज ब्लॉक्ड है**" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "थ्रॉटल किए गए काम" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "ऑटोकन्फर्म्ड ग्रुप हटा दिया गया है" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "**प्रिविलेज वाले ग्रुपों से हटा दिया गया है**" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "सम्पादना" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "अपलोड" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "मूव" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "स्टैश अपलोड" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "डिलीशन" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "अकाउंट सृष्टि" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "ऑटो अकाउंट सृष्टि" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "अनरेजिसटर्ड सदस्य" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" +"[{author}]({author_url}) ने *[{target}]({target_url})* पर ऐक्शन \"{action}\" " +"लेते हुए *{abuse_filter}* को ट्रिगर किया - लिया गया ऐक्शन: {result}।" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "अनजान" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" +"[{author}]({author_url}) ने [{article}]({edit_link}){comment} " +"({bold}{sign}{edit_size}{bold}) को सम्पादित किया" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" +"[{author}]({author_url}) ने [{article}]({edit_link}){comment} " +"({bold}{sign}{edit_size}{bold}) बनाया" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{file}]({file_link}){comment} को अपलोड किया" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{file}]({file_link}){comment} के एक संसकरण को " +"रिवर्ट किया" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" +"[{author}]({author_url}) ने [{file}]({file_link}){comment} के एक नए संसकरण को" +" अपलोड किया" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{page}]({page_link}){comment} को डिलीट किया" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" +"[{author}]({author_url} ने [{page}]({page_link}){comment} को ओवर्राइट करके " +"रेडिरेक्ट को डिलीट किया" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "बिना रेडिरेक्ट छोड़े" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "रेडिरेक्ट छोड़कर" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" +"[{author}]({author_url}) ने {redirect}*{article}* को [{target}]({target_url})" +" पर {made_a_redirect} मूव किया{comment}" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" +"[{author}]({author_url}) ने {redirect}*{article}* को रेडिरेक्ट के साथ " +"[{target}]({target_url}) {made_a_redirect} पर मूव किया{comment}" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने प्रॉटेक्शन सेटिंगस को {redirect}*{article}* से " +"[{target}]({target_url}){comment} पर मूव किया" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "अनंत और इसके परे तक" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "{num} {translated_length} के लिए" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "{} के लिए" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr " इन पृष्ठों पर: " + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr " और इन नेमस्पेसों पर: " + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr " इन नेमस्पेसों पर: " + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" +"[{author}]({author_url}) ने [{user}]({user_url}) {time}{restriction_desc} को " +"ब्लॉक किया{comment}" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{blocked_user}]({user_url}) के ब्लॉक सेटिंगस को " +"बदला{comment}" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{blocked_user}]({user_url}) को अनब्लॉक " +"किया{comment}" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल पर एक [कमेंट]({comment}) " +"छोड़ा" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) ने अपने प्रॉफाइल पर एक [कमेंट]({comment}) छोड़ा" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल के एक [कमेंट]({comment}) पर " +"जवाब दिया" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" +"[{author}]({author_url}) ने अपने प्रॉफाइल के एक [कमेंट] ({comment}) पर जवाब " +"दिया" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल के एक [कमेंट]({comment}) पर " +"जवाब दिया" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) ने अपने प्रॉफाइल के एक [कमेंट]({comment}) को सम्पादि" +"त किया" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल के एक कमेंट को पर्ज किया" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "[{author}]({author_url}) ने अपने प्रॉफाइल के एक कमेंट को पर्ज किया" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल के एक कमेंट को डिलीट किया" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "[{author}]({author_url}) ने अपने प्रॉफाइल पर एक कमेंट को डिलीट किया" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" +"[{author}]({author_url}) ने {target} के प्रॉफाइल पर {field} को सम्पादित किया।" +" *({desc})*" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" +"[{author}]({author_url}) ने अपने प्रॉफाइल पर {field} को सम्पादित किया। " +"*({desc})*" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "कुछ नहीं" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" +"[{author}]({author_url}) ने [{target}]({target_url}) के लिए ग्रुप " +"{old_groups} से {new_groups} में बदला{comment}" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" +"{author} ने [{target}]({target_url}) को {old_groups} से {new_groups} में " +"ऑटोप्रमोट किया{comment}" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "सिस्टम" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) को इन सेटिंग्स के साथ " +"प्रॉटेक्ट किया: {settings}{comment}" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr " [कैस्केडिंग]" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) के प्रॉटेक्शन सेटिंग्" +"स को इसमें मॉडिफाइ किया: {settings}{comment}" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) से प्रॉटेक्शन हटा " +"दिया{comment}" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" +"[{author}]({author_url} ने [{article}]({article_url}) पर रिवीशन के दृश्यता को" +" बदल दिया{comment}" +msgstr[1] "" +"[{author}]({author_url} ने [{article}]({article_url}) पर {amount} रिवीशनों के" +" दृश्यता को बदल दिया{comment}" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" +"[{author}]({author_url}) ने [{article}]({article_url}) को {count} रिवीशन के " +"साथ ({article_url}) इम्पोर्ट किया{comment}" +msgstr[1] "" +"[{author}]({author_url}) ने [{article}]({article_url}) को {count} रिवीशनों के" +" साथ ({article_url}) इम्पोर्ट किया{comment}" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) को रिस्टोर " +"किया{comment}" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "[{author}]({author_url}) ने लॉग घटनाओं के दृश्यता को बदल दिया{comment}" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "[{author}]({author_url}) ने इंटरविकी इम्पोर्ट किया{comment}" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" +"[{author}]({author_url}) ने अब्यूज़ फिल्टर [संख्या {number}]({filter_url}) को" +" सम्पादित किया" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" +"[{author}]({author_url}) ने अब्यूज़ फिल्टर [संख्या {number}]({filter_url}) " +"बनाया" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) के रिवीशन इतिहास को " +"[{dest}]({dest_url}) में मर्ज किया{comment}" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "अकाउंट [{author}]({author_url}) अपने आप बना है" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "अकाउंट [{author}]({author_url}) को बनाया गया है" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" +"अकाउंट [{article}]({article_url}) [{author}]({author_url}) द्वारा बनाया गया " +"है{comment}" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" +"अकाउंट [{article}]({article_url}) [{author}]({author_url}) द्वारा बनाया गया " +"है और पासवर्ड ईमेल के ज़रिये भेजा गया है{comment}" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" +"[{author}]({author_url}) ने {prefix} उपसर्ग के साथ {website} की तरफ इशारा " +"करने वाले [इंटरविकी टेबल]({table_url}) में एक एंट्री जोड़ा" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" +"[{author}]({author_url}) ने {prefix} उपसर्ग के साथ {website} की तरफ इशारा " +"करने वाले [इंटरविकी टेबल]({table_url}) में एक एंट्री को सम्पादित किया" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" +"[{author}]({author_url}) ने [इंटरविकी टेबल]({table_url}) पर एक एंट्री को डिली" +"ट किया" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" +"[{author}]({author_url}) ने पृष्ठ [{article}]({article_url}) के कंटेंट मॉडल " +"को {old} से {new} में बदला{comment}" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" +"[{author}]({author_url}) [{article}]({article_url}) के स्प्राइट को सम्पादित " +"किया" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) के लिए स्प्राइट शीट " +"बनाया" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" +"[{author}]({author_url}) ने [{article}]({article_url}) के स्लाइस को सम्पादित " +"किया" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "[{author}]({author_url}) ने कीर्गो टेबल \"{table}\" बनाया" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "[{author}]({author_url}) ने कार्गो टेबल \"{table}\" को डिलीट किया" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "[{author}]({author_url}) ने कार्गो टेबल \"{table}\" को फिर से बनाया" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "[{author}]({author_url}) ने कार्गो टेबल \"{table}\" को बदल दिया" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) ने एक [टैग]({tag_url}) \"{tag}\" बनाया" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) ने एक [टैग]({tag_url}) \"{tag}\" को डिलीट किया" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" +"[{author}]({author_url}) ने एक [टैग]({tag_url}) \"{tag}\" को ऐक्टिवेट किया" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" +"[{author}]({author_url}) ने एक [टैग]({tag_url}) \"{tag}\" को डिऐक्टिवेट किया" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "[{author}]({author_url}) ने विकी सेटिंग्स को बदला ({reason})" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने विकी *{wiki_name}* को डिलीट किया ({comment})" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) ने विकी *{wiki_name}* ({comment}) के लॉक किया" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने *{wiki_name}* पर एक नेमस्पेस *{namespace_name}* " +"को मॉडिफाइ किया ({comment})" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने *{wiki_name}* पर नेमस्पेस *{namespace_name}* को " +"डिलीट किया ({comment})" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने यूज़र ग्रुप *{group_name}* को मॉडिफाइ किया " +"({comment})" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने एक विकी *{wiki_name}* को रिस्टोर किया ({comment})" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) ने एक विकी *{wiki_name}* को अनलॉक किया ({comment})" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "एक ऐक्शन ऐडमिनिस्ट्रेशन द्वारा छिपाया गया है।" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" +"[{author}]({author_url}) द्वारा अनजान घटना `{event}`, इसे [सहायता " +"सर्वर](<{support}>) पर रिपोर्ट करें।" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "{user} ने \"{abuse_filter}\" को ट्रिगर किया" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "ऐक्शन" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "लिया गया ऐक्शन" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "शीर्षक" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "कोई विवरण नहीं दिया गया" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "(न!) " + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "छो" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "बॉ" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "__सिर्फ वाइटस्पेस__" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "हटाया गया" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "जोड़ा" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "विकल्प" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "([पूर्वावलोकन]({link}) | [पूर्ववत करें]({undolink}))" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "{name} के एक नए संसकरण को अपलोड किया" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "{name} के एक संसकरण को पूर्ववत किया" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "{name} को अपलोड किया" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "**कोई लाइसेंस नहीं है!**" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" +"\n" +"लाइसेंस: {}" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "([पूर्वावलोकन]({link}))" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "पृष्ठ {article} को डिलीट किया" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "ओवर्राइट करके रेडिरेक्ट {article} को डिलीट किया" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "कोई रेडिरेक्ट नहीं बनाया गया" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "एक रेडिरेक्ट बनाया गया है" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "{redirect}{article} को {target} पर ले जाया गया है" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "{redirect}{article} को रेडिरेक्ट के साथ {title} पर ले जाया गया है" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "प्रॉटेक्शन सेटिंग्स को {redirect}{article} से {title} पर ले जाया गया" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "अनजान समय सीमा" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "इन पृष्ठों को सम्पादित करने से ब्लॉक्ड: " + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "इन नेमस्पेसों में पृष्ठों को सम्पादित करने से ब्लॉक्ड: " + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "आधा ब्लॉक विवरण" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "{blocked_user} को ब्लॉक किया {time}" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "{blocked_user} के ब्लॉक सेटिंग्स को बदला" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "{blocked_user} को अनब्लॉक किया" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल पर एक कमेंट छोड़ा" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "अपने प्रॉफाइल पर एक कमेंट छोड़ा" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल के एक कमेंट पर जवाब दिया" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "अपने प्रॉफाइल क के एक कमेंट पर जवाब दिया" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल के एक कमेंट को सम्पादित किया" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "अपने प्रॉफाइल के एक कमेंट को सम्पादित किया" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "{target} के प्रॉफाइल को सम्पादित किया" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "अपने प्रॉफाइल को सम्पादित किया" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "{field} फील्ड को क्लियर किया" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "{field} फील्ड को बदला गया: {desc} में" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल के एक कमेंट को पर्ज किया" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "{target} के प्रॉफाइल के एक कमेंट को सम्पादित किया" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "{target} के ग्रुपों को बदला" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "{target} को एक नए यूज़रग्रुप में ऑटोप्रमोट किया गया" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "ग्रुपों को {old_groups} से {new_groups} में बदला गया{reason}" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "{target} को प्रॉटेक्ट किया गया" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "{article} के प्रॉटेक्शन लेवल को बदला" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "{article} से प्रॉटेक्शन हटा दिया गया" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "पृष्ठ {article} पर रिवीशन के दृश्यता को बदला " +msgstr[1] "पृष्ठ {article} पर {amount} रिवीशनों के दृश्यता को बदला " + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "{count} रिवीशन के साथ {article} को इम्पोर्ट किया गया" +msgstr[1] "{count} रिवीशनों के साथ {article} को इम्पोर्ट किया गया" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "{article} को रिस्टोर किया गया" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "लॉग घटनाओं के दृश्यता को बदला गया" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "इंटरविकी इम्पोर्ट किया गया" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "अब्यूज़ फिल्टर संख्यी {number} को बदला गया" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "अब्यूज़ फिल्टर संख्या {number} को बनाया गया" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "{article} के रिवीशन इतिहास को {dest} में मर्ज किया गया" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "अपने आप अकाउंट बनाया गया" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "अकाउंट बनाया गया" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "अकाउंट {article} बनाया गया" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "अकाउंट {article} बनाया गया और पासवर्ड ईमेल के ज़रिये भेजा गया" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "इंटरविकी टेबल पर एक एंट्री जोड़ा गया" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "उपसर्ग: {prefix}, वेबसाइट: {website} | {desc}" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "इंटरविकी टेबल पर एक एंट्री को सम्पादित किया गया" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "इंटरविकी टेबल में एक एंट्री को डिलीट किया गया" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "उपसर्ग: {prefix} | {desc}" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "पृष्ठ {article} के कंटेंट मॉडल को बदला गया" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "मॉडल को {old} से {new} में बदला गया: {reason}" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "{article} के स्प्राइट को सम्पादित किया गया" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "{article} के लिए स्प्राइट शीट बनाया गया" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "{article} के स्लाइस को सम्पादित किया गया" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "कार्गो टेबल \"{table}\" बनाया गया" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "कार्गो टेबल \"{table}\" को डिलीट किया गया" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "कार्गो टेबल \"{table}\" को फिर से बनाया गया" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "कोर्गो टेबल \"{table}\" को बदला गया" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "टैग \"{tag}\" बनाया गया" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "टैग \"{tag}\" को डिलीट किया गया" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "टैग \"{tag}\" को ऐक्टिवेट किया गया" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "टैग \"{tag}\" को डिऐक्टिवेट किया गया" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "विकी सेटिंग्स को बदला गया" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "\"{wiki}\" विकी को डिलीट किया गया" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "\"{wiki}\" विकी को लॉक किया गया" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "\"{namespace_name}\" नेमस्पेस को मॉडिफाइ किया गया" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "विकी" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "\"{namespace_name}\" नेमस्पेस को डिलीट किया गया" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "\"{usergroup_name}\" यूज़रग्रुप को मॉडिफाइ किया गया" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "\"{wiki}\" विकी को रिस्टोर किया गया" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "\"{wiki}\" विकी को अनलॉक किया गया" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "ऐक्शन ऐडमिनिस्ट्रेशन द्वारा छिपाया गया है" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "अनजान घटना `{event}`" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "इसे सहायता सर्वर पर रिपोर्ट करें" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "टैग" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "**जोड़ा**: " + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr " और {}\n" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "**हटाया**: " + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr " और {}" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "श्रेणियों को बदला गया" diff --git a/locale/ko/LC_MESSAGES/discussion_formatters.mo b/locale/ko/LC_MESSAGES/discussion_formatters.mo new file mode 100644 index 0000000..d77171b Binary files /dev/null and b/locale/ko/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/ko/LC_MESSAGES/discussion_formatters.po b/locale/ko/LC_MESSAGES/discussion_formatters.po new file mode 100644 index 0000000..259d621 --- /dev/null +++ b/locale/ko/LC_MESSAGES/discussion_formatters.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:36 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:38 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:43 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " +"to [{title}](<{url}f/p/{threadId}>) in {forumName}" +msgstr "" + +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 +msgid "unknown" +msgstr "" + +#: src/discussion_formatters.py:49 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/" +"Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:51 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall]" +"(<{url}wiki/Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:57 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:62 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/discussion_formatters.py:98 +#, python-brace-format +msgid "Created \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:102 +#, python-brace-format +msgid "Created a poll \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:109 +msgid "Option {}" +msgstr "" + +#: src/discussion_formatters.py:110 +#, python-brace-format +msgid "__[View image]({image_url})__" +msgstr "" + +#: src/discussion_formatters.py:114 +#, python-brace-format +msgid "Created a quiz \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 +msgid "Tags" +msgstr "" + +#: src/discussion_formatters.py:129 +msgid "{} tags" +msgstr "" + +#: src/discussion_formatters.py:134 +#, python-brace-format +msgid "Replied to \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:143 +#, python-brace-format +msgid "Created \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:147 +#, python-brace-format +msgid "Replied to \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:154 +#, python-brace-format +msgid "Commented on {article}" +msgstr "" + +#: src/discussion_formatters.py:158 +#, python-brace-format +msgid "Replied to a comment on {article}" +msgstr "" + +#: src/discussion_formatters.py:162 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 +msgid "Report this on the support server" +msgstr "" diff --git a/locale/ko/LC_MESSAGES/misc.po b/locale/ko/LC_MESSAGES/misc.po new file mode 100644 index 0000000..81304ee --- /dev/null +++ b/locale/ko/LC_MESSAGES/misc.po @@ -0,0 +1,88 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Yongmin Hong \n" +"Language-Team: Korean " +"\n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/misc.py:45 +msgid "Location" +msgstr "위치" + +#: src/misc.py:45 +msgid "About me" +msgstr "나에 대해서" + +#: src/misc.py:45 +msgid "Google link" +msgstr "구글 링크" + +#: src/misc.py:45 +msgid "Facebook link" +msgstr "페이스북 링크" + +#: src/misc.py:45 +msgid "Twitter link" +msgstr "트위터 링크" + +#: src/misc.py:45 +msgid "Reddit link" +msgstr "레딧 링크" + +#: src/misc.py:45 +msgid "Twitch link" +msgstr "트위치 링크" + +#: src/misc.py:45 +msgid "PSN link" +msgstr "PSN 링크" + +#: src/misc.py:45 +msgid "VK link" +msgstr "VK 링크" + +#: src/misc.py:45 +msgid "XBL link" +msgstr "XBL 링크" + +#: src/misc.py:45 +msgid "Steam link" +msgstr "스팀 링크" + +#: src/misc.py:45 +msgid "Discord handle" +msgstr "디스코드 사용자 이름" + +#: src/misc.py:45 +msgid "Battle.net handle" +msgstr "배틀넷 사용자 이름" + +#: src/misc.py:114 +msgid "" +"\n" +"__And more__" +msgstr "" +"\n" +"__그 외 더__" + +#: src/misc.py:271 +msgid "Unknown" +msgstr "알 수 없음" + +#: src/misc.py:273 +msgid "unknown" +msgstr "알 수 없음" diff --git a/locale/ko/LC_MESSAGES/rc.mo b/locale/ko/LC_MESSAGES/rc.mo new file mode 100644 index 0000000..67d585b Binary files /dev/null and b/locale/ko/LC_MESSAGES/rc.mo differ diff --git a/locale/ko/LC_MESSAGES/rc.po b/locale/ko/LC_MESSAGES/rc.po new file mode 100644 index 0000000..3dae64a --- /dev/null +++ b/locale/ko/LC_MESSAGES/rc.po @@ -0,0 +1,41 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Yongmin Hong \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/rc.py:319 +#, python-brace-format +msgid "{wiki} seems to be down or unreachable." +msgstr "{wiki} 이(가) 접속 다운되었거나 연결할 수 없습니다." + +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "연결 상태" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "{wiki} 연결이 현재 안정적인 것 같습니다." + +#: src/rc.py:401 +msgid "~~hidden~~" +msgstr "~~숨겨짐~~" + +#: src/rc.py:405 +msgid "hidden" +msgstr "숨겨짐" diff --git a/locale/ko/LC_MESSAGES/rc_formatters.mo b/locale/ko/LC_MESSAGES/rc_formatters.mo new file mode 100644 index 0000000..8f89a7a Binary files /dev/null and b/locale/ko/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/ko/LC_MESSAGES/rc_formatters.po b/locale/ko/LC_MESSAGES/rc_formatters.po new file mode 100644 index 0000000..763217a --- /dev/null +++ b/locale/ko/LC_MESSAGES/rc_formatters.po @@ -0,0 +1,1022 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Yongmin Hong \n" +"Language-Team: Korean \n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "없음" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/ko/LC_MESSAGES/rcgcdw.mo b/locale/ko/LC_MESSAGES/rcgcdw.mo new file mode 100644 index 0000000..dfe4ca0 Binary files /dev/null and b/locale/ko/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/ko/LC_MESSAGES/rcgcdw.po b/locale/ko/LC_MESSAGES/rcgcdw.po new file mode 100644 index 0000000..56cc4e6 --- /dev/null +++ b/locale/ko/LC_MESSAGES/rcgcdw.po @@ -0,0 +1,1024 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" +"Last-Translator: Yongmin Hong \n" +"Language-Team: Korean " +"\n" +"Language: ko\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "없음" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "**차단된 사용자**" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "편집 태그" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "행동을 불허했습니다" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "**IP 대역 차단됨**" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "속도 제한이 적용된 행동" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "자동 인증 상태가 해제됨" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "**특수 사용자 권한이 회수됨**" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "편집" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "업로드" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "이동" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "스태시 업로드" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "삭제" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "계정 생성" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "자동 계정 생성" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "비등록 사용자" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "알 수 없음" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "넘겨주기를 남기지 않고" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "넘겨주기를 유지하고" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "영원 그 이후의 순간까지" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "{} 까지" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr " 다음 문서에서: " + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr " 그리고 다음 이름공간에서: " + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr " 다음 이름공간에서: " + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "없음" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "시스템" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr " [연쇄]" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "취한 조치" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "제목" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "설명 제공되지 않음" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "(새글!) " + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "봇" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "__공백만 있음__" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "삭제됨" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "추가됨" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "옵션" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "**라이선스가 없습니다!**" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" +"\n" +"라이선스: {}" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "위키" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "이 행동이 관리자에 의해 숨겨졌습니다" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "태그" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/lol/LC_MESSAGES/discussion_formatters.mo b/locale/lol/LC_MESSAGES/discussion_formatters.mo new file mode 100644 index 0000000..5cfeee0 Binary files /dev/null and b/locale/lol/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/lol/LC_MESSAGES/discussion_formatters.po b/locale/lol/LC_MESSAGES/discussion_formatters.po new file mode 100644 index 0000000..1bb067c --- /dev/null +++ b/locale/lol/LC_MESSAGES/discussion_formatters.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: lol\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:36 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:38 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:43 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " +"to [{title}](<{url}f/p/{threadId}>) in {forumName}" +msgstr "" + +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 +msgid "unknown" +msgstr "" + +#: src/discussion_formatters.py:49 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/" +"Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:51 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall]" +"(<{url}wiki/Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:57 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:62 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/discussion_formatters.py:98 +#, python-brace-format +msgid "Created \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:102 +#, python-brace-format +msgid "Created a poll \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:109 +msgid "Option {}" +msgstr "" + +#: src/discussion_formatters.py:110 +#, python-brace-format +msgid "__[View image]({image_url})__" +msgstr "" + +#: src/discussion_formatters.py:114 +#, python-brace-format +msgid "Created a quiz \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 +msgid "Tags" +msgstr "" + +#: src/discussion_formatters.py:129 +msgid "{} tags" +msgstr "" + +#: src/discussion_formatters.py:134 +#, python-brace-format +msgid "Replied to \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:143 +#, python-brace-format +msgid "Created \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:147 +#, python-brace-format +msgid "Replied to \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:154 +#, python-brace-format +msgid "Commented on {article}" +msgstr "" + +#: src/discussion_formatters.py:158 +#, python-brace-format +msgid "Replied to a comment on {article}" +msgstr "" + +#: src/discussion_formatters.py:162 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 +msgid "Report this on the support server" +msgstr "" diff --git a/locale/lol/LC_MESSAGES/misc.po b/locale/lol/LC_MESSAGES/misc.po new file mode 100644 index 0000000..00f61f3 --- /dev/null +++ b/locale/lol/LC_MESSAGES/misc.po @@ -0,0 +1,83 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: lol\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/misc.py:45 +msgid "Location" +msgstr "" + +#: src/misc.py:45 +msgid "About me" +msgstr "" + +#: src/misc.py:45 +msgid "Google link" +msgstr "" + +#: src/misc.py:45 +msgid "Facebook link" +msgstr "" + +#: src/misc.py:45 +msgid "Twitter link" +msgstr "" + +#: src/misc.py:45 +msgid "Reddit link" +msgstr "" + +#: src/misc.py:45 +msgid "Twitch link" +msgstr "" + +#: src/misc.py:45 +msgid "PSN link" +msgstr "" + +#: src/misc.py:45 +msgid "VK link" +msgstr "" + +#: src/misc.py:45 +msgid "XBL link" +msgstr "" + +#: src/misc.py:45 +msgid "Steam link" +msgstr "" + +#: src/misc.py:45 +msgid "Discord handle" +msgstr "" + +#: src/misc.py:45 +msgid "Battle.net handle" +msgstr "" + +#: src/misc.py:114 +msgid "" +"\n" +"__And more__" +msgstr "" + +#: src/misc.py:271 +msgid "Unknown" +msgstr "" + +#: src/misc.py:273 +msgid "unknown" +msgstr "" diff --git a/locale/lol/LC_MESSAGES/rc.mo b/locale/lol/LC_MESSAGES/rc.mo new file mode 100644 index 0000000..5cfeee0 Binary files /dev/null and b/locale/lol/LC_MESSAGES/rc.mo differ diff --git a/locale/lol/LC_MESSAGES/rc.po b/locale/lol/LC_MESSAGES/rc.po new file mode 100644 index 0000000..fd85ba9 --- /dev/null +++ b/locale/lol/LC_MESSAGES/rc.po @@ -0,0 +1,39 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: lol\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/rc.py:319 +#, python-brace-format +msgid "{wiki} seems to be down or unreachable." +msgstr "" + +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "" + +#: src/rc.py:401 +msgid "~~hidden~~" +msgstr "" + +#: src/rc.py:405 +msgid "hidden" +msgstr "" diff --git a/locale/lol/LC_MESSAGES/rc_formatters.mo b/locale/lol/LC_MESSAGES/rc_formatters.mo new file mode 100644 index 0000000..3cc19c3 Binary files /dev/null and b/locale/lol/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/lol/LC_MESSAGES/rc_formatters.po b/locale/lol/LC_MESSAGES/rc_formatters.po new file mode 100644 index 0000000..b701e1f --- /dev/null +++ b/locale/lol/LC_MESSAGES/rc_formatters.po @@ -0,0 +1,1024 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: lol\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, 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] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" +msgstr[1] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/lol/LC_MESSAGES/rcgcdw.mo b/locale/lol/LC_MESSAGES/rcgcdw.mo index 03aec45..ee097dd 100644 Binary files a/locale/lol/LC_MESSAGES/rcgcdw.mo and b/locale/lol/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/lol/LC_MESSAGES/rcgcdw.po b/locale/lol/LC_MESSAGES/rcgcdw.po index 9cb8cfb..2cc2238 100644 --- a/locale/lol/LC_MESSAGES/rcgcdw.po +++ b/locale/lol/LC_MESSAGES/rcgcdw.po @@ -7,11 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 22:56+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-08-16 19:13+0000\n" -"Last-Translator: Frisk The Evil Goat Overlord \n" -"Language-Team: Lolcat " -"\n" +"Last-Translator: Frisk The Evil Goat Overlord <>\n" +"Language-Team: Lolcat \n" "Language: lol\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,183 +19,183 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.1.1\n" -#: src/rcgcdw.py:113 src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 -#: src/rcgcdw.py:121 src/rcgcdw.py:123 src/rcgcdw.py:125 +#: src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 src/rcgcdw.py:121 +#: src/rcgcdw.py:123 src/rcgcdw.py:125 src/rcgcdw.py:127 #, python-brace-format msgid "{value} (avg. {avg})" msgstr "{value} (mor or less. {avg})" -#: src/rcgcdw.py:145 +#: src/rcgcdw.py:147 msgid "Daily overview" msgstr "Morn' newz" -#: src/rcgcdw.py:153 +#: src/rcgcdw.py:155 msgid "No activity" msgstr "No food" -#: src/rcgcdw.py:177 +#: src/rcgcdw.py:179 msgid " ({} action)" msgid_plural " ({} actions)" msgstr[0] " ({} action)" msgstr[1] " ({} actionz)" -#: src/rcgcdw.py:179 +#: src/rcgcdw.py:181 msgid " ({} edit)" msgid_plural " ({} edits)" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:184 +#: src/rcgcdw.py:186 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] " UTC ({} action)" msgstr[1] " UTC ({} actionz)" -#: src/rcgcdw.py:186 src/rcgcdw.py:187 src/rcgcdw.py:191 +#: src/rcgcdw.py:188 src/rcgcdw.py:189 src/rcgcdw.py:193 msgid "But nobody came" msgstr "No one brot food 😾" -#: src/rcgcdw.py:194 +#: src/rcgcdw.py:196 msgid "Most active user" msgid_plural "Most active users" msgstr[0] "Most skilld cat" msgstr[1] "Most skilld cats" -#: src/rcgcdw.py:195 +#: src/rcgcdw.py:197 msgid "Most edited article" msgid_plural "Most edited articles" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Edits made" msgstr "edtz did" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "New files" msgstr "new picturz" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Admin actions" msgstr "" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "Bytes changed" msgstr "" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "New articles" msgstr "" -#: src/rcgcdw.py:198 +#: src/rcgcdw.py:200 msgid "Unique contributors" msgstr "" -#: src/rcgcdw.py:199 +#: src/rcgcdw.py:201 msgid "Most active hour" msgid_plural "Most active hours" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:200 +#: src/rcgcdw.py:202 msgid "Day score" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "director" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bot" msgstr "robut" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "editor" msgstr "editur" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "directors" msgstr "directurs" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "sysop" msgstr "admen" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bureaucrat" msgstr "burocrat" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "reviewer" msgstr "reviver" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autoreview" msgstr "autureviver" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autopatrol" msgstr "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "wiki_guardian" msgstr "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "second" msgid_plural "seconds" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "minute" msgid_plural "minutes" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "hour" msgid_plural "hours" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "day" msgid_plural "days" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "week" msgid_plural "weeks" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "month" msgid_plural "months" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "year" msgid_plural "years" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "millennium" msgid_plural "millennia" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "decade" msgid_plural "decades" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "century" msgid_plural "centuries" msgstr[0] "" diff --git a/locale/pl/LC_MESSAGES/discussion_formatters.mo b/locale/pl/LC_MESSAGES/discussion_formatters.mo index adebf58..13e6d96 100644 Binary files a/locale/pl/LC_MESSAGES/discussion_formatters.mo and b/locale/pl/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/pl/LC_MESSAGES/discussion_formatters.po b/locale/pl/LC_MESSAGES/discussion_formatters.po index d843a1a..e708329 100644 --- a/locale/pl/LC_MESSAGES/discussion_formatters.po +++ b/locale/pl/LC_MESSAGES/discussion_formatters.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" -"PO-Revision-Date: 2020-08-13 19:07+0000\n" -"Last-Translator: Rail \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-20 09:22+0000\n" +"Last-Translator: Frisk The Evil Goat Overlord \n" "Language-Team: Polish \n" "Language: pl\n" @@ -18,61 +18,65 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.1.1\n" +"X-Generator: Weblate 4.2.1\n" -#: src/discussion_formatters.py:32 +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "Niezarejestrowany użytkownik" + +#: src/discussion_formatters.py:34 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -"[{author}]({author_url}) utworzył(a) [{title}](<{url}f/p/{threadId}>) w " +"[{author}]({author_url}) stworzył(a) [{title}](<{url}f/p/{threadId}>) w " "{forumName}" -#: src/discussion_formatters.py:34 +#: src/discussion_formatters.py:36 #, python-brace-format msgid "" "[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -"[{author}]({author_url}) utworzył(a) ankietę [{title}](<{url}f/p/{threadId}" +"[{author}]({author_url}) stworzył(a) ankietę [{title}](<{url}f/p/{threadId}" ">) w {forumName}" -#: src/discussion_formatters.py:36 +#: src/discussion_formatters.py:38 #, python-brace-format msgid "" "[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -"[{author}]({author_url}) utworzył(a) quiz [{title}](<{url}f/p/{threadId}>) w " +"[{author}]({author_url}) stworzył(a) quiz [{title}](<{url}f/p/{threadId}>) w " "{forumName}" -#: src/discussion_formatters.py:41 +#: src/discussion_formatters.py:43 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " "to [{title}](<{url}f/p/{threadId}>) in {forumName}" msgstr "" -"[{author}]({author_url}) utworzył(a) [odpowiedź](<{url}f/p/{threadId}/r/" -"{postId}>) pod tematem [{title}](<{url}f/p/{threadId}>) w {forumName}" +"[{author}]({author_url}) dodał(a) [odpowiedź](<{url}f/p/{threadId}/r/{postId}" +">) pod tematem [{title}](<{url}f/p/{threadId}>) w {forumName}" -#: src/discussion_formatters.py:43 src/discussion_formatters.py:52 -#: src/discussion_formatters.py:129 src/discussion_formatters.py:142 +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 msgid "unknown" msgstr "nieznany" -#: src/discussion_formatters.py:47 +#: src/discussion_formatters.py:49 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" "{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/" "Message_Wall:{user_wall}>)" msgstr "" -"[{author}]({author_url}) utworzył(a) [{title}](<{url}wiki/" -"Message_Wall:{user_wall}?threadId={threadId}>) na [tablicy wiadomości " -"{user}](<{url}wiki/Message_Wall:{user_wall}>)" +"[{author}]({author_url}) zostawił(a) [{title}](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}>) na [tablicy wiadomości {user}](<{url}wiki/" +"Message_Wall:{user_wall}>)" -#: src/discussion_formatters.py:49 +#: src/discussion_formatters.py:51 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" @@ -80,104 +84,102 @@ msgid "" "Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall]" "(<{url}wiki/Message_Wall:{user_wall}>)" msgstr "" -"[{author}]({author_url}) utworzył(-a) [odpowiedź](<{url}wiki/" -"Message_Wall:{user_wall}?threadId={threadId}#{replyId}>) do [{title}](<{url}" -"wiki/Message_Wall:{user_wall}?threadId={threadId}>) na [tablicy wiadomości " -"{user}](<{url}wiki/Message_Wall:{user_wall}>)" +"[{author}]({author_url}) dodał(a) [odpowiedź](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}#{replyId}>) do [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) na [tablicy wiadomości {user}]" +"(<{url}wiki/Message_Wall:{user_wall}>)" -#: src/discussion_formatters.py:54 +#: src/discussion_formatters.py:57 #, python-brace-format msgid "" -"[{author}]({author_url}) created a [comment](<{url}wiki/{article}?" -"commentId={commentId}>) on [{article}](<{url}wiki/{article}>)" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" msgstr "" -"[{author}]({author_url}) utworzył(-a) [komentarz](<{url}wiki/{article}?" -"commentId={commentId}>) w [{article}](<{url}wiki/{article}>)" - -#: src/discussion_formatters.py:56 -#, python-brace-format -msgid "" -"[{author}]({author_url}) created a [reply](<{url}wiki/{article}?" -"threadId={threadId}) to a [comment](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) on [{article}](<{url}wiki/{article}" -">)" -msgstr "" -"[{author}]({author_url}) utworzył(-a) [odpowiedź](<{url}wiki/{article}?" -"threadId={threadId}) na [komentarz](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) w artykule [{article}](<{url}wiki/" -"{article}>)" +"[{author}]({author_url}) dodał(a) [komentarz](<{url}?commentId={commentId}>) " +"w [{article}](<{url}>)" #: src/discussion_formatters.py:62 #, python-brace-format msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" +"[{author}]({author_url}) dodał(a) " +"[odpowiedź](<{url}?commentId={commentId}&replyId={replyId}) na " +"[komentarz](<{url}?commentId={commentId}>) w artykule [{article}](<{url}>)" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" "Nieznane wydarzenie `{event}` wykonane przez [{author}]({author_url}), zgłoś " "je na [serwerze wsparcia](<{support}>)." -#: src/discussion_formatters.py:90 +#: src/discussion_formatters.py:98 #, python-brace-format msgid "Created \"{title}\"" -msgstr "Utworzył(a) „{title}”" +msgstr "Stworzył(a) „{title}”" -#: src/discussion_formatters.py:94 +#: src/discussion_formatters.py:102 #, python-brace-format msgid "Created a poll \"{title}\"" -msgstr "Utworzył(a) ankietę zatytułowaną „{title}”" +msgstr "Stworzył(a) ankietę zatytułowaną „{title}”" -#: src/discussion_formatters.py:101 +#: src/discussion_formatters.py:109 msgid "Option {}" msgstr "Opcja {}" -#: src/discussion_formatters.py:102 +#: src/discussion_formatters.py:110 #, python-brace-format msgid "__[View image]({image_url})__" msgstr "__[Zobacz zdjęcie]({image_url})__" -#: src/discussion_formatters.py:106 +#: src/discussion_formatters.py:114 #, python-brace-format msgid "Created a quiz \"{title}\"" -msgstr "Utworzył(a) quiz „{title}”" +msgstr "Stworzył(a) quiz „{title}”" -#: src/discussion_formatters.py:121 src/discussion_formatters.py:123 +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 msgid "Tags" -msgstr "Tagi" +msgstr "Fora" -#: src/discussion_formatters.py:121 +#: src/discussion_formatters.py:129 msgid "{} tags" msgstr "{} tagów" -#: src/discussion_formatters.py:126 +#: src/discussion_formatters.py:134 #, python-brace-format msgid "Replied to \"{title}\"" msgstr "Odpowiedział(a) w „{title}”" -#: src/discussion_formatters.py:135 +#: src/discussion_formatters.py:143 #, python-brace-format msgid "Created \"{title}\" on {user}'s Message Wall" -msgstr "Utworzył(a) „{title}” na tablicy wiadomości {user}" +msgstr "Stworzył(a) „{title}” na tablicy wiadomości {user}" -#: src/discussion_formatters.py:139 +#: src/discussion_formatters.py:147 #, python-brace-format msgid "Replied to \"{title}\" on {user}'s Message Wall" msgstr "Odpowiedział(a) na „{title}” z tablicy wiadomości {user}" -#: src/discussion_formatters.py:146 +#: src/discussion_formatters.py:154 #, python-brace-format msgid "Commented on {article}" msgstr "Skomentował(a) „{article}”" -#: src/discussion_formatters.py:150 +#: src/discussion_formatters.py:158 #, python-brace-format msgid "Replied to a comment on {article}" msgstr "Odpowiedział(a) na komentarz w „{article}”" -#: src/discussion_formatters.py:154 +#: src/discussion_formatters.py:162 #, python-brace-format msgid "Unknown event `{event}`" msgstr "Nieznane wydarzenie `{event}`" -#: src/discussion_formatters.py:160 src/discussion_formatters.py:162 +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 msgid "Report this on the support server" msgstr "Zgłoś to na serwerze wsparcia" diff --git a/locale/pl/LC_MESSAGES/misc.mo b/locale/pl/LC_MESSAGES/misc.mo index 00572d0..4155b44 100644 Binary files a/locale/pl/LC_MESSAGES/misc.mo and b/locale/pl/LC_MESSAGES/misc.mo differ diff --git a/locale/pl/LC_MESSAGES/misc.po b/locale/pl/LC_MESSAGES/misc.po index a807881..ded4be0 100644 --- a/locale/pl/LC_MESSAGES/misc.po +++ b/locale/pl/LC_MESSAGES/misc.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 14:00+0200\n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" "PO-Revision-Date: 2020-03-17 20:57+0100\n" -"Last-Translator: Frisk \n" +"Last-Translator: Frisk <>\n" "Language-Team: \n" "Language: pl\n" "MIME-Version: 1.0\n" @@ -19,59 +19,59 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "Lokacja" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "O mnie" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "link Google" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "link Facebook" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "link Twitter" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "link Reddit" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "link Twitch" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "link PSN" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "link VK" -#: src/misc.py:42 +#: src/misc.py:45 msgid "XBL link" msgstr "link XBL" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "link Steam" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "konto Discord" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "konto Battle.net" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" @@ -79,10 +79,10 @@ msgstr "" "\n" "__Oraz więcej__" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "Nieznana" -#: src/misc.py:425 +#: src/misc.py:273 msgid "unknown" msgstr "nieznana sekcja" diff --git a/locale/pl/LC_MESSAGES/rc.mo b/locale/pl/LC_MESSAGES/rc.mo index 039bd95..09006d2 100644 Binary files a/locale/pl/LC_MESSAGES/rc.mo and b/locale/pl/LC_MESSAGES/rc.mo differ diff --git a/locale/pl/LC_MESSAGES/rc.po b/locale/pl/LC_MESSAGES/rc.po index 0bd679b..2b6a1ff 100644 --- a/locale/pl/LC_MESSAGES/rc.po +++ b/locale/pl/LC_MESSAGES/rc.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:22+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-08-13 19:07+0000\n" -"Last-Translator: Rail \n" +"Last-Translator: Rail <>\n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" @@ -19,24 +19,24 @@ msgstr "" "X-Generator: Weblate 4.1.1\n" "Generated-By: pygettext.py 1.5\n" -#: src/rc.py:150 -#, python-brace-format -msgid "Connection to {wiki} seems to be stable now." -msgstr "Połączenie z {wiki} wygląda na stabilne." - -#: src/rc.py:151 src/rc.py:266 -msgid "Connection status" -msgstr "Status połączenia" - -#: src/rc.py:265 +#: src/rc.py:319 #, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki} nie działa lub jest nieosiągalna." -#: src/rc.py:334 +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "Status połączenia" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "Połączenie z {wiki} wygląda na stabilne." + +#: src/rc.py:401 msgid "~~hidden~~" msgstr "~~ukryte~~" -#: src/rc.py:340 +#: src/rc.py:405 msgid "hidden" msgstr "ukryte" diff --git a/locale/pl/LC_MESSAGES/rc_formatters.mo b/locale/pl/LC_MESSAGES/rc_formatters.mo index 1a56911..5451a3d 100644 Binary files a/locale/pl/LC_MESSAGES/rc_formatters.mo and b/locale/pl/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/pl/LC_MESSAGES/rc_formatters.po b/locale/pl/LC_MESSAGES/rc_formatters.po index b6c2175..92096ab 100644 --- a/locale/pl/LC_MESSAGES/rc_formatters.po +++ b/locale/pl/LC_MESSAGES/rc_formatters.po @@ -6,9 +6,9 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-10 16:15+0200\n" -"PO-Revision-Date: 2020-08-13 19:07+0000\n" -"Last-Translator: Rail \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-20 09:22+0000\n" +"Last-Translator: Frisk The Evil Goat Overlord \n" "Language-Team: Polish \n" "Language: pl\n" @@ -17,249 +17,389 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Weblate 4.1.1\n" +"X-Generator: Weblate 4.2.1\n" "Generated-By: pygettext.py 1.5\n" -#: src/rc_formatters.py:42 +#: src/rc_formatters.py:28 +msgid "None" +msgstr "Brak" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "Wydano ostrzeżenie" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "**Zablokowano użytkownika**" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "Otagowano edycję" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "Zabroniono akcji" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "**Zablokowano zakres adresów IP**" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "Spowolniono akcje użytkownika" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "Usunięto autopotwierdzoną grupę" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "**Usunięto z uprzywilejowanych grup**" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "Edycja" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "Przesłanie pliku" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "Przeniesienie strony" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "Masowe przesłanie plików" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "Usunięcie" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "Utworzenie konta" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "Automatyczne utworzenie konta" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "Niezarejestrowany użytkownik" + +#: src/rc_formatters.py:83 #, python-brace-format msgid "" -"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." msgstr "" -"[{author}]({author_url}) edytował(-a) [{article}]({edit_link}){comment} " -"({sign}{edit_size})" +"[{author}]({author_url}) wywołał(a) *{abuse_filter}*, wykonując akcję \"" +"{action}\" w *[{target}]({target_url})* - podjęte działanie: {result}" -#: src/rc_formatters.py:44 +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "Nieznana" + +#: src/rc_formatters.py:117 #, python-brace-format msgid "" -"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "" -"[{author}]({author_url}) stworzył(-a) [{article}]({edit_link}){comment} " -"({sign}{edit_size})" +"[{author}]({author_url}) edytował(a) [{article}]({edit_link}){comment} " +"({bold}{sign}{edit_size}{bold})" -#: src/rc_formatters.py:47 +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" +"[{author}]({author_url}) stworzył(a) [{article}]({edit_link}){comment} " +"({bold}{sign}{edit_size}{bold})" + +#: src/rc_formatters.py:122 #, python-brace-format msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" -msgstr "[{author}]({author_url}) przesłał(-a) [{file}]({file_link}){comment}" +msgstr "[{author}]({author_url}) przesłał(a) [{file}]({file_link}){comment}" -#: src/rc_formatters.py:54 +#: src/rc_formatters.py:129 #, python-brace-format msgid "" "[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" msgstr "" -"[{author}]({author_url}) wycofał(-a) wersję [{file}]({file_link}){comment}" +"[{author}]({author_url}) wycofał(a) wersję [{file}]({file_link}){comment}" -#: src/rc_formatters.py:58 +#: src/rc_formatters.py:133 #, python-brace-format msgid "" "[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" "{comment}" msgstr "" -"[{author}]({author_url}) przesłał(-a) nową wersję [{file}]({file_link})" +"[{author}]({author_url}) przesłał(a) nową wersję [{file}]({file_link})" "{comment}" -#: src/rc_formatters.py:61 +#: src/rc_formatters.py:136 #, python-brace-format msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" msgstr "[{author}]({author_url}) skasował(a) [{page}]({page_link}){comment}" -#: src/rc_formatters.py:65 +#: src/rc_formatters.py:142 #, python-brace-format msgid "" "[{author}]({author_url}) deleted redirect by overwriting [{page}]" "({page_link}){comment}" msgstr "" -"[{author}]({author_url}) usunął/usunęła przekierowanie przez nadpisanie " -"[{page}]({page_link}){comment}" +"[{author}]({author_url}) usunął przekierowanie przez nadpisanie [{page}]" +"({page_link}){comment}" -#: src/rc_formatters.py:69 src/rc_formatters.py:74 +#: src/rc_formatters.py:148 src/rc_formatters.py:153 msgid "without making a redirect" msgstr "bez utworzenia przekierowania" -#: src/rc_formatters.py:69 src/rc_formatters.py:75 +#: src/rc_formatters.py:148 src/rc_formatters.py:154 msgid "with a redirect" msgstr "z przekierowaniem" -#: src/rc_formatters.py:70 +#: src/rc_formatters.py:149 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" "({target_url}) {made_a_redirect}{comment}" msgstr "" -"[{author}]({author_url}) przeniósł/przeniosła {redirect}*{article}* do " -"[{target}]({target_url}) {made_a_redirect}{comment}" +"[{author}]({author_url}) przeniósł {redirect}*{article}* do [{target}]" +"({target_url}) {made_a_redirect}{comment}" -#: src/rc_formatters.py:76 +#: src/rc_formatters.py:155 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* over redirect to " "[{target}]({target_url}) {made_a_redirect}{comment}" msgstr "" -"[{author}]({author_url}) przeniósł/przeniosła {redirect}*{article}* do " -"przekierowania [{target}]({target_url}) {made_a_redirect}{comment}" +"[{author}]({author_url}) przeniósł {redirect}*{article}* do przekierowania " +"[{target}]({target_url}) {made_a_redirect}{comment}" -#: src/rc_formatters.py:81 +#: src/rc_formatters.py:160 #, python-brace-format msgid "" "[{author}]({author_url}) moved protection settings from {redirect}*{article}" "* to [{target}]({target_url}){comment}" msgstr "" -"[{author}]({author_url}) przeniósł/przeniosła ustawienia zabezpieczeń z " -"{redirect}*{article}* do [{target}]({target_url}){comment}" +"[{author}]({author_url}) przeniósł ustawienia zabezpieczeń z {redirect}" +"*{article}* do [{target}]({target_url}){comment}" -#: src/rc_formatters.py:92 src/rc_formatters.py:518 +#: src/rc_formatters.py:171 src/rc_formatters.py:662 msgid "for infinity and beyond" msgstr "na wieczność" -#: src/rc_formatters.py:101 src/rc_formatters.py:526 +#: src/rc_formatters.py:180 src/rc_formatters.py:670 #, python-brace-format msgid "for {num} {translated_length}" msgstr "na {num} {translated_length}" -#: src/rc_formatters.py:107 src/rc_formatters.py:529 +#: src/rc_formatters.py:186 src/rc_formatters.py:674 msgid "until {}" msgstr "do {}" -#: src/rc_formatters.py:111 +#: src/rc_formatters.py:190 msgid " on pages: " msgstr " na stronach: " -#: src/rc_formatters.py:118 src/rc_formatters.py:540 +#: src/rc_formatters.py:197 src/rc_formatters.py:687 msgid " and namespaces: " msgstr " oraz przestrzeniach nazw: " -#: src/rc_formatters.py:120 +#: src/rc_formatters.py:199 msgid " on namespaces: " msgstr " na przestrzeniach nazw: " -#: src/rc_formatters.py:132 +#: src/rc_formatters.py:211 #, python-brace-format msgid "" "[{author}]({author_url}) blocked [{user}]({user_url}) {time}" "{restriction_desc}{comment}" msgstr "" -"[{author}]({author_url}) zablokował(-a) [{user}]({user_url}) {time}" +"[{author}]({author_url}) zablokował(a) [{user}]({user_url}) {time}" "{restriction_desc}{comment}" -#: src/rc_formatters.py:136 +#: src/rc_formatters.py:215 #, python-brace-format msgid "" "[{author}]({author_url}) changed block settings for [{blocked_user}]" "({user_url}){comment}" msgstr "" -"[{author}]({author_url}) zmienił(-a) ustawienia blokady dla [{blocked_user}]" +"[{author}]({author_url}) zmienił(a) ustawienia blokady dla [{blocked_user}]" "({user_url}){comment}" -#: src/rc_formatters.py:140 +#: src/rc_formatters.py:219 #, python-brace-format msgid "" "[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" msgstr "" -"[{author}]({author_url}) odblokował(-a) [{blocked_user}]({user_url}){comment}" +"[{author}]({author_url}) odblokował(a) [{blocked_user}]({user_url}){comment}" -#: src/rc_formatters.py:143 +#: src/rc_formatters.py:224 #, python-brace-format msgid "" -"[{author}]({author_url}) left a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" msgstr "" -"[{author}]({author_url}) pozostawił(-a) [komentarz]({comment}) na {target}" +"[{author}]({author_url}) zostawił(a) [komentarz]({comment}) na profilu " +"użytkownika {target}" -#: src/rc_formatters.py:143 -msgid "their own profile" -msgstr "swoim własnym profilu" - -#: src/rc_formatters.py:146 +#: src/rc_formatters.py:226 #, python-brace-format msgid "" -"[{author}]({author_url}) replied to a [comment]({comment}) on {target} " +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) zostawił(a) [komentarz]({comment}) na swoim własnym " +"profilu" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " "profile" msgstr "" -"[{author}]({author_url}) odpowiedział(-a) na [komentarz]({comment}) na " +"[{author}]({author_url}) odpowiedział(a) na [komentarz]({comment}) na " +"profilu użytkownika {target}" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" +"[{author}]({author_url}) odpowiedział(a) na [komentarz]({comment}) na swoim " +"własnym profilu" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" +"[{author}]({author_url}) edytował(a) [komentarz]({comment}) na profilu " +"użytkownika {target}" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) edytował(a) [komentarz]({comment}) na swoim własnym " +"profilu" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" +"[{author}]({author_url}) usunął/usunęła permanentnie komentarz na profilu " +"użytkownika {target}" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" +"[{author}]({author_url}) usunął/usunęła permanentnie komentarz na swoim " +"własnym profilu" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" +"[{author}]({author_url}) usunął/usunęła komentarz na profilu użytkownika " "{target}" -#: src/rc_formatters.py:149 src/rc_formatters.py:155 src/rc_formatters.py:166 -#: src/rc_formatters.py:170 -msgid "their own" -msgstr "swój własny" +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" +"[{author}]({author_url}) usunął/usunęła komentarz na swoim własnym profilu" -#: src/rc_formatters.py:152 +#: src/rc_formatters.py:273 #, python-brace-format msgid "" -"[{author}]({author_url}) edited a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" msgstr "" -"[{author}]({author_url}) edytował(-a) [komentarz]({comment}) na {target}" +"[{author}]({author_url}) edytował(a) pole {field} na profilu użytkownika " +"{target}. *({desc})*" -#: src/rc_formatters.py:158 -#, python-brace-format -msgid "[{author}]({author_url}) purged a comment on {target} profile" -msgstr "" -"[{author}]({author_url}) usunął/usunęła permanentnie komentarz na {target}" - -#: src/rc_formatters.py:168 -#, python-brace-format -msgid "[{author}]({author_url}) deleted a comment on {target} profile" -msgstr "[{author}]({author_url}) usunął/usunęła komentarz na {target}" - -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[{target}]({target_url})'s" -msgstr "na profilu użytkownika [{target}]({target_url})" - -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[their own]({target_url})" -msgstr "na [swoim własnym profilu użytkownika]({target_url})" - -#: src/rc_formatters.py:175 +#: src/rc_formatters.py:279 #, python-brace-format msgid "" -"[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" msgstr "" -"[{author}]({author_url}) edytował(-a) pole {field} {target}. *({desc})*" +"[{author}]({author_url}) edytował(a) pole {field} na swoim własnym profilu. " +"*({desc})*" -#: src/rc_formatters.py:189 src/rc_formatters.py:191 src/rc_formatters.py:618 -#: src/rc_formatters.py:620 +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 msgid "none" msgstr "brak" -#: src/rc_formatters.py:197 src/rc_formatters.py:605 +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" +"[{author}]({author_url}) zmienił(a) przynależność do grup dla [{target}]" +"({target_url}) z {old_groups} na {new_groups}{comment}" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" +"{author} automatycznie zmienił przynależność do grup [{target}]" +"({target_url}) z {old_groups} na {new_groups}{comment}" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 msgid "System" msgstr "System" -#: src/rc_formatters.py:202 +#: src/rc_formatters.py:306 #, python-brace-format msgid "" "[{author}]({author_url}) protected [{article}]({article_url}) with the " "following settings: {settings}{comment}" msgstr "" -"[{author}]({author_url}) zabezpieczył(-a) [{article}]({article_url}) z " -"następującymi ustawieniami: {settings}{comment}" +"[{author}]({author_url}) zabezpieczył(a) [{article}]({article_url}) z " +"ustawieniami: {settings}{comment}" -#: src/rc_formatters.py:204 src/rc_formatters.py:212 src/rc_formatters.py:628 -#: src/rc_formatters.py:634 +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 msgid " [cascading]" msgstr " [kaskadowo]" -#: src/rc_formatters.py:209 +#: src/rc_formatters.py:313 #, python-brace-format msgid "" "[{author}]({author_url}) modified protection settings of [{article}]" "({article_url}) to: {settings}{comment}" msgstr "" -"[{author}]({author_url}) modyfikował(-a) ustawienia zabezpieczeń [{article}]" +"[{author}]({author_url}) zmienił(a) ustawienia zabezpieczeń [{article}]" "({article_url}) na: {settings}{comment}" -#: src/rc_formatters.py:216 +#: src/rc_formatters.py:320 #, python-brace-format msgid "" "[{author}]({author_url}) removed protection from [{article}]({article_url})" "{comment}" msgstr "" -"[{author}]({author_url}) usunął/usunęła zabezpieczenia z [{article}]" -"({article_url}){comment}" +"[{author}]({author_url}) usunął zabezpieczenia z [{article}]({article_url})" +"{comment}" -#: src/rc_formatters.py:220 +#: src/rc_formatters.py:324 #, python-brace-format msgid "" "[{author}]({author_url}) changed visibility of revision on page [{article}]" @@ -268,16 +408,16 @@ msgid_plural "" "[{author}]({author_url}) changed visibility of {amount} revisions on page " "[{article}]({article_url}){comment}" msgstr[0] "" -"[{author}]({author_url}) zmienił(-a) widoczność wersji strony [{article}]" +"[{author}]({author_url}) zmienił(a) widoczność wersji strony [{article}]" "({article_url}){comment}" msgstr[1] "" -"[{author}]({author_url}) zmienił(-a) widoczność {amount} wersji strony " +"[{author}]({author_url}) zmienił(a) widoczność {amount} wersji strony " "[{article}]({article_url}){comment}" msgstr[2] "" -"[{author}]({author_url}) zmienił(-a) widoczność {amount} wersji strony " +"[{author}]({author_url}) zmienił(a) widoczność {amount} wersji strony " "[{article}]({article_url}){comment}" -#: src/rc_formatters.py:225 +#: src/rc_formatters.py:337 #, python-brace-format msgid "" "[{author}]({author_url}) imported [{article}]({article_url}) with {count} " @@ -286,67 +426,68 @@ msgid_plural "" "[{author}]({author_url}) imported [{article}]({article_url}) with {count} " "revisions{comment}" msgstr[0] "" -"[{author}]({author_url}) zaimportował(-a) [{article}]({article_url}) z jedną " +"[{author}]({author_url}) zaimportował(a) [{article}]({article_url}) z jedną " "wersją{comment}" msgstr[1] "" -"[{author}]({author_url}) zaimportował(-a) [{article}]({article_url}) {count} " -"wersjami{comment}" +"[{author}]({author_url}) zaimportował(a) [{article}]({article_url}) z " +"{count} wersjami{comment}" msgstr[2] "" -"[{author}]({author_url}) zaimportował(-a) [{article}]({article_url}) {count} " -"wersjami{comment}" +"[{author}]({author_url}) zaimportował(a) [{article}]({article_url}) z " +"{count} wersjami{comment}" -#: src/rc_formatters.py:230 +#: src/rc_formatters.py:342 #, python-brace-format msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" msgstr "" -"[{author}]({author_url}) przywrócił(-a) [{article}]({article_url}){comment}" +"[{author}]({author_url}) odtworzył(a) [{article}]({article_url}){comment}" -#: src/rc_formatters.py:232 +#: src/rc_formatters.py:344 #, python-brace-format msgid "[{author}]({author_url}) changed visibility of log events{comment}" -msgstr "[{author}]({author_url}) zmienił(-a) widoczność wydarzeń{comment}" +msgstr "" +"[{author}]({author_url}) zmienił(a) widoczność wpisów rejestru{comment}" -#: src/rc_formatters.py:234 +#: src/rc_formatters.py:354 #, python-brace-format msgid "[{author}]({author_url}) imported interwiki{comment}" -msgstr "[{author}]({author_url}) zaimportował(-a) interwiki{comment}" +msgstr "[{author}]({author_url}) zaimportował(a) interwiki{comment}" -#: src/rc_formatters.py:237 +#: src/rc_formatters.py:357 #, python-brace-format msgid "" "[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" msgstr "" -"[{author}]({author_url}) edytował(-a) filtr nadużyć [numer {number}]" +"[{author}]({author_url}) edytował(a) filtr nadużyć [numer {number}]" "({filter_url})" -#: src/rc_formatters.py:241 +#: src/rc_formatters.py:361 #, python-brace-format msgid "" "[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" msgstr "" -"[{author}]({author_url}) stworzył(-a) filtr nadużyć [numer {number}]" +"[{author}]({author_url}) stworzył(a) filtr nadużyć [numer {number}]" "({filter_url})" -#: src/rc_formatters.py:245 +#: src/rc_formatters.py:365 #, python-brace-format msgid "" "[{author}]({author_url}) merged revision histories of [{article}]" "({article_url}) into [{dest}]({dest_url}){comment}" msgstr "" -"[{author}]({author_url}) połączył(-a) historie zmian [{article}]" +"[{author}]({author_url}) połączył(a) historie zmian [{article}]" "({article_url}) z [{dest}]({dest_url}){comment}" -#: src/rc_formatters.py:249 +#: src/rc_formatters.py:369 #, python-brace-format msgid "Account [{author}]({author_url}) was created automatically" msgstr "Konto [{author}]({author_url}) zostało utworzone automatycznie" -#: src/rc_formatters.py:252 src/rc_formatters.py:261 +#: src/rc_formatters.py:372 src/rc_formatters.py:381 #, python-brace-format msgid "Account [{author}]({author_url}) was created" msgstr "Konto [{author}]({author_url}) zostało utworzone" -#: src/rc_formatters.py:255 +#: src/rc_formatters.py:375 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url})" @@ -355,7 +496,7 @@ msgstr "" "Konto [{article}]({article_url}) zostało utworzone przez [{author}]" "({author_url}){comment}" -#: src/rc_formatters.py:258 +#: src/rc_formatters.py:378 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url}) " @@ -364,108 +505,154 @@ msgstr "" "Konto [{article}]({article_url}) zostało utworzone przez [{author}]" "({author_url}) oraz hasło do konta zostało przesłane przez email {comment}" -#: src/rc_formatters.py:264 +#: src/rc_formatters.py:384 #, python-brace-format msgid "" "[{author}]({author_url}) added an entry to the [interwiki table]" "({table_url}) pointing to {website} with {prefix} prefix" msgstr "" -"[{author}]({author_url}) dodał(-a) wpis do [tabeli interwiki]({table_url}), " -"który prowadzi do {website} z prefixem {prefix}" +"[{author}]({author_url}) dodał(a) do [tabeli interwiki]({table_url}) wpis " +"{prefix}, który prowadzi do {website}" -#: src/rc_formatters.py:270 +#: src/rc_formatters.py:390 #, python-brace-format msgid "" "[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " "pointing to {website} with {prefix} prefix" msgstr "" -"[{author}]({author_url}) edytował(-a) wpis w [tabeli interwiki]" -"({table_url}), który prowadzi do {website} z prefixem {prefix}" +"[{author}]({author_url}) edytował(a) w [tabeli interwiki]({table_url}) wpis " +"{prefix}, który prowadzi do {website}" -#: src/rc_formatters.py:276 +#: src/rc_formatters.py:396 #, python-brace-format msgid "" "[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" -msgstr "" -"[{author}]({author_url}) usunął/usunęła wpis z [tabeli interwiki]" -"({table_url})" +msgstr "[{author}]({author_url}) usunął wpis z [tabeli interwiki]({table_url})" -#: src/rc_formatters.py:279 +#: src/rc_formatters.py:399 #, python-brace-format msgid "" "[{author}]({author_url}) changed the content model of the page [{article}]" "({article_url}) from {old} to {new}{comment}" msgstr "" -"[{author}]({author_url}) zmienił(-a) model zawartości [{article}]" +"[{author}]({author_url}) zmienił(a) model zawartości [{article}]" "({article_url}) z {old} na {new}{comment}" -#: src/rc_formatters.py:283 +#: src/rc_formatters.py:403 #, python-brace-format msgid "" "[{author}]({author_url}) edited the sprite for [{article}]({article_url})" -msgstr "" -"[{author}]({author_url}) edytował(-a) sprite [{article}]({article_url})" +msgstr "[{author}]({author_url}) edytował(a) sprite [{article}]({article_url})" -#: src/rc_formatters.py:286 +#: src/rc_formatters.py:406 #, python-brace-format msgid "" "[{author}]({author_url}) created the sprite sheet for [{article}]" "({article_url})" msgstr "" -"[{author}]({author_url}) utworzył(-a) sprite sheet [{article}]({article_url})" +"[{author}]({author_url}) utworzył(a) sprite sheet [{article}]({article_url})" -#: src/rc_formatters.py:289 +#: src/rc_formatters.py:409 #, python-brace-format msgid "" "[{author}]({author_url}) edited the slice for [{article}]({article_url})" -msgstr "[{author}]({author_url}) edytował(-a) slice [{article}]({article_url})" +msgstr "[{author}]({author_url}) edytował(a) slice [{article}]({article_url})" -#: src/rc_formatters.py:294 +#: src/rc_formatters.py:414 #, python-brace-format msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) utworzył(-a) tabelę Cargo \"{table}\"" +msgstr "[{author}]({author_url}) utworzył(a) tabelę Cargo „{table}”" -#: src/rc_formatters.py:296 +#: src/rc_formatters.py:416 #, python-brace-format msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) usunęł(-a) tabelę Cargo \"{table}\"" +msgstr "[{author}]({author_url}) usunął tabelę Cargo „{table}”" -#: src/rc_formatters.py:301 +#: src/rc_formatters.py:421 #, python-brace-format msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" -msgstr "" -"[{author}]({author_url}) utworzył(-a) ponownie tabelę Cargo \"{table}\"" +msgstr "[{author}]({author_url}) utworzył(a) ponownie tabelę Cargo „{table}”" -#: src/rc_formatters.py:306 +#: src/rc_formatters.py:426 #, python-brace-format msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) zastąpił(-a) tabelę Cargo \"{table}\"" +msgstr "[{author}]({author_url}) zastąpił(a) tabelę Cargo „{table}”" -#: src/rc_formatters.py:309 +#: src/rc_formatters.py:429 #, python-brace-format msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" -msgstr "[{author}]({author_url}) utworzył(-a) [tag]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) utworzył(a) [znacznik]({tag_url}) „{tag}”" -#: src/rc_formatters.py:313 +#: src/rc_formatters.py:433 #, python-brace-format msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" -msgstr "[{author}]({author_url}) usunął/usunęła [tag]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) usunął [znacznik]({tag_url}) „{tag}”" -#: src/rc_formatters.py:317 +#: src/rc_formatters.py:437 #, python-brace-format msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" -msgstr "[{author}]({author_url}) aktywował(-a) [tag]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) aktywował(a) [znacznik]({tag_url}) „{tag}”" -#: src/rc_formatters.py:320 +#: src/rc_formatters.py:440 #, python-brace-format msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" -msgstr "[{author}]({author_url}) dezaktywował(-a) [tag]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) dezaktywował(a) [znacznik]({tag_url}) „{tag}”" -#: src/rc_formatters.py:322 +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "[{author}]({author_url}) zmienił(a) ustawienia wiki ({reason})" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) usunął/usunęła wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) zablokował(a) wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) zmodyfikował(a) przestrzeń nazw *{namespace_name}* " +"na *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) usunął/usunęła przestrzeń nazw *{namespace_name}* " +"na *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) zaimportował(a) grupę użytkownika *{group_name}* " +"({comment})" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) przywrócił(a) wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) odblokował(a) wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:473 msgid "An action has been hidden by administration." msgstr "Akcja została ukryta przez administrację." -#: src/rc_formatters.py:329 +#: src/rc_formatters.py:480 #, python-brace-format msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " @@ -474,63 +661,80 @@ msgstr "" "Nieznane wydarzenie `{event}` wykonane przez [{author}]({author_url}), zgłoś " "je na [serwerze wsparcia](<{support}>)." -#: src/rc_formatters.py:337 src/rc_formatters.py:621 +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "{user} wywołał(a) \"{abuse_filter}\"" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "Wykonano" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "Podjęte działania" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "Tytuł" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 msgid "No description provided" msgstr "Nie podano opisu zmian" -#: src/rc_formatters.py:384 +#: src/rc_formatters.py:524 msgid "(N!) " msgstr "(N!) " -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "m" msgstr "d" -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "b" msgstr "b" -#: src/rc_formatters.py:402 src/rc_formatters.py:407 +#: src/rc_formatters.py:542 src/rc_formatters.py:547 msgid "__Only whitespace__" msgstr "__Tylko znaki niedrukowane__" -#: src/rc_formatters.py:412 +#: src/rc_formatters.py:552 msgid "Removed" msgstr "Usunięto" -#: src/rc_formatters.py:414 +#: src/rc_formatters.py:554 msgid "Added" msgstr "Dodano" -#: src/rc_formatters.py:448 src/rc_formatters.py:487 +#: src/rc_formatters.py:588 src/rc_formatters.py:627 msgid "Options" msgstr "Opcje" -#: src/rc_formatters.py:448 +#: src/rc_formatters.py:588 #, python-brace-format msgid "([preview]({link}) | [undo]({undolink}))" msgstr "([podgląd]({link}) | [wycofaj]({undolink}))" -#: src/rc_formatters.py:453 +#: src/rc_formatters.py:593 #, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Przesłał(a) nową wersję {name}" -#: src/rc_formatters.py:455 +#: src/rc_formatters.py:595 #, python-brace-format msgid "Reverted a version of {name}" -msgstr "Wycofano wersję {name}" +msgstr "Wycofał(a) wersję {name}" -#: src/rc_formatters.py:457 +#: src/rc_formatters.py:597 #, python-brace-format msgid "Uploaded {name}" msgstr "Przesłał(a) {name}" -#: src/rc_formatters.py:473 +#: src/rc_formatters.py:613 msgid "**No license!**" msgstr "**Brak licencji!**" -#: src/rc_formatters.py:485 +#: src/rc_formatters.py:625 msgid "" "\n" "License: {}" @@ -538,161 +742,163 @@ msgstr "" "\n" "Licencja: {}" -#: src/rc_formatters.py:487 +#: src/rc_formatters.py:627 #, python-brace-format msgid "([preview]({link}))" msgstr "([podgląd]({link}))" -#: src/rc_formatters.py:492 +#: src/rc_formatters.py:632 #, python-brace-format msgid "Deleted page {article}" -msgstr "Usunął/usunęła {article}" +msgstr "Usunął stronę {article}" -#: src/rc_formatters.py:495 +#: src/rc_formatters.py:637 #, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "" -"Usunął/usunęła przekierowanie ({article}) aby utworzyć miejsce dla " -"przenoszonej strony" +"Usunął przekierowanie ({article}), aby zrobić miejsce dla przenoszonej strony" -#: src/rc_formatters.py:499 +#: src/rc_formatters.py:643 msgid "No redirect has been made" msgstr "Nie utworzono przekierowania" -#: src/rc_formatters.py:500 +#: src/rc_formatters.py:644 msgid "A redirect has been made" msgstr "Zostało utworzone przekierowanie" -#: src/rc_formatters.py:501 +#: src/rc_formatters.py:645 #, python-brace-format msgid "Moved {redirect}{article} to {target}" -msgstr "Przeniósł/przeniosła {redirect}{article} do {target}" +msgstr "Przeniósł {redirect}{article} do {target}" -#: src/rc_formatters.py:504 +#: src/rc_formatters.py:648 #, python-brace-format msgid "Moved {redirect}{article} to {title} over redirect" -msgstr "" -"Przeniósł/przeniosła {redirect}{article} do strony przekierowującej {title}" +msgstr "Przeniósł {redirect}{article} do strony przekierowującej {title}" -#: src/rc_formatters.py:508 +#: src/rc_formatters.py:652 #, python-brace-format msgid "Moved protection settings from {redirect}{article} to {title}" msgstr "Przeniesiono ustawienia zabezpieczeń z {redirect}{article} do {title}" -#: src/rc_formatters.py:533 +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "nieznany czas zakończenia" + +#: src/rc_formatters.py:680 msgid "Blocked from editing the following pages: " msgstr "Blokada przed edytowaniem następujących stron: " -#: src/rc_formatters.py:542 +#: src/rc_formatters.py:689 msgid "Blocked from editing pages on following namespaces: " msgstr "Blokada przed edytowaniem stron na następujących przestrzeniach nazw: " -#: src/rc_formatters.py:553 +#: src/rc_formatters.py:700 msgid "Partial block details" msgstr "Szczegóły częściowej blokady" -#: src/rc_formatters.py:554 +#: src/rc_formatters.py:701 #, python-brace-format msgid "Blocked {blocked_user} {time}" msgstr "Zablokowano {blocked_user} {time}" -#: src/rc_formatters.py:558 +#: src/rc_formatters.py:705 #, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Zmienił ustawienia blokady {blocked_user}" -#: src/rc_formatters.py:562 +#: src/rc_formatters.py:709 #, python-brace-format msgid "Unblocked {blocked_user}" msgstr "Odblokował {blocked_user}" -#: src/rc_formatters.py:567 +#: src/rc_formatters.py:714 #, python-brace-format msgid "Left a comment on {target}'s profile" -msgstr "Pozostawiono komentarz na profilu użytkownika {target}" +msgstr "Zostawiono komentarz na profilu użytkownika {target}" -#: src/rc_formatters.py:569 +#: src/rc_formatters.py:716 msgid "Left a comment on their own profile" -msgstr "Pozostawił(a) komentarz na swoim profilu" +msgstr "Zostawił(a) komentarz na swoim profilu" -#: src/rc_formatters.py:574 +#: src/rc_formatters.py:721 #, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Odpowiedziano na komentarz na profilu użytkownika {target}" -#: src/rc_formatters.py:576 +#: src/rc_formatters.py:723 msgid "Replied to a comment on their own profile" msgstr "Odpowiedział(a) na komentarz na swoim profilu" -#: src/rc_formatters.py:581 +#: src/rc_formatters.py:728 #, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Edytowano komentarz na profilu użytkownika {target}" -#: src/rc_formatters.py:583 +#: src/rc_formatters.py:730 msgid "Edited a comment on their own profile" msgstr "Edytował(a) komentarz na swoim profilu" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 #, python-brace-format msgid "Edited {target}'s profile" msgstr "Edytowano profil użytkownika {target}" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 msgid "Edited their own profile" msgstr "Edytował(a) swój profil" -#: src/rc_formatters.py:588 +#: src/rc_formatters.py:735 #, python-brace-format msgid "Cleared the {field} field" msgstr "Wyczyszczono pole {field}" -#: src/rc_formatters.py:590 +#: src/rc_formatters.py:737 #, python-brace-format msgid "{field} field changed to: {desc}" -msgstr "pole \"{field}\" zostało zmienione na: {desc}" +msgstr "pole „{field}” zostało zmienione na: {desc}" -#: src/rc_formatters.py:593 +#: src/rc_formatters.py:740 #, python-brace-format msgid "Purged a comment on {target}'s profile" msgstr "Usunął permanentnie komentarz na profilu użytkownika {target}" -#: src/rc_formatters.py:599 +#: src/rc_formatters.py:746 #, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Usunął komentarz na profilu użytkownika {target}" -#: src/rc_formatters.py:603 +#: src/rc_formatters.py:750 #, python-brace-format msgid "Changed group membership for {target}" msgstr "Zmieniono przynależność do grup dla {target}" -#: src/rc_formatters.py:607 +#: src/rc_formatters.py:754 #, python-brace-format msgid "{target} got autopromoted to a new usergroup" msgstr "{target} automatycznie otrzymał nową grupę użytkownika" -#: src/rc_formatters.py:622 +#: src/rc_formatters.py:769 #, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "Grupy zmienione z {old_groups} do {new_groups}{reason}" -#: src/rc_formatters.py:626 +#: src/rc_formatters.py:773 #, python-brace-format msgid "Protected {target}" msgstr "Zabezpieczono {target}" -#: src/rc_formatters.py:632 +#: src/rc_formatters.py:779 #, python-brace-format msgid "Changed protection level for {article}" msgstr "Zmieniono poziom zabezpieczeń {article}" -#: src/rc_formatters.py:638 +#: src/rc_formatters.py:785 #, python-brace-format msgid "Removed protection from {article}" -msgstr "Usunięto zabezpieczenie {article}" +msgstr "Usunięto zabezpieczenie z {article}" -#: src/rc_formatters.py:642 +#: src/rc_formatters.py:789 #, python-brace-format msgid "Changed visibility of revision on page {article} " msgid_plural "Changed visibility of {amount} revisions on page {article} " @@ -700,7 +906,7 @@ 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} " -#: src/rc_formatters.py:647 +#: src/rc_formatters.py:801 #, python-brace-format msgid "Imported {article} with {count} revision" msgid_plural "Imported {article} with {count} revisions" @@ -708,176 +914,229 @@ msgstr[0] "Zaimportowano {article} z {count} wersją" msgstr[1] "Zaimportowano {article} z {count} wersjami" msgstr[2] "Zaimportowano {article} z {count} wersjami" -#: src/rc_formatters.py:652 +#: src/rc_formatters.py:806 #, python-brace-format msgid "Restored {article}" msgstr "Przywrócono {article}" -#: src/rc_formatters.py:655 +#: src/rc_formatters.py:809 msgid "Changed visibility of log events" -msgstr "Zmieniono widoczność logów" +msgstr "Zmieniono widoczność wpisów rejestru" -#: src/rc_formatters.py:658 +#: src/rc_formatters.py:819 msgid "Imported interwiki" msgstr "Zaimportowano interwiki" -#: src/rc_formatters.py:661 +#: src/rc_formatters.py:822 #, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Edytowano filtr nadużyć numer {number}" -#: src/rc_formatters.py:664 +#: src/rc_formatters.py:825 #, python-brace-format msgid "Created abuse filter number {number}" msgstr "Utworzono filtr nadużyć numer {number}" -#: src/rc_formatters.py:667 +#: src/rc_formatters.py:828 #, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Połączono historie {article} z {dest}" -#: src/rc_formatters.py:671 +#: src/rc_formatters.py:832 msgid "Created account automatically" msgstr "Konto zostało utworzone automatycznie" -#: src/rc_formatters.py:674 src/rc_formatters.py:683 +#: src/rc_formatters.py:835 src/rc_formatters.py:844 msgid "Created account" msgstr "Stworzono konto" -#: src/rc_formatters.py:677 +#: src/rc_formatters.py:838 #, python-brace-format msgid "Created account {article}" msgstr "Utworzono konto {article}" -#: src/rc_formatters.py:680 +#: src/rc_formatters.py:841 #, python-brace-format msgid "Created account {article} and password was sent by email" -msgstr "Utworzono konto {article} oraz wysłano hasło z użyciem e-maila" +msgstr "Utworzono konto {article} oraz wysłano hasło z użyciem emaila" -#: src/rc_formatters.py:686 +#: src/rc_formatters.py:847 msgid "Added an entry to the interwiki table" msgstr "Dodano wpis do tabeli interwiki" -#: src/rc_formatters.py:687 src/rc_formatters.py:693 +#: src/rc_formatters.py:848 src/rc_formatters.py:854 #, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Prefix: {prefix}, strona: {website} | {desc}" -#: src/rc_formatters.py:692 +#: src/rc_formatters.py:853 msgid "Edited an entry in interwiki table" msgstr "Edytowano wpis interwiki" -#: src/rc_formatters.py:698 +#: src/rc_formatters.py:859 msgid "Deleted an entry in interwiki table" msgstr "Usunięto wpis interwiki" -#: src/rc_formatters.py:699 +#: src/rc_formatters.py:860 #, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Prefix: {prefix} | {desc}" -#: src/rc_formatters.py:702 +#: src/rc_formatters.py:863 #, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Zmieniono model zawartości {article}" -#: src/rc_formatters.py:703 +#: src/rc_formatters.py:864 #, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Model został zmieniony z {old} na {new}: {reason}" -#: src/rc_formatters.py:708 +#: src/rc_formatters.py:869 #, python-brace-format msgid "Edited the sprite for {article}" msgstr "Edytowano sprite dla {article}" -#: src/rc_formatters.py:711 +#: src/rc_formatters.py:872 #, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Utworzono sprite sheet dla {article}" -#: src/rc_formatters.py:714 +#: src/rc_formatters.py:875 #, python-brace-format msgid "Edited the slice for {article}" msgstr "Edytowano część sprite dla {article}" -#: src/rc_formatters.py:720 +#: src/rc_formatters.py:881 #, python-brace-format msgid "Created the Cargo table \"{table}\"" -msgstr "Utworzono tabelę Cargo \"{table}\"" +msgstr "Utworzono tabelę Cargo „{table}”" -#: src/rc_formatters.py:724 +#: src/rc_formatters.py:885 #, python-brace-format msgid "Deleted the Cargo table \"{table}\"" -msgstr "Usunięto tabelę Cargo \"{table}\"" +msgstr "Usunięto tabelę Cargo „{table}”" -#: src/rc_formatters.py:731 +#: src/rc_formatters.py:892 #, python-brace-format msgid "Recreated the Cargo table \"{table}\"" -msgstr "Utworzono ponownie tabelę Cargo \"{table}\"" +msgstr "Utworzono ponownie tabelę Cargo „{table}”" -#: src/rc_formatters.py:738 +#: src/rc_formatters.py:899 #, python-brace-format msgid "Replaced the Cargo table \"{table}\"" -msgstr "Zastąpiono tabelę Cargo \"{table}\"" +msgstr "Zastąpiono tabelę Cargo „{table}”" -#: src/rc_formatters.py:742 +#: src/rc_formatters.py:903 #, python-brace-format msgid "Created a tag \"{tag}\"" -msgstr "Utworzono tag \"{tag}\"" +msgstr "Utworzono znacznik „{tag}”" -#: src/rc_formatters.py:746 +#: src/rc_formatters.py:907 #, python-brace-format msgid "Deleted a tag \"{tag}\"" -msgstr "Usunięto tag \"{tag}\"" +msgstr "Usunięto znacznik „{tag}”" -#: src/rc_formatters.py:750 +#: src/rc_formatters.py:911 #, python-brace-format msgid "Activated a tag \"{tag}\"" -msgstr "Aktywowano tag \"{tag}\"" +msgstr "Aktywowano znaczni „{tag}”" -#: src/rc_formatters.py:753 +#: src/rc_formatters.py:914 #, python-brace-format msgid "Deactivated a tag \"{tag}\"" -msgstr "Dezaktywowano tag \"{tag}\"" +msgstr "Dezaktywowano znacznik „{tag}”" -#: src/rc_formatters.py:756 +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "Zmieniono ustawienia wiki" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "Usunięto wiki „{wiki}”" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "Zablokowano wiki „{wiki}”" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "Modyfikowano przestrzeń nazw „{namespace_name}”" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "Wiki" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "Usunięto przestrzeń nazw „{namespace_name}”" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "Modyfikowano grupę użytkowników „{usergroup_name}”" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "Przywrócono wiki „{wiki}”" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "Odblokowano wiki „{wiki}”" + +#: src/rc_formatters.py:946 msgid "Action has been hidden by administration" msgstr "Akcja została ukryta przez administrację" -#: src/rc_formatters.py:757 -msgid "Unknown" -msgstr "Nieznana" - -#: src/rc_formatters.py:761 +#: src/rc_formatters.py:951 #, python-brace-format msgid "Unknown event `{event}`" msgstr "Nieznane wydarzenie `{event}`" -#: src/rc_formatters.py:767 src/rc_formatters.py:769 +#: src/rc_formatters.py:957 src/rc_formatters.py:959 msgid "Report this on the support server" msgstr "Zgłoś to na serwerze wsparcia" -#: src/rc_formatters.py:786 +#: src/rc_formatters.py:976 msgid "Tags" -msgstr "Tagi" +msgstr "Znaczniki" -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid "**Added**: " msgstr "**Dodane**: " -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid " and {} more\n" msgstr " oraz {} innych\n" -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid "**Removed**: " msgstr "**Usunięte**: " -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid " and {} more" msgstr " oraz {} innych" -#: src/rc_formatters.py:791 +#: src/rc_formatters.py:981 msgid "Changed categories" msgstr "Zmienione kategorie" + +#~ msgid "their own profile" +#~ msgstr "swoim własnym profilu" + +#~ msgid "their own" +#~ msgstr "swój własny" + +#, python-brace-format +#~ msgid "[{target}]({target_url})'s" +#~ msgstr "na profilu użytkownika [{target}]({target_url})" + +#, python-brace-format +#~ msgid "[their own]({target_url})" +#~ msgstr "na [swoim własnym profilu użytkownika]({target_url})" diff --git a/locale/pl/LC_MESSAGES/rcgcdw.mo b/locale/pl/LC_MESSAGES/rcgcdw.mo index 9923b8b..e5e0fba 100644 Binary files a/locale/pl/LC_MESSAGES/rcgcdw.mo and b/locale/pl/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/pl/LC_MESSAGES/rcgcdw.po b/locale/pl/LC_MESSAGES/rcgcdw.po index ebf2734..eaf400d 100644 --- a/locale/pl/LC_MESSAGES/rcgcdw.po +++ b/locale/pl/LC_MESSAGES/rcgcdw.po @@ -6,211 +6,212 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:22+0200\n" -"PO-Revision-Date: 2020-09-03 13:02+0200\n" -"Last-Translator: Rail \n" -"Language-Team: Polish \n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" +"PO-Revision-Date: 2020-10-14 18:41+0000\n" +"Last-Translator: Rail <>\n" +"Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2;\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Weblate 4.2.1\n" "Generated-By: pygettext.py 1.5\n" -#: src/rcgcdw.py:113 src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 -#: src/rcgcdw.py:121 src/rcgcdw.py:123 src/rcgcdw.py:125 +#: src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 src/rcgcdw.py:121 +#: src/rcgcdw.py:123 src/rcgcdw.py:125 src/rcgcdw.py:127 #, python-brace-format msgid "{value} (avg. {avg})" msgstr "{value} (średnio {avg})" -#: src/rcgcdw.py:145 +#: src/rcgcdw.py:147 msgid "Daily overview" msgstr "Podsumowanie dnia" -#: src/rcgcdw.py:153 +#: src/rcgcdw.py:155 msgid "No activity" msgstr "Brak aktywności" -#: src/rcgcdw.py:177 +#: src/rcgcdw.py:179 msgid " ({} action)" msgid_plural " ({} actions)" msgstr[0] " ({} akcja)" msgstr[1] " ({} akcje)" msgstr[2] " ({} akcji)" -#: src/rcgcdw.py:179 +#: src/rcgcdw.py:181 msgid " ({} edit)" msgid_plural " ({} edits)" msgstr[0] " ({} edycja)" msgstr[1] " ({} edycje)" msgstr[2] " ({} edycji)" -#: src/rcgcdw.py:184 +#: src/rcgcdw.py:186 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] " UTC ({} akcja)" msgstr[1] " UTC ({} akcje)" msgstr[2] " UTC ({} akcji)" -#: src/rcgcdw.py:186 src/rcgcdw.py:187 src/rcgcdw.py:191 +#: src/rcgcdw.py:188 src/rcgcdw.py:189 src/rcgcdw.py:193 msgid "But nobody came" msgstr "Ale nikt nie przyszedł" -#: src/rcgcdw.py:194 +#: src/rcgcdw.py:196 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" -#: src/rcgcdw.py:195 +#: src/rcgcdw.py:197 msgid "Most edited article" msgid_plural "Most edited articles" msgstr[0] "Najczęściej edytowany artykuł" msgstr[1] "Najczęściej edytowane artykuły" msgstr[2] "Najczęściej edytowane artykuły" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Edits made" -msgstr "Zrobionych edycji" +msgstr "Wykonanych edycji" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "New files" msgstr "Nowych plików" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Admin actions" msgstr "Akcji administratorskich" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "Bytes changed" msgstr "Zmienionych bajtów" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "New articles" msgstr "Nowych artykułów" -#: src/rcgcdw.py:198 +#: src/rcgcdw.py:200 msgid "Unique contributors" msgstr "Unikalnych edytujących" -#: src/rcgcdw.py:199 +#: src/rcgcdw.py:201 msgid "Most active hour" msgid_plural "Most active hours" msgstr[0] "Najbardziej aktywna godzina" msgstr[1] "Najbardziej aktywne godziny" msgstr[2] "Najbardziej aktywne godziny" -#: src/rcgcdw.py:200 +#: src/rcgcdw.py:202 msgid "Day score" msgstr "Wynik dnia" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "director" msgstr "Dyrektor" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bot" msgstr "Bot" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "editor" msgstr "Redaktor" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "directors" msgstr "Dyrektorzy" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "sysop" msgstr "Administrator" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bureaucrat" msgstr "Biurokrata" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "reviewer" msgstr "Przeglądający" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autoreview" msgstr "Automatycznie przeglądający" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autopatrol" msgstr "Automatycznie zatwierdzający" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "wiki_guardian" msgstr "Strażnik wiki" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "second" msgid_plural "seconds" msgstr[0] "sekunda" msgstr[1] "sekundy" msgstr[2] "sekund" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "minute" msgid_plural "minutes" msgstr[0] "minuta" msgstr[1] "minuty" msgstr[2] "minut" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "hour" msgid_plural "hours" msgstr[0] "godzina" msgstr[1] "godziny" msgstr[2] "godzin" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "day" msgid_plural "days" msgstr[0] "dzień" msgstr[1] "dni" msgstr[2] "dni" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "week" msgid_plural "weeks" msgstr[0] "tydzień" msgstr[1] "tygodnie" msgstr[2] "tygodni" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "month" msgid_plural "months" msgstr[0] "miesiąc" msgstr[1] "miesiące" msgstr[2] "miesięcy" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "year" msgid_plural "years" msgstr[0] "rok" msgstr[1] "lata" msgstr[2] "lat" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "millennium" msgid_plural "millennia" msgstr[0] "tysiąclecie" msgstr[1] "tysiąclecia" msgstr[2] "tysiącleci" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "decade" msgid_plural "decades" msgstr[0] "dekada" msgstr[1] "dekady" msgstr[2] "dekad" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "century" msgid_plural "centuries" msgstr[0] "stulecie" diff --git a/locale/pl/LC_MESSAGES/redaction.mo b/locale/pl/LC_MESSAGES/redaction.mo new file mode 100644 index 0000000..1050bd6 Binary files /dev/null and b/locale/pl/LC_MESSAGES/redaction.mo differ diff --git a/locale/pl/LC_MESSAGES/redaction.po b/locale/pl/LC_MESSAGES/redaction.po new file mode 100644 index 0000000..85bdfb1 --- /dev/null +++ b/locale/pl/LC_MESSAGES/redaction.po @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" +"PO-Revision-Date: 2020-11-16 22:51+0100\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.1\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 " +"|| n%100>14) ? 1 : 2);\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "Usunięte" diff --git a/locale/pt-br/LC_MESSAGES/discussion_formatters.mo b/locale/pt-br/LC_MESSAGES/discussion_formatters.mo index 39da3e1..bfba040 100644 Binary files a/locale/pt-br/LC_MESSAGES/discussion_formatters.mo and b/locale/pt-br/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/pt-br/LC_MESSAGES/discussion_formatters.po b/locale/pt-br/LC_MESSAGES/discussion_formatters.po index fbd4a23..10185f4 100644 --- a/locale/pt-br/LC_MESSAGES/discussion_formatters.po +++ b/locale/pt-br/LC_MESSAGES/discussion_formatters.po @@ -1,24 +1,28 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # -# Frisk , 2020. +# Frisk <>, 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" -"PO-Revision-Date: 2020-08-11 21:22+0000\n" -"Last-Translator: dr03ramos \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-21 01:09+0000\n" +"Last-Translator: Eduaddad \n" "Language-Team: Portuguese (Brazil) \n" +"rcgcdw/discussion_formatters-1/pt-br/>\n" "Language: pt-br\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Weblate 4.1.1\n" +"X-Generator: Weblate 4.2.1\n" -#: src/discussion_formatters.py:32 +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "Usuário não registrado" + +#: src/discussion_formatters.py:34 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " @@ -27,7 +31,7 @@ msgstr "" "[{author}]({author_url}) criou [{title}](<{url}f/p/{threadId}>) no " "{forumName}" -#: src/discussion_formatters.py:34 +#: src/discussion_formatters.py:36 #, python-brace-format msgid "" "[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " @@ -36,7 +40,7 @@ msgstr "" "[{author}]({author_url}) criou uma enquete [{title}](<{url}f/p/{threadId}>) " "no {forumName}" -#: src/discussion_formatters.py:36 +#: src/discussion_formatters.py:38 #, python-brace-format msgid "" "[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " @@ -45,7 +49,7 @@ msgstr "" "[{author}]({author_url}) criou uma enquete [{title}](<{url}f/p/{threadId}>) " "no {forumName}" -#: src/discussion_formatters.py:41 +#: src/discussion_formatters.py:43 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " @@ -54,12 +58,12 @@ msgstr "" "[{author}]({author_url}) criou uma [resposta](<{url}f/p/{threadId}/r/{postId}" ">) para [{title}](<{url}f/p/{threadId}>) em {forumName}" -#: src/discussion_formatters.py:43 src/discussion_formatters.py:52 -#: src/discussion_formatters.py:129 src/discussion_formatters.py:142 +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 msgid "unknown" msgstr "desconhecido" -#: src/discussion_formatters.py:47 +#: src/discussion_formatters.py:49 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" @@ -70,7 +74,7 @@ msgstr "" "threadId={threadId}>) no mural de mensagens de [{user}(<{url}wiki/" "Message_Wall:{user_wall}>)" -#: src/discussion_formatters.py:49 +#: src/discussion_formatters.py:51 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" @@ -83,99 +87,97 @@ msgstr "" "Message_Wall:{user_wall}?threadId={threadId}>) no mural de mensagens de " "[{user}](<{url}wiki/Message_Wall:{user_wall}>)" -#: src/discussion_formatters.py:54 +#: src/discussion_formatters.py:57 #, python-brace-format msgid "" -"[{author}]({author_url}) created a [comment](<{url}wiki/{article}?" -"commentId={commentId}>) on [{article}](<{url}wiki/{article}>)" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" msgstr "" -"[{author}]({author_url})criou um [comentário](<{url}wiki/{article}?" -"commentId={commentId}>) no [{article}](<{url}wiki/{article}>)" - -#: src/discussion_formatters.py:56 -#, python-brace-format -msgid "" -"[{author}]({author_url}) created a [reply](<{url}wiki/{article}?" -"threadId={threadId}) to a [comment](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) on [{article}](<{url}wiki/{article}" -">)" -msgstr "" -"[{author}]({author_url}) criou uma [resposta](<{url}wiki/{article}?" -"threadId={threadId}) para um [comentário](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) no [{article}](<{url}wiki/{article}" -">)" +"[{author}]({author_url})criou um [comentário](<{url}?commentId={commentId}>) " +"no [{article}](<{url}>)" #: src/discussion_formatters.py:62 #, python-brace-format msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" +"[{author}]({author_url}) criou uma [resposta](<{url}?commentId={commentId}" +"&replyId={replyId}>)para um [comentário](<{url}?commentId={commentId}>) no " +"[{article}](<{url}>)" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -"Evento desconhecido `{event}` por [{author}]({author_url}), relatar no [" -"servidor de suporte](<{support}>)." +"Evento desconhecido `{event}` por [{author}]({author_url}), relatar no " +"[servidor de suporte](<{support}>)." -#: src/discussion_formatters.py:90 +#: src/discussion_formatters.py:98 #, python-brace-format msgid "Created \"{title}\"" msgstr "Criado \"{title}\"" -#: src/discussion_formatters.py:94 +#: src/discussion_formatters.py:102 #, python-brace-format msgid "Created a poll \"{title}\"" msgstr "Criou uma enquete \"{title}\"" -#: src/discussion_formatters.py:101 +#: src/discussion_formatters.py:109 msgid "Option {}" msgstr "Option {}" -#: src/discussion_formatters.py:102 +#: src/discussion_formatters.py:110 #, python-brace-format msgid "__[View image]({image_url})__" msgstr "__[Ver imagem]({image_url})__" -#: src/discussion_formatters.py:106 +#: src/discussion_formatters.py:114 #, python-brace-format msgid "Created a quiz \"{title}\"" msgstr "Criou uma enquete \"{title}\"" -#: src/discussion_formatters.py:121 src/discussion_formatters.py:123 +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 msgid "Tags" msgstr "Etiquetas" -#: src/discussion_formatters.py:121 +#: src/discussion_formatters.py:129 msgid "{} tags" msgstr "{} etiquetas" -#: src/discussion_formatters.py:126 +#: src/discussion_formatters.py:134 #, python-brace-format msgid "Replied to \"{title}\"" msgstr "Respondido o \"{title}\"" -#: src/discussion_formatters.py:135 +#: src/discussion_formatters.py:143 #, python-brace-format msgid "Created \"{title}\" on {user}'s Message Wall" msgstr "Criado \"{title}\" no mural de mensagem de {user}" -#: src/discussion_formatters.py:139 +#: src/discussion_formatters.py:147 #, python-brace-format msgid "Replied to \"{title}\" on {user}'s Message Wall" msgstr "Respondeu a \"{title}\" no mural de mensagem de {user}" -#: src/discussion_formatters.py:146 +#: src/discussion_formatters.py:154 #, python-brace-format msgid "Commented on {article}" msgstr "Comentou em {article}" -#: src/discussion_formatters.py:150 +#: src/discussion_formatters.py:158 #, python-brace-format msgid "Replied to a comment on {article}" msgstr "Respondeu a um comentário em {article}" -#: src/discussion_formatters.py:154 +#: src/discussion_formatters.py:162 #, python-brace-format msgid "Unknown event `{event}`" msgstr "Evento `{event}` desconhecido" -#: src/discussion_formatters.py:160 src/discussion_formatters.py:162 +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 msgid "Report this on the support server" msgstr "Reportar isso no servidor de suporte" diff --git a/locale/pt-br/LC_MESSAGES/misc.mo b/locale/pt-br/LC_MESSAGES/misc.mo index aa32617..5030289 100644 Binary files a/locale/pt-br/LC_MESSAGES/misc.mo and b/locale/pt-br/LC_MESSAGES/misc.mo differ diff --git a/locale/pt-br/LC_MESSAGES/misc.po b/locale/pt-br/LC_MESSAGES/misc.po index aa93f98..56c4790 100644 --- a/locale/pt-br/LC_MESSAGES/misc.po +++ b/locale/pt-br/LC_MESSAGES/misc.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 14:00+0200\n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" "PO-Revision-Date: 2020-08-04 09:51+0000\n" -"Last-Translator: Eduaddad \n" +"Last-Translator: Eduaddad <>\n" "Language-Team: Portuguese (Brazil) \n" "Language: pt-br\n" @@ -19,59 +19,59 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 4.1.1\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "Localização" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "Sobre mim" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "Link do Google" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "Facebook link" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "Link do Twitter" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "Link do Reddit" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "Link do Twitch" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "Link do PSN" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "Link do VK" -#: src/misc.py:42 +#: src/misc.py:45 msgid "XBL link" msgstr "Link do XBL" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "Link do Steam" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "Link do Discord" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "Link do Battle.net" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" @@ -79,11 +79,10 @@ msgstr "" "\n" "__E mais__" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "Desconhecido" -#: src/misc.py:425 +#: src/misc.py:273 msgid "unknown" msgstr "desconhecido" - diff --git a/locale/pt-br/LC_MESSAGES/rc.mo b/locale/pt-br/LC_MESSAGES/rc.mo index 7d2f7a5..2509661 100644 Binary files a/locale/pt-br/LC_MESSAGES/rc.mo and b/locale/pt-br/LC_MESSAGES/rc.mo differ diff --git a/locale/pt-br/LC_MESSAGES/rc.po b/locale/pt-br/LC_MESSAGES/rc.po index b2f6b5c..9a46212 100644 --- a/locale/pt-br/LC_MESSAGES/rc.po +++ b/locale/pt-br/LC_MESSAGES/rc.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:22+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-08-04 09:51+0000\n" -"Last-Translator: Eduaddad \n" +"Last-Translator: Eduaddad <>\n" "Language-Team: Portuguese (Brazil) \n" "Language: pt-br\n" @@ -19,25 +19,24 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Weblate 4.1.1\n" -#: src/rc.py:150 -#, python-brace-format -msgid "Connection to {wiki} seems to be stable now." -msgstr "A conexão com {wiki} parece estar estável agora." - -#: src/rc.py:151 src/rc.py:266 -msgid "Connection status" -msgstr "Status da conexão" - -#: src/rc.py:265 +#: src/rc.py:319 #, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki} parece estar inativo ou inacessível." -#: src/rc.py:334 +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "Status da conexão" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "A conexão com {wiki} parece estar estável agora." + +#: src/rc.py:401 msgid "~~hidden~~" msgstr "~~ocultado~~" -#: src/rc.py:340 +#: src/rc.py:405 msgid "hidden" msgstr "oculto" - diff --git a/locale/pt-br/LC_MESSAGES/rc_formatters.mo b/locale/pt-br/LC_MESSAGES/rc_formatters.mo index 50e1bf1..c37ea8e 100644 Binary files a/locale/pt-br/LC_MESSAGES/rc_formatters.mo and b/locale/pt-br/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/pt-br/LC_MESSAGES/rc_formatters.po b/locale/pt-br/LC_MESSAGES/rc_formatters.po index ec3f027..14239b4 100644 --- a/locale/pt-br/LC_MESSAGES/rc_formatters.po +++ b/locale/pt-br/LC_MESSAGES/rc_formatters.po @@ -7,63 +7,153 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-10 16:15+0200\n" -"PO-Revision-Date: 2020-08-11 21:22+0000\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-25 10:16+0000\n" "Last-Translator: Eduaddad \n" "Language-Team: Portuguese (Brazil) \n" +"rcgcdw/rc_formatters/pt-br/>\n" "Language: pt-br\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n > 1;\n" -"X-Generator: Weblate 4.1.1\n" +"X-Generator: Weblate 4.2.1\n" -#: src/rc_formatters.py:42 +#: src/rc_formatters.py:28 +msgid "None" +msgstr "Nenhum" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "Aviso emitido" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "**Usuário bloqueado**" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "Marcou a edição" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "Desautorizado a ação" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "Faixa de IP bloqueada" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "Ações estranguladas" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "Auto-promoção de função bloqueada" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "**Removido de grupos privilegiados**" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "Editar" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "Carregar" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "Mover" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "Carregar estoque" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "Exclusão" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "Criação de conta" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "Criação de conta automática" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "Usuário não registrado" + +#: src/rc_formatters.py:83 #, python-brace-format msgid "" -"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." msgstr "" -"[{author}]({author_url}) editou [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) acionou *{abuse_filter}*, executando a ação\"" +"{action}\" em *[{target}]({target_url})* - ação realizada: {result}." -#: src/rc_formatters.py:44 +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "Desconhecido" + +#: src/rc_formatters.py:117 #, python-brace-format msgid "" -"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "" -"[{author}]({author_url}) criou [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) editou [{article}]({edit_link}){comment} " +"({bold}{sign}{edit_size}{bold})" -#: src/rc_formatters.py:47 +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" +"[{author}]({author_url}) criou [{article}]({edit_link}){comment} " +"({bold}{sign}{edit_size}{bold})" + +#: src/rc_formatters.py:122 #, python-brace-format msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" msgstr "[{author}]({author_url}) carregou [{file}]({file_link}){comment}" -#: src/rc_formatters.py:54 +#: src/rc_formatters.py:129 #, python-brace-format msgid "" "[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" msgstr "" -"[{author}]({author_url}) reverteu a versão do [{file}]({file_link}){comment}" +"[{author}]({author_url}) reverteu uma versão de [{file}]({file_link})" +"{comment}" -#: src/rc_formatters.py:58 +#: src/rc_formatters.py:133 #, python-brace-format msgid "" "[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" "{comment}" msgstr "" -"[{author}]({author_url}) carregou a nova versão de [{file}]({file_link})" +"[{author}]({author_url}) carregou uma nova versão de [{file}]({file_link})" "{comment}" -#: src/rc_formatters.py:61 +#: src/rc_formatters.py:136 #, python-brace-format msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" msgstr "[{author}]({author_url}) excluiu [{page}]({page_link}){comment}" -#: src/rc_formatters.py:65 +#: src/rc_formatters.py:142 #, python-brace-format msgid "" "[{author}]({author_url}) deleted redirect by overwriting [{page}]" @@ -72,15 +162,15 @@ msgstr "" "[{author}]({author_url}) excluiu o redirecionamento substituindo [{page}]" "({page_link}){comment}" -#: src/rc_formatters.py:69 src/rc_formatters.py:74 +#: src/rc_formatters.py:148 src/rc_formatters.py:153 msgid "without making a redirect" msgstr "sem fazer um redirecionamento" -#: src/rc_formatters.py:69 src/rc_formatters.py:75 +#: src/rc_formatters.py:148 src/rc_formatters.py:154 msgid "with a redirect" msgstr "com um redirecionamento" -#: src/rc_formatters.py:70 +#: src/rc_formatters.py:149 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" @@ -89,16 +179,16 @@ msgstr "" "[{author}]({author_url}) moveu {redirect}*{article}* para [{target}]" "({target_url}) {made_a_redirect}{comment}" -#: src/rc_formatters.py:76 +#: src/rc_formatters.py:155 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* over redirect to " "[{target}]({target_url}) {made_a_redirect}{comment}" msgstr "" -"[{author}]({author_url}) moveu {redirect}*{article}* sobre o " -"redirecionamento para [{target}]({target_url}) {made_a_redirect}{comment}" +"[{author}]({author_url}) moveu {redirect}*{article}* para [{target}]" +"({target_url}) deixando um redirecionamento {made_a_redirect}{comment}" -#: src/rc_formatters.py:81 +#: src/rc_formatters.py:160 #, python-brace-format msgid "" "[{author}]({author_url}) moved protection settings from {redirect}*{article}" @@ -107,32 +197,32 @@ msgstr "" "[{author}]({author_url}) moveu as configurações de proteção de {redirect}" "*{article}* para [{target}]({target_url}){comment}" -#: src/rc_formatters.py:92 src/rc_formatters.py:518 +#: src/rc_formatters.py:171 src/rc_formatters.py:662 msgid "for infinity and beyond" msgstr "para o infinito e além" -#: src/rc_formatters.py:101 src/rc_formatters.py:526 +#: src/rc_formatters.py:180 src/rc_formatters.py:670 #, python-brace-format msgid "for {num} {translated_length}" msgstr "para {num} {translated_length}" -#: src/rc_formatters.py:107 src/rc_formatters.py:529 +#: src/rc_formatters.py:186 src/rc_formatters.py:674 msgid "until {}" msgstr "até {}" -#: src/rc_formatters.py:111 +#: src/rc_formatters.py:190 msgid " on pages: " msgstr " nas páginas: " -#: src/rc_formatters.py:118 src/rc_formatters.py:540 +#: src/rc_formatters.py:197 src/rc_formatters.py:687 msgid " and namespaces: " msgstr " e espaços nominais: " -#: src/rc_formatters.py:120 +#: src/rc_formatters.py:199 msgid " on namespaces: " msgstr " nos espaços nominais: " -#: src/rc_formatters.py:132 +#: src/rc_formatters.py:211 #, python-brace-format msgid "" "[{author}]({author_url}) blocked [{user}]({user_url}) {time}" @@ -141,107 +231,146 @@ msgstr "" "[{author}]({author_url}) bloqueou [{user}]({user_url}) {time}" "{restriction_desc}{comment}" -#: src/rc_formatters.py:136 +#: src/rc_formatters.py:215 #, python-brace-format msgid "" "[{author}]({author_url}) changed block settings for [{blocked_user}]" "({user_url}){comment}" msgstr "" -"[{author}]({author_url}) mudou as configurações de bloqueio para " +"[{author}]({author_url}) alterou as configurações de bloqueio de " "[{blocked_user}]({user_url}){comment}" -#: src/rc_formatters.py:140 +#: src/rc_formatters.py:219 #, python-brace-format msgid "" "[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" msgstr "" "[{author}]({author_url}) desbloqueou [{blocked_user}]({user_url}){comment}" -#: src/rc_formatters.py:143 +#: src/rc_formatters.py:224 #, python-brace-format msgid "" -"[{author}]({author_url}) left a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" msgstr "" "[{author}]({author_url}) deixou um [comentário]({comment}) no perfil de " "{target}" -#: src/rc_formatters.py:143 -msgid "their own profile" -msgstr "seu próprio perfil" - -#: src/rc_formatters.py:146 +#: src/rc_formatters.py:226 #, python-brace-format msgid "" -"[{author}]({author_url}) replied to a [comment]({comment}) on {target} " +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) deixou um [comentário]({comment}) no próprio perfil" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " "profile" msgstr "" "[{author}]({author_url}) respondeu a um [comentário]({comment}) no perfil de " "{target}" -#: src/rc_formatters.py:149 src/rc_formatters.py:155 src/rc_formatters.py:166 -#: src/rc_formatters.py:170 -msgid "their own" -msgstr "próprio" - -#: src/rc_formatters.py:152 +#: src/rc_formatters.py:238 #, python-brace-format msgid "" -"[{author}]({author_url}) edited a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" +"[{author}]({author_url}) respondeu a um [comentário]({comment}) no próprio " +"perfil" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" msgstr "" "[{author}]({author_url}) editou um [comentário]({comment}) no perfil de " "{target}" -#: src/rc_formatters.py:158 -#, python-brace-format -msgid "[{author}]({author_url}) purged a comment on {target} profile" -msgstr "[{author}]({author_url}) limpou um comentário no perfil {target}" - -#: src/rc_formatters.py:168 -#, python-brace-format -msgid "[{author}]({author_url}) deleted a comment on {target} profile" -msgstr "[{author}]({author_url}) excluiu um comentário no perfil de {target}" - -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[{target}]({target_url})'s" -msgstr "[{target}]({target_url})" - -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[their own]({target_url})" -msgstr "[seu próprio]({target_url})" - -#: src/rc_formatters.py:175 +#: src/rc_formatters.py:252 #, python-brace-format msgid "" -"[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) editou um [comentário]({comment}) no próprio perfil" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "[{author}]({author_url}) limpou um comentário no perfil de {target}" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "[{author}]({author_url}) limpou um comentário no próprio perfil" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "[{author}]({author_url}) excluiu um comentário no perfil de {target}" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "[{author}]({author_url}) excluiu um comentário no próprio perfil" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" msgstr "" "[{author}]({author_url}) editou o {field} no perfil de {target}. *({desc})*" -#: src/rc_formatters.py:189 src/rc_formatters.py:191 src/rc_formatters.py:618 -#: src/rc_formatters.py:620 +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" +"[{author}]({author_url}) editou o {field} em seu próprio perfil. *({desc})*" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 msgid "none" msgstr "nenhum" -#: src/rc_formatters.py:197 src/rc_formatters.py:605 +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" +"[{author}]({author_url}) mudou a associação do grupo para [{target}]" +"({target_url}) de {old_groups} para {new_groups}{comment}" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" +"{author} autopromoveu [{target}]({target_url}) de {old_groups} para " +"{new_groups}{comment}" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 msgid "System" msgstr "Sistema" -#: src/rc_formatters.py:202 +#: src/rc_formatters.py:306 #, python-brace-format msgid "" "[{author}]({author_url}) protected [{article}]({article_url}) with the " "following settings: {settings}{comment}" msgstr "" -"[{author}]({author_url})protegeu [{article}]({article_url}) com as seguintes " -"configurações: {settings}{comment}" +"[{author}]({author_url}) protegeu [{article}]({article_url}) com as " +"seguintes configurações: {settings}{comment}" -#: src/rc_formatters.py:204 src/rc_formatters.py:212 src/rc_formatters.py:628 -#: src/rc_formatters.py:634 +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 msgid " [cascading]" msgstr " [em cascata]" -#: src/rc_formatters.py:209 +#: src/rc_formatters.py:313 #, python-brace-format msgid "" "[{author}]({author_url}) modified protection settings of [{article}]" @@ -250,16 +379,16 @@ msgstr "" "[{author}]({author_url}) modificou as configurações de proteção de " "[{article}]({article_url}) para: {settings}{comment}" -#: src/rc_formatters.py:216 +#: src/rc_formatters.py:320 #, python-brace-format msgid "" "[{author}]({author_url}) removed protection from [{article}]({article_url})" "{comment}" msgstr "" -"[{author}]({author_url}) removeu a proteção para [{article}]({article_url})" +"[{author}]({author_url}) removeu a proteção de [{article}]({article_url})" "{comment}" -#: src/rc_formatters.py:220 +#: src/rc_formatters.py:324 #, python-brace-format msgid "" "[{author}]({author_url}) changed visibility of revision on page [{article}]" @@ -268,13 +397,13 @@ msgid_plural "" "[{author}]({author_url}) changed visibility of {amount} revisions on page " "[{article}]({article_url}){comment}" msgstr[0] "" -"[{author}]({author_url}) mudou a visibilidade da revisão na página[{article}]" -"({article_url}){comment}" -msgstr[1] "" -"[{author}]({author_url}) mudou a visibilidade da revisão {amount} na página " +"[{author}]({author_url}) alterou a visibilidade de uma revisão na página " "[{article}]({article_url}){comment}" +msgstr[1] "" +"[{author}]({author_url}) alterou a visibilidade de {amount} revisões na " +"página [{article}]({article_url}){comment}" -#: src/rc_formatters.py:225 +#: src/rc_formatters.py:337 #, python-brace-format msgid "" "[{author}]({author_url}) imported [{article}]({article_url}) with {count} " @@ -289,24 +418,24 @@ msgstr[1] "" "[{author}]({author_url}) importou [{article}]({article_url}) com {count} " "revisões{comment}" -#: src/rc_formatters.py:230 +#: src/rc_formatters.py:342 #, python-brace-format msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" msgstr "[{author}]({author_url}) restaurou [{article}]({article_url}){comment}" -#: src/rc_formatters.py:232 +#: src/rc_formatters.py:344 #, python-brace-format msgid "[{author}]({author_url}) changed visibility of log events{comment}" msgstr "" "[{author}]({author_url}) mudou a visibilidade dos eventos de " "registro{comment}" -#: src/rc_formatters.py:234 +#: src/rc_formatters.py:354 #, python-brace-format msgid "[{author}]({author_url}) imported interwiki{comment}" -msgstr "[{author}]({author_url}) importou a interwiki{comment}" +msgstr "[{author}]({author_url}) importou um interwiki{comment}" -#: src/rc_formatters.py:237 +#: src/rc_formatters.py:357 #, python-brace-format msgid "" "[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" @@ -314,7 +443,7 @@ msgstr "" "[{author}]({author_url}) editou o filtro de abuso [number {number}]" "({filter_url})" -#: src/rc_formatters.py:241 +#: src/rc_formatters.py:361 #, python-brace-format msgid "" "[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" @@ -322,7 +451,7 @@ msgstr "" "[{author}]({author_url}) criou o filtro de abuso [number {number}]" "({filter_url})" -#: src/rc_formatters.py:245 +#: src/rc_formatters.py:365 #, python-brace-format msgid "" "[{author}]({author_url}) merged revision histories of [{article}]" @@ -331,17 +460,17 @@ msgstr "" "[{author}]({author_url}) mesclou o histórico de revisão de [{article}]" "({article_url}) para [{dest}]({dest_url}){comment}" -#: src/rc_formatters.py:249 +#: src/rc_formatters.py:369 #, python-brace-format msgid "Account [{author}]({author_url}) was created automatically" msgstr "Conta [{author}]({author_url}) foi criada automaticamente" -#: src/rc_formatters.py:252 src/rc_formatters.py:261 +#: src/rc_formatters.py:372 src/rc_formatters.py:381 #, python-brace-format msgid "Account [{author}]({author_url}) was created" msgstr "Conta [{author}]({author_url}) foi criada" -#: src/rc_formatters.py:255 +#: src/rc_formatters.py:375 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url})" @@ -350,7 +479,7 @@ msgstr "" "Conta [{article}]({article_url}) foi criada por [{author}]({author_url})" "{comment}" -#: src/rc_formatters.py:258 +#: src/rc_formatters.py:378 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url}) " @@ -359,7 +488,7 @@ msgstr "" "Conta [{article}]({article_url}) foi criada por [{author}]({author_url}) e a " "senha foi enviada por e-mail{comment}" -#: src/rc_formatters.py:264 +#: src/rc_formatters.py:384 #, python-brace-format msgid "" "[{author}]({author_url}) added an entry to the [interwiki table]" @@ -368,7 +497,7 @@ msgstr "" "[{author}]({author_url}) adicionou uma entrada à [tabela de interwiki]" "({table_url}) apontando para {website} com o prefixo {prefix}" -#: src/rc_formatters.py:270 +#: src/rc_formatters.py:390 #, python-brace-format msgid "" "[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " @@ -377,7 +506,7 @@ msgstr "" "[{author}]({author_url}) editou uma entrada na [tabela de Interwiki]" "({table_url}) apontando para {website} com o prefixo {prefix}" -#: src/rc_formatters.py:276 +#: src/rc_formatters.py:396 #, python-brace-format msgid "" "[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" @@ -385,7 +514,7 @@ msgstr "" "[{author}]({author_url}) excluiu uma entrada na [tabela de Interwiki]" "({table_url})" -#: src/rc_formatters.py:279 +#: src/rc_formatters.py:399 #, python-brace-format msgid "" "[{author}]({author_url}) changed the content model of the page [{article}]" @@ -394,138 +523,205 @@ msgstr "" "[{author}]({author_url}) mudou o modelo de conteúdo da página [{article}]" "({article_url}) de {old} para {new}{comment}" -#: src/rc_formatters.py:283 +#: src/rc_formatters.py:403 #, python-brace-format msgid "" "[{author}]({author_url}) edited the sprite for [{article}]({article_url})" msgstr "" "[{author}]({author_url}) editou o sprite para [{article}]({article_url})" -#: src/rc_formatters.py:286 +#: src/rc_formatters.py:406 #, python-brace-format msgid "" "[{author}]({author_url}) created the sprite sheet for [{article}]" "({article_url})" msgstr "" -"[{author}]({author_url})criou a folha de sprite para [{article}]" +"[{author}]({author_url}) criou a folha de sprite para [{article}]" "({article_url})" -#: src/rc_formatters.py:289 +#: src/rc_formatters.py:409 #, python-brace-format msgid "" "[{author}]({author_url}) edited the slice for [{article}]({article_url})" msgstr "[{author}]({author_url}) editou a peça para [{article}]({article_url})" -#: src/rc_formatters.py:294 +#: src/rc_formatters.py:414 #, python-brace-format msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) criou tabela no Cargo \"{table}\"" +msgstr "[{author}]({author_url}) criou a tabela \"{table}\" no Cargo" -#: src/rc_formatters.py:296 +#: src/rc_formatters.py:416 #, python-brace-format msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) excluiu a tabela no Cargo \"{table}\"" +msgstr "[{author}]({author_url}) excluiu a tabela \"{table}\" no Cargo" -#: src/rc_formatters.py:301 +#: src/rc_formatters.py:421 #, python-brace-format msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) recriou a tabela no Cargo \"{table}\"" +msgstr "[{author}]({author_url}) recriou a tabela \"{table}\" no Cargo" -#: src/rc_formatters.py:306 +#: src/rc_formatters.py:426 #, python-brace-format msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) substituiu a tabela no Cargo \"{table}\"" +msgstr "[{author}]({author_url}) substituiu a tabela \"{table}\" no Cargo" -#: src/rc_formatters.py:309 +#: src/rc_formatters.py:429 #, python-brace-format msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" -msgstr "[{author}]({author_url}) criou a [marcação]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) criou a [etiqueta]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:313 +#: src/rc_formatters.py:433 #, python-brace-format msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" -msgstr "[{author}]({author_url}) excluiu a [marcação]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) excluiu a [etiqueta]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:317 +#: src/rc_formatters.py:437 #, python-brace-format msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" -msgstr "[{author}]({author_url}) ativou a [marcação]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) ativou a [etiqueta]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:320 +#: src/rc_formatters.py:440 #, python-brace-format msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" -msgstr "[{author}]({author_url}) desativou a [marcação]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) desativou a [etiqueta]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:322 +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "[{author}]({author_url}) alterou as configurações da wiki ({reason})" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) excluiu uma wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) travou uma wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) modificou o espaço nominal *{namespace_name}* " +"em*{wiki_name}* ({comment})" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) excluiu o espaço nominal *{namespace_name}* em " +"*{wiki_name}* ({comment})" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) modificou o grupo de usuário *{group_name}* " +"({comment})" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) restaurou a wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) destravou a wiki *{wiki_name}* ({comment})" + +#: src/rc_formatters.py:473 msgid "An action has been hidden by administration." -msgstr "Uma ação foi ocultada pela administração." +msgstr "Uma ação foi oculta pela administração." -#: src/rc_formatters.py:329 +#: src/rc_formatters.py:480 #, python-brace-format msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -"Evento desconhecido `{event}` por [{author}]({author_url}), relatar no [" -"servidor de suporte](<{support}>)." +"Evento desconhecido `{event}` por [{author}]({author_url}), relate no " +"[servidor de suporte](<{support}>)." -#: src/rc_formatters.py:337 src/rc_formatters.py:621 +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "{user} acionou o \"{abuse_filter}\"" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "Realizado" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "Medida tomada" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "Título" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 msgid "No description provided" msgstr "Nenhuma descrição fornecida" -#: src/rc_formatters.py:384 +#: src/rc_formatters.py:524 msgid "(N!) " msgstr "(N!) " -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "m" msgstr "m" -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "b" msgstr "b" -#: src/rc_formatters.py:402 src/rc_formatters.py:407 +#: src/rc_formatters.py:542 src/rc_formatters.py:547 msgid "__Only whitespace__" msgstr "__Apenas espaço em branco__" -#: src/rc_formatters.py:412 +#: src/rc_formatters.py:552 msgid "Removed" msgstr "Removido" -#: src/rc_formatters.py:414 +#: src/rc_formatters.py:554 msgid "Added" msgstr "Adicionado" -#: src/rc_formatters.py:448 src/rc_formatters.py:487 +#: src/rc_formatters.py:588 src/rc_formatters.py:627 msgid "Options" msgstr "Opções" -#: src/rc_formatters.py:448 +#: src/rc_formatters.py:588 #, python-brace-format msgid "([preview]({link}) | [undo]({undolink}))" msgstr "([visualização]({link}) | [desfazer]({undolink}))" -#: src/rc_formatters.py:453 +#: src/rc_formatters.py:593 #, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Carregou uma nova versão de {name}" -#: src/rc_formatters.py:455 +#: src/rc_formatters.py:595 #, python-brace-format msgid "Reverted a version of {name}" msgstr "Reverteu uma versão do {name}" -#: src/rc_formatters.py:457 +#: src/rc_formatters.py:597 #, python-brace-format msgid "Uploaded {name}" msgstr "Carregado {name}" -#: src/rc_formatters.py:473 +#: src/rc_formatters.py:613 msgid "**No license!**" -msgstr "* * Sem licença!* *" +msgstr "**Sem licença!**" -#: src/rc_formatters.py:485 +#: src/rc_formatters.py:625 msgid "" "\n" "License: {}" @@ -533,341 +729,398 @@ msgstr "" "\n" "Licença: {}" -#: src/rc_formatters.py:487 +#: src/rc_formatters.py:627 #, python-brace-format msgid "([preview]({link}))" msgstr "([visualização]({link}))" -#: src/rc_formatters.py:492 +#: src/rc_formatters.py:632 #, python-brace-format msgid "Deleted page {article}" msgstr "Página {article} excluída" -#: src/rc_formatters.py:495 +#: src/rc_formatters.py:637 #, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "Redirecionado {article} excluído por sobrescrevendo" -#: src/rc_formatters.py:499 +#: src/rc_formatters.py:643 msgid "No redirect has been made" msgstr "Nenhum redirecionamento foi feito" -#: src/rc_formatters.py:500 +#: src/rc_formatters.py:644 msgid "A redirect has been made" msgstr "Foi feito um redirecionamento" -#: src/rc_formatters.py:501 +#: src/rc_formatters.py:645 #, python-brace-format msgid "Moved {redirect}{article} to {target}" msgstr "Movido {redirect}{article} para {target}" -#: src/rc_formatters.py:504 +#: src/rc_formatters.py:648 #, python-brace-format msgid "Moved {redirect}{article} to {title} over redirect" msgstr "Movido {redirect}{article} para {title} ao redirecionar" -#: src/rc_formatters.py:508 +#: src/rc_formatters.py:652 #, python-brace-format msgid "Moved protection settings from {redirect}{article} to {title}" msgstr "Configurações de proteção movidos de {redirect}{article} para {title}" -#: src/rc_formatters.py:533 +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "tempo de expiração desconhecido" + +#: src/rc_formatters.py:680 msgid "Blocked from editing the following pages: " msgstr "Bloqueado de editar as seguintes páginas: " -#: src/rc_formatters.py:542 +#: src/rc_formatters.py:689 msgid "Blocked from editing pages on following namespaces: " msgstr "Bloqueado de editar páginas nos seguintes espaços nominais: " -#: src/rc_formatters.py:553 +#: src/rc_formatters.py:700 msgid "Partial block details" msgstr "Detalhes do bloqueio parcial" -#: src/rc_formatters.py:554 +#: src/rc_formatters.py:701 #, python-brace-format msgid "Blocked {blocked_user} {time}" msgstr "Bloqueado {blocked_user} {time}" -#: src/rc_formatters.py:558 +#: src/rc_formatters.py:705 #, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Configurações de bloqueio alteradas para {blocked_user}" -#: src/rc_formatters.py:562 +#: src/rc_formatters.py:709 #, python-brace-format msgid "Unblocked {blocked_user}" msgstr "Desbloqueado {blocked_user}" -#: src/rc_formatters.py:567 +#: src/rc_formatters.py:714 #, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Deixou um comentário no perfil de {target}" -#: src/rc_formatters.py:569 +#: src/rc_formatters.py:716 msgid "Left a comment on their own profile" msgstr "Deixou um comentário em seu próprio perfil" -#: src/rc_formatters.py:574 +#: src/rc_formatters.py:721 #, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Respondeu a um comentário no perfil de {target}" -#: src/rc_formatters.py:576 +#: src/rc_formatters.py:723 msgid "Replied to a comment on their own profile" msgstr "Respondeu a um comentário em seu próprio perfil" -#: src/rc_formatters.py:581 +#: src/rc_formatters.py:728 #, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Editou um comentário no perfil de {target}" -#: src/rc_formatters.py:583 +#: src/rc_formatters.py:730 msgid "Edited a comment on their own profile" msgstr "Editou um comentário em seu próprio perfil" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 #, python-brace-format msgid "Edited {target}'s profile" msgstr "Editado perfil {target}" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 msgid "Edited their own profile" msgstr "Editou seu próprio perfil" -#: src/rc_formatters.py:588 +#: src/rc_formatters.py:735 #, python-brace-format msgid "Cleared the {field} field" msgstr "Limpo o campo {field}" -#: src/rc_formatters.py:590 +#: src/rc_formatters.py:737 #, python-brace-format msgid "{field} field changed to: {desc}" msgstr "campo {field} alterado para: {desc}" -#: src/rc_formatters.py:593 +#: src/rc_formatters.py:740 #, python-brace-format msgid "Purged a comment on {target}'s profile" msgstr "Eliminou um comentário no perfil de {target}" -#: src/rc_formatters.py:599 +#: src/rc_formatters.py:746 #, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Excluiu um comentário no perfil de {target}" -#: src/rc_formatters.py:603 +#: src/rc_formatters.py:750 #, python-brace-format msgid "Changed group membership for {target}" msgstr "Alterado grupo do membro de {target}" -#: src/rc_formatters.py:607 +#: src/rc_formatters.py:754 #, python-brace-format msgid "{target} got autopromoted to a new usergroup" msgstr "{target} recebeu um promovido para um novo grupo de usuários" -#: src/rc_formatters.py:622 +#: src/rc_formatters.py:769 #, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "Grupos alterados de {old_groups} para {new_groups} {reason}" -#: src/rc_formatters.py:626 +#: src/rc_formatters.py:773 #, python-brace-format msgid "Protected {target}" msgstr "Protegido {target}" -#: src/rc_formatters.py:632 +#: src/rc_formatters.py:779 #, python-brace-format msgid "Changed protection level for {article}" msgstr "Nível de proteção alterado para {article}" -#: src/rc_formatters.py:638 +#: src/rc_formatters.py:785 #, python-brace-format msgid "Removed protection from {article}" msgstr "Removida a proteção de {article}" -#: src/rc_formatters.py:642 +#: src/rc_formatters.py:789 #, python-brace-format msgid "Changed visibility of revision on page {article} " msgid_plural "Changed visibility of {amount} revisions on page {article} " msgstr[0] "Visibilidade alterada da revisão na página {article} " msgstr[1] "Visibilidade alterada de {amount} revisões na página {article} " -#: src/rc_formatters.py:647 +#: src/rc_formatters.py:801 #, python-brace-format msgid "Imported {article} with {count} revision" msgid_plural "Imported {article} with {count} revisions" msgstr[0] "Importou {article} com {count} revisão" msgstr[1] "{article} importado com {count} revisões" -#: src/rc_formatters.py:652 +#: src/rc_formatters.py:806 #, python-brace-format msgid "Restored {article}" -msgstr "Página {article} excluída" +msgstr "Página {article} restaurada" -#: src/rc_formatters.py:655 +#: src/rc_formatters.py:809 msgid "Changed visibility of log events" msgstr "Visibilidade alterada de eventos de registros" -#: src/rc_formatters.py:658 +#: src/rc_formatters.py:819 msgid "Imported interwiki" msgstr "Interwiki importado" -#: src/rc_formatters.py:661 +#: src/rc_formatters.py:822 #, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Número de filtro de abuso editado {number}" -#: src/rc_formatters.py:664 +#: src/rc_formatters.py:825 #, python-brace-format msgid "Created abuse filter number {number}" msgstr "Criado filtro de abuso número {number}" -#: src/rc_formatters.py:667 +#: src/rc_formatters.py:828 #, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Históricos de revisão mesclados de {article} em {dest}" -#: src/rc_formatters.py:671 +#: src/rc_formatters.py:832 msgid "Created account automatically" msgstr "Conta criada automaticamente" -#: src/rc_formatters.py:674 src/rc_formatters.py:683 +#: src/rc_formatters.py:835 src/rc_formatters.py:844 msgid "Created account" msgstr "Conta criada" -#: src/rc_formatters.py:677 +#: src/rc_formatters.py:838 #, python-brace-format msgid "Created account {article}" msgstr "Conta criada {article}" -#: src/rc_formatters.py:680 +#: src/rc_formatters.py:841 #, python-brace-format msgid "Created account {article} and password was sent by email" msgstr "Conta criada {article} e a senha foi enviada por e-mail" -#: src/rc_formatters.py:686 +#: src/rc_formatters.py:847 msgid "Added an entry to the interwiki table" msgstr "Adicionado uma entrada para a tabela interwiki" -#: src/rc_formatters.py:687 src/rc_formatters.py:693 +#: src/rc_formatters.py:848 src/rc_formatters.py:854 #, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Prefixo: {prefix}, site: {website} | {desc}" -#: src/rc_formatters.py:692 +#: src/rc_formatters.py:853 msgid "Edited an entry in interwiki table" msgstr "Editou uma entrada na tabela interwiki" -#: src/rc_formatters.py:698 +#: src/rc_formatters.py:859 msgid "Deleted an entry in interwiki table" msgstr "Excluiu uma entrada na tabela interwiki" -#: src/rc_formatters.py:699 +#: src/rc_formatters.py:860 #, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Prefixo: {prefix} | {desc}" -#: src/rc_formatters.py:702 +#: src/rc_formatters.py:863 #, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Alterou o modelo de conteúdo da página {article}" -#: src/rc_formatters.py:703 +#: src/rc_formatters.py:864 #, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Modelo alterado de {old} para {new}: {reason}" -#: src/rc_formatters.py:708 +#: src/rc_formatters.py:869 #, python-brace-format msgid "Edited the sprite for {article}" msgstr "Editou o sprite para {article}" -#: src/rc_formatters.py:711 +#: src/rc_formatters.py:872 #, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Criou a folha de sprites para {article}" -#: src/rc_formatters.py:714 +#: src/rc_formatters.py:875 #, python-brace-format msgid "Edited the slice for {article}" msgstr "Editou a fatia de {article}" -#: src/rc_formatters.py:720 +#: src/rc_formatters.py:881 #, python-brace-format msgid "Created the Cargo table \"{table}\"" msgstr "Criou a tabela no Cargo \"{table}\"" -#: src/rc_formatters.py:724 +#: src/rc_formatters.py:885 #, python-brace-format msgid "Deleted the Cargo table \"{table}\"" msgstr "Excluiu a tabela no Cargo \"{table}\"" -#: src/rc_formatters.py:731 +#: src/rc_formatters.py:892 #, python-brace-format msgid "Recreated the Cargo table \"{table}\"" msgstr "Recriou a tabela no Cargo \"{table}\"" -#: src/rc_formatters.py:738 +#: src/rc_formatters.py:899 #, python-brace-format msgid "Replaced the Cargo table \"{table}\"" msgstr "Substituiu a tabela no Cargo \"{table}\"" -#: src/rc_formatters.py:742 +#: src/rc_formatters.py:903 #, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Criei uma etiqueta \"{tag}\"" -#: src/rc_formatters.py:746 +#: src/rc_formatters.py:907 #, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Excluiu uma etiqueta \"{tag}\"" -#: src/rc_formatters.py:750 +#: src/rc_formatters.py:911 #, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Ativou uma etiqueta \"{tag}\"" -#: src/rc_formatters.py:753 +#: src/rc_formatters.py:914 #, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Desativou uma etiqueta \"{tag}\"" -#: src/rc_formatters.py:756 +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "Configurações de wiki alteradas" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "Excluiu uma \"{wiki}\" wiki" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "Uma wiki \"{wiki}\" travada" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "Modificado o espaço nominal \"{namespace_name}\"" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "Wiki" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "Excluiu o espaço nominal \"{namespace_name}\"" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "Modificou o grupo de usuário \"{usergroup_name}\"" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "Restaurado uma wiki \"{wiki}\"" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "Destravada a wiki \"{wiki}\"" + +#: src/rc_formatters.py:946 msgid "Action has been hidden by administration" msgstr "A ação foi ocultada pela administração" -#: src/rc_formatters.py:757 -msgid "Unknown" -msgstr "Desconhecido" - -#: src/rc_formatters.py:761 +#: src/rc_formatters.py:951 #, python-brace-format msgid "Unknown event `{event}`" msgstr "Evento desconhecido `{event}`" -#: src/rc_formatters.py:767 src/rc_formatters.py:769 +#: src/rc_formatters.py:957 src/rc_formatters.py:959 msgid "Report this on the support server" msgstr "Reportar isso no servidor de suporte" -#: src/rc_formatters.py:786 +#: src/rc_formatters.py:976 msgid "Tags" msgstr "Etiquetas" -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid "**Added**: " msgstr "**Adicionado**: " -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid " and {} more\n" msgstr " e {} mais\n" -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid "**Removed**: " msgstr "**Removida**: " -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid " and {} more" msgstr " e {} mais" -#: src/rc_formatters.py:791 +#: src/rc_formatters.py:981 msgid "Changed categories" msgstr "Mudanças de categorias" + +#~ msgid "their own profile" +#~ msgstr "seu próprio perfil" + +#~ msgid "their own" +#~ msgstr "próprio" + +#, python-brace-format +#~ msgid "[{target}]({target_url})'s" +#~ msgstr "[{target}]({target_url})" + +#, python-brace-format +#~ msgid "[their own]({target_url})" +#~ msgstr "[seu próprio]({target_url})" diff --git a/locale/pt-br/LC_MESSAGES/rcgcdw.mo b/locale/pt-br/LC_MESSAGES/rcgcdw.mo index 7c6129e..81225f2 100644 Binary files a/locale/pt-br/LC_MESSAGES/rcgcdw.mo and b/locale/pt-br/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/pt-br/LC_MESSAGES/rcgcdw.po b/locale/pt-br/LC_MESSAGES/rcgcdw.po index 03f576a..9f09175 100644 --- a/locale/pt-br/LC_MESSAGES/rcgcdw.po +++ b/locale/pt-br/LC_MESSAGES/rcgcdw.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:21+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-09-03 13:10+0200\n" -"Last-Translator: Eduaddad \n" +"Last-Translator: Eduaddad <>\n" "Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" @@ -19,183 +19,183 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n > 1;\n" "X-Generator: Poedit 2.4.1\n" -#: src/rcgcdw.py:113 src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 -#: src/rcgcdw.py:121 src/rcgcdw.py:123 src/rcgcdw.py:125 +#: src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 src/rcgcdw.py:121 +#: src/rcgcdw.py:123 src/rcgcdw.py:125 src/rcgcdw.py:127 #, python-brace-format msgid "{value} (avg. {avg})" msgstr "{value} (med. {avg})" -#: src/rcgcdw.py:145 +#: src/rcgcdw.py:147 msgid "Daily overview" msgstr "Visão geral diária" -#: src/rcgcdw.py:153 +#: src/rcgcdw.py:155 msgid "No activity" msgstr "Sem atividade" -#: src/rcgcdw.py:177 +#: src/rcgcdw.py:179 msgid " ({} action)" msgid_plural " ({} actions)" msgstr[0] " ({} açao)" msgstr[1] " ({} ações)" -#: src/rcgcdw.py:179 +#: src/rcgcdw.py:181 msgid " ({} edit)" msgid_plural " ({} edits)" msgstr[0] " ({} editado)" msgstr[1] " ({} edições)" -#: src/rcgcdw.py:184 +#: src/rcgcdw.py:186 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] " UTC ({} ação)" msgstr[1] " UTC ({} ações)" -#: src/rcgcdw.py:186 src/rcgcdw.py:187 src/rcgcdw.py:191 +#: src/rcgcdw.py:188 src/rcgcdw.py:189 src/rcgcdw.py:193 msgid "But nobody came" msgstr "Mas ninguém veio" -#: src/rcgcdw.py:194 +#: src/rcgcdw.py:196 msgid "Most active user" msgid_plural "Most active users" msgstr[0] "Usuário mais ativo" msgstr[1] "Usuários mais ativos" -#: src/rcgcdw.py:195 +#: src/rcgcdw.py:197 msgid "Most edited article" msgid_plural "Most edited articles" msgstr[0] "Artigo mais editado" msgstr[1] "Artigos mais editados" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Edits made" msgstr "Edições feitas" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "New files" msgstr "Novos arquivos" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Admin actions" msgstr "Ações de administração" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "Bytes changed" msgstr "Bytes alterados" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "New articles" msgstr "Novos artigos" -#: src/rcgcdw.py:198 +#: src/rcgcdw.py:200 msgid "Unique contributors" msgstr "Contribuidores exclusivos" -#: src/rcgcdw.py:199 +#: src/rcgcdw.py:201 msgid "Most active hour" msgid_plural "Most active hours" msgstr[0] "Hora mais ativa" msgstr[1] "Horas mais ativas" -#: src/rcgcdw.py:200 +#: src/rcgcdw.py:202 msgid "Day score" msgstr "Pontuação do dia" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "director" msgstr "diretor" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bot" msgstr "robô" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "editor" msgstr "editor" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "directors" msgstr "diretores" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "sysop" msgstr "administrador" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bureaucrat" msgstr "burocrata" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "reviewer" msgstr "revisor" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autoreview" msgstr "revisão automática" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autopatrol" msgstr "patrulha automatica" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "wiki_guardian" msgstr "guardião_wiki" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "second" msgid_plural "seconds" msgstr[0] "segundo" msgstr[1] "segundos" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "minute" msgid_plural "minutes" msgstr[0] "minuto" msgstr[1] "minutos" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "hour" msgid_plural "hours" msgstr[0] "hora" msgstr[1] "horas" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "day" msgid_plural "days" msgstr[0] "dia" msgstr[1] "dias" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "week" msgid_plural "weeks" msgstr[0] "semana" msgstr[1] "semanas" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "month" msgid_plural "months" msgstr[0] "mês" msgstr[1] "meses" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "year" msgid_plural "years" msgstr[0] "ano" msgstr[1] "anos" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "millennium" msgid_plural "millennia" msgstr[0] "milénio" msgstr[1] "milénios" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "decade" msgid_plural "decades" msgstr[0] "década" msgstr[1] "décadas" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "century" msgid_plural "centuries" msgstr[0] "século" diff --git a/locale/pt-br/LC_MESSAGES/redaction.mo b/locale/pt-br/LC_MESSAGES/redaction.mo new file mode 100644 index 0000000..d155f9d Binary files /dev/null and b/locale/pt-br/LC_MESSAGES/redaction.mo differ diff --git a/locale/pt-br/LC_MESSAGES/redaction.po b/locale/pt-br/LC_MESSAGES/redaction.po new file mode 100644 index 0000000..423b851 --- /dev/null +++ b/locale/pt-br/LC_MESSAGES/redaction.po @@ -0,0 +1,25 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 15:17+0100\n" +"PO-Revision-Date: 2020-11-21 01:09+0000\n" +"Last-Translator: Eduaddad \n" +"Language-Team: Portuguese (Brazil) \n" +"Language: pt-br\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.2.1\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "Removido" diff --git a/locale/ru/LC_MESSAGES/discussion_formatters.mo b/locale/ru/LC_MESSAGES/discussion_formatters.mo index a9cd082..565e4fc 100644 Binary files a/locale/ru/LC_MESSAGES/discussion_formatters.mo and b/locale/ru/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/ru/LC_MESSAGES/discussion_formatters.po b/locale/ru/LC_MESSAGES/discussion_formatters.po index 4accd7e..56be353 100644 --- a/locale/ru/LC_MESSAGES/discussion_formatters.po +++ b/locale/ru/LC_MESSAGES/discussion_formatters.po @@ -1,14 +1,14 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # -# Frisk , 2020. +# Frisk <>, 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: 2020-04-23 23:33+0200\n" -"Last-Translator: Frisk \n" +"Last-Translator: Frisk <>\n" "Language-Team: \n" "Language: en_US\n" "MIME-Version: 1.0\n" @@ -17,40 +17,44 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 19.12.3\n" -#: src/discussion_formatters.py:32 +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:34 +#: src/discussion_formatters.py:36 #, python-brace-format msgid "" "[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:36 +#: src/discussion_formatters.py:38 #, python-brace-format msgid "" "[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:41 +#: src/discussion_formatters.py:43 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " "to [{title}](<{url}f/p/{threadId}>) in {forumName}" msgstr "" -#: src/discussion_formatters.py:43 src/discussion_formatters.py:52 -#: src/discussion_formatters.py:129 src/discussion_formatters.py:142 +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 msgid "unknown" msgstr "" -#: src/discussion_formatters.py:47 +#: src/discussion_formatters.py:49 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" @@ -58,7 +62,7 @@ msgid "" "Message_Wall:{user_wall}>)" msgstr "" -#: src/discussion_formatters.py:49 +#: src/discussion_formatters.py:51 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" @@ -67,91 +71,90 @@ msgid "" "(<{url}wiki/Message_Wall:{user_wall}>)" msgstr "" -#: src/discussion_formatters.py:54 +#: src/discussion_formatters.py:57 #, python-brace-format msgid "" -"[{author}]({author_url}) created a [comment](<{url}wiki/{article}?" -"commentId={commentId}>) on [{article}](<{url}wiki/{article}>)" -msgstr "" - -#: src/discussion_formatters.py:56 -#, python-brace-format -msgid "" -"[{author}]({author_url}) created a [reply](<{url}wiki/{article}?" -"threadId={threadId}) to a [comment](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) on [{article}](<{url}wiki/{article}" -">)" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" msgstr "" #: src/discussion_formatters.py:62 #, python-brace-format msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -#: src/discussion_formatters.py:90 +#: src/discussion_formatters.py:98 #, python-brace-format msgid "Created \"{title}\"" msgstr "" -#: src/discussion_formatters.py:94 +#: src/discussion_formatters.py:102 #, python-brace-format msgid "Created a poll \"{title}\"" msgstr "" -#: src/discussion_formatters.py:101 +#: src/discussion_formatters.py:109 msgid "Option {}" msgstr "" -#: src/discussion_formatters.py:102 +#: src/discussion_formatters.py:110 #, python-brace-format msgid "__[View image]({image_url})__" msgstr "" -#: src/discussion_formatters.py:106 +#: src/discussion_formatters.py:114 #, python-brace-format msgid "Created a quiz \"{title}\"" msgstr "" -#: src/discussion_formatters.py:121 src/discussion_formatters.py:123 +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 msgid "Tags" msgstr "" -#: src/discussion_formatters.py:121 +#: src/discussion_formatters.py:129 msgid "{} tags" msgstr "" -#: src/discussion_formatters.py:126 +#: src/discussion_formatters.py:134 #, python-brace-format msgid "Replied to \"{title}\"" msgstr "" -#: src/discussion_formatters.py:135 +#: src/discussion_formatters.py:143 #, python-brace-format msgid "Created \"{title}\" on {user}'s Message Wall" msgstr "" -#: src/discussion_formatters.py:139 +#: src/discussion_formatters.py:147 #, python-brace-format msgid "Replied to \"{title}\" on {user}'s Message Wall" msgstr "" -#: src/discussion_formatters.py:146 +#: src/discussion_formatters.py:154 #, python-brace-format msgid "Commented on {article}" msgstr "" -#: src/discussion_formatters.py:150 +#: src/discussion_formatters.py:158 #, python-brace-format msgid "Replied to a comment on {article}" msgstr "" -#: src/discussion_formatters.py:154 +#: src/discussion_formatters.py:162 #, python-brace-format msgid "Unknown event `{event}`" msgstr "" -#: src/discussion_formatters.py:160 src/discussion_formatters.py:162 +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 msgid "Report this on the support server" msgstr "" diff --git a/locale/ru/LC_MESSAGES/misc.mo b/locale/ru/LC_MESSAGES/misc.mo index a9cd082..88a0928 100644 Binary files a/locale/ru/LC_MESSAGES/misc.mo and b/locale/ru/LC_MESSAGES/misc.mo differ diff --git a/locale/ru/LC_MESSAGES/misc.po b/locale/ru/LC_MESSAGES/misc.po index d16d447..49b33ac 100644 --- a/locale/ru/LC_MESSAGES/misc.po +++ b/locale/ru/LC_MESSAGES/misc.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 14:00+0200\n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" "PO-Revision-Date: 2020-03-18 13:59+0100\n" "Last-Translator: BabylonAS\n" "Language-Team: \n" @@ -19,59 +19,59 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 2.3\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "Местоположение" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "О себе" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "Ссылка на учётную запись Google" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "Ссылка на учётную запись Facebook" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "Ссылка на учётную запись Twitter" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "Ссылка на учётную запись Reddit" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "Ссылка на учётную запись Twitch" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "Ссылка на учётную запись PSN" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "Ссылка на учётную запись ВКонтакте" -#: src/misc.py:42 +#: src/misc.py:45 msgid "XBL link" msgstr "Ссылка на учётную запись XBL" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "Ссылка на учётную запись Steam" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "Ссылка на учётную запись Discord" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "Ссылка на учётную запись Battle.net" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" @@ -79,10 +79,10 @@ msgstr "" "\n" "__И ещё__" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "Неизвестно" -#: src/misc.py:425 +#: src/misc.py:273 msgid "unknown" msgstr "неизвестно" diff --git a/locale/ru/LC_MESSAGES/rc.mo b/locale/ru/LC_MESSAGES/rc.mo index 53811f2..e01e578 100644 Binary files a/locale/ru/LC_MESSAGES/rc.mo and b/locale/ru/LC_MESSAGES/rc.mo differ diff --git a/locale/ru/LC_MESSAGES/rc.po b/locale/ru/LC_MESSAGES/rc.po index 861298f..5c1af41 100644 --- a/locale/ru/LC_MESSAGES/rc.po +++ b/locale/ru/LC_MESSAGES/rc.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:22+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-03-18 13:59+0100\n" "Last-Translator: BabylonAS\n" "Language-Team: \n" @@ -19,24 +19,24 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 2.3\n" -#: src/rc.py:150 -#, python-brace-format -msgid "Connection to {wiki} seems to be stable now." -msgstr "Соединение с {wiki} сейчас кажется стабильным." - -#: src/rc.py:151 src/rc.py:266 -msgid "Connection status" -msgstr "Статус соединения" - -#: src/rc.py:265 +#: src/rc.py:319 #, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki}, вероятно, не работает или недоступна." -#: src/rc.py:334 +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "Статус соединения" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "Соединение с {wiki} сейчас кажется стабильным." + +#: src/rc.py:401 msgid "~~hidden~~" msgstr "~~скрыто~~" -#: src/rc.py:340 +#: src/rc.py:405 msgid "hidden" msgstr "скрыто" diff --git a/locale/ru/LC_MESSAGES/rc_formatters.mo b/locale/ru/LC_MESSAGES/rc_formatters.mo index 1de4bd1..b7b3f9a 100644 Binary files a/locale/ru/LC_MESSAGES/rc_formatters.mo and b/locale/ru/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/ru/LC_MESSAGES/rc_formatters.po b/locale/ru/LC_MESSAGES/rc_formatters.po index c02ef42..3314762 100644 --- a/locale/ru/LC_MESSAGES/rc_formatters.po +++ b/locale/ru/LC_MESSAGES/rc_formatters.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-10 16:15+0200\n" -"PO-Revision-Date: 2020-09-03 11:19+0000\n" -"Last-Translator: MakandIv \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-18 07:47+0000\n" +"Last-Translator: MakandIv <>\n" "Language-Team: Russian \n" "Language: ru\n" @@ -20,37 +20,126 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.2.1\n" -#: src/rc_formatters.py:42 -#, python-brace-format +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" +"[{author}]({author_url}) переименовал страницу {redirect}*{article}* поверх " +"перенаправления в [{target}]({target_url}) {made_a_redirect}{comment}" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "Неизвестно" + +#: src/rc_formatters.py:117 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "" "[{author}]({author_url}) отредактировал страницу [{article}]({edit_link})" "{comment} ({sign}{edit_size})" -#: src/rc_formatters.py:44 -#, python-brace-format +#: src/rc_formatters.py:119 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "" "[{author}]({author_url}) создал страницу [{article}]({edit_link}){comment} " "({sign}{edit_size})" -#: src/rc_formatters.py:47 +#: src/rc_formatters.py:122 #, python-brace-format msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" msgstr "[{author}]({author_url}) загрузил [{file}]({file_link}){comment}" -#: src/rc_formatters.py:54 +#: src/rc_formatters.py:129 #, python-brace-format msgid "" "[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" msgstr "" "[{author}]({author_url}) возвратил версию [{file}]({file_link}) {comment}" -#: src/rc_formatters.py:58 +#: src/rc_formatters.py:133 #, python-brace-format msgid "" "[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" @@ -58,13 +147,13 @@ msgid "" msgstr "" "[{author}]({author_url}) загрузил новую версию [{file}]({file_link}){comment}" -#: src/rc_formatters.py:61 +#: src/rc_formatters.py:136 #, python-brace-format msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" msgstr "" "[{author}]({author_url}) удалил страницу [{page}]({page_link}){comment}" -#: src/rc_formatters.py:65 +#: src/rc_formatters.py:142 #, python-brace-format msgid "" "[{author}]({author_url}) deleted redirect by overwriting [{page}]" @@ -73,15 +162,15 @@ msgstr "" "[{author}]({author_url}) удалил перенаправление с помощью перезаписи [{page}]" "({page_link}){comment}" -#: src/rc_formatters.py:69 src/rc_formatters.py:74 +#: src/rc_formatters.py:148 src/rc_formatters.py:153 msgid "without making a redirect" msgstr "без перенаправления" -#: src/rc_formatters.py:69 src/rc_formatters.py:75 +#: src/rc_formatters.py:148 src/rc_formatters.py:154 msgid "with a redirect" msgstr "с перенаправлением" -#: src/rc_formatters.py:70 +#: src/rc_formatters.py:149 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" @@ -90,7 +179,7 @@ msgstr "" "[{author}]({author_url}) переименовал страницу {redirect}*{article}* в " "[{target}]({target_url}) {made_a_redirect}{comment}" -#: src/rc_formatters.py:76 +#: src/rc_formatters.py:155 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* over redirect to " @@ -99,7 +188,7 @@ msgstr "" "[{author}]({author_url}) переименовал страницу {redirect}*{article}* поверх " "перенаправления в [{target}]({target_url}) {made_a_redirect}{comment}" -#: src/rc_formatters.py:81 +#: src/rc_formatters.py:160 #, python-brace-format msgid "" "[{author}]({author_url}) moved protection settings from {redirect}*{article}" @@ -108,42 +197,42 @@ msgstr "" "[{author}]({author_url}) перенёс параметры защиты со страницы {redirect}" "*{article}* на страницу [{target}]({target_url}){comment}" -#: src/rc_formatters.py:92 src/rc_formatters.py:518 +#: src/rc_formatters.py:171 src/rc_formatters.py:662 #, fuzzy msgid "for infinity and beyond" msgstr "навеки и навсегда" -#: src/rc_formatters.py:101 src/rc_formatters.py:526 +#: src/rc_formatters.py:180 src/rc_formatters.py:670 #, python-brace-format msgid "for {num} {translated_length}" msgstr "на {num}{translated_length}" -#: src/rc_formatters.py:107 src/rc_formatters.py:529 +#: src/rc_formatters.py:186 src/rc_formatters.py:674 msgid "until {}" msgstr "" -#: src/rc_formatters.py:111 +#: src/rc_formatters.py:190 msgid " on pages: " msgstr " на страницах: " -#: src/rc_formatters.py:118 src/rc_formatters.py:540 +#: src/rc_formatters.py:197 src/rc_formatters.py:687 msgid " and namespaces: " msgstr " и в пространствах имён: " -#: src/rc_formatters.py:120 +#: src/rc_formatters.py:199 msgid " on namespaces: " msgstr " в пространствах имён: " -#: src/rc_formatters.py:132 -#, fuzzy, python-brace-format +#: src/rc_formatters.py:211 +#, python-brace-format msgid "" "[{author}]({author_url}) blocked [{user}]({user_url}) {time}" "{restriction_desc}{comment}" msgstr "" "[{author}]({author_url}) заблокировал участника [{user}]({user_url}) на срок " -"«{time}»{comment}" +"«{time}»{restriction_desc}{comment}" -#: src/rc_formatters.py:136 +#: src/rc_formatters.py:215 #, python-brace-format msgid "" "[{author}]({author_url}) changed block settings for [{blocked_user}]" @@ -152,7 +241,7 @@ msgstr "" "[{author}]({author_url}) изменил параметры блокировки для участника " "[{blocked_user}]({user_url}){comment}" -#: src/rc_formatters.py:140 +#: src/rc_formatters.py:219 #, python-brace-format msgid "" "[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" @@ -160,79 +249,122 @@ msgstr "" "[{author}]({author_url}) разблокировал участника [{blocked_user}]({user_url})" "{comment}" -#: src/rc_formatters.py:143 -#, python-brace-format +#: src/rc_formatters.py:224 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) left a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" msgstr "" "[{author}]({author_url}) оставил [комментарий]({comment}) на профиле " "участника {target}" -#: src/rc_formatters.py:143 -msgid "their own profile" -msgstr "на своём профиле" - -#: src/rc_formatters.py:146 -#, python-brace-format +#: src/rc_formatters.py:226 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) replied to a [comment]({comment}) on {target} " +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) оставил [комментарий]({comment}) на профиле " +"участника {target}" + +#: src/rc_formatters.py:232 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " "profile" msgstr "" "[{author}]({author_url}) ответил на [комментарий]({comment}) на профиле " "участника {target}" -#: src/rc_formatters.py:149 src/rc_formatters.py:155 src/rc_formatters.py:166 -#: src/rc_formatters.py:170 -msgid "their own" -msgstr "на своём" - -#: src/rc_formatters.py:152 -#, python-brace-format +#: src/rc_formatters.py:238 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" +"[{author}]({author_url}) ответил на [комментарий]({comment}) на профиле " +"участника {target}" + +#: src/rc_formatters.py:246 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" msgstr "" "[{author}]({author_url}) отредактировал [комментарий]({comment}) на профиле " "участника {target}" -#: src/rc_formatters.py:158 -#, python-brace-format -msgid "[{author}]({author_url}) purged a comment on {target} profile" +#: src/rc_formatters.py:252 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) отредактировал [комментарий]({comment}) на профиле " +"участника {target}" + +#: src/rc_formatters.py:259 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" msgstr "[{author}]({author_url}) удалил комментарий в профиле {target}" -#: src/rc_formatters.py:168 -#, python-brace-format -msgid "[{author}]({author_url}) deleted a comment on {target} profile" +#: src/rc_formatters.py:261 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "[{author}]({author_url}) удалил комментарий в профиле {target}" + +#: src/rc_formatters.py:265 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" msgstr "" "[{author}]({author_url}) удалил комментарий на профиле участника {target}" -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[{target}]({target_url})'s" -msgstr "[{target}]({target_url})" +#: src/rc_formatters.py:267 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" +"[{author}]({author_url}) удалил комментарий на профиле участника {target}" -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[their own]({target_url})" -msgstr "[на своём]({target_url})" - -#: src/rc_formatters.py:175 -#, python-brace-format +#: src/rc_formatters.py:273 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" msgstr "" "[{author}]({author_url}) отредактировал поле «{field}» на профиле участника " "{target}. *({desc})*" -#: src/rc_formatters.py:189 src/rc_formatters.py:191 src/rc_formatters.py:618 -#: src/rc_formatters.py:620 +#: src/rc_formatters.py:279 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" +"[{author}]({author_url}) отредактировал поле «{field}» на профиле участника " +"{target}. *({desc})*" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 msgid "none" msgstr "ничего" -#: src/rc_formatters.py:197 src/rc_formatters.py:605 +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" +"[{author}]({author_url}) изменил модель содержимого страницы [{target}]" +"({target_url}) с {old_groups} на {new_groups}{comment}" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" +"{author} изменил модель содержимого страницы [{target}]({target_url}) с " +"{old_groups} на {new_groups}{comment}" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 msgid "System" msgstr "Система" -#: src/rc_formatters.py:202 +#: src/rc_formatters.py:306 #, python-brace-format msgid "" "[{author}]({author_url}) protected [{article}]({article_url}) with the " @@ -241,12 +373,12 @@ msgstr "" "[{author}]({author_url}) защитил страницу [{article}]({article_url}) со " "следующими настройками: {settings}{comment}" -#: src/rc_formatters.py:204 src/rc_formatters.py:212 src/rc_formatters.py:628 -#: src/rc_formatters.py:634 +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 msgid " [cascading]" msgstr " [каскадно]" -#: src/rc_formatters.py:209 +#: src/rc_formatters.py:313 #, python-brace-format msgid "" "[{author}]({author_url}) modified protection settings of [{article}]" @@ -255,7 +387,7 @@ msgstr "" "[{author}]({author_url}) изменил настройки защиты страницы [{article}]" "({article_url}) на: {settings}{comment}" -#: src/rc_formatters.py:216 +#: src/rc_formatters.py:320 #, python-brace-format msgid "" "[{author}]({author_url}) removed protection from [{article}]({article_url})" @@ -264,7 +396,7 @@ msgstr "" "[{author}]({author_url}) снял защиту со страницу [{article}]({article_url})" "{comment}" -#: src/rc_formatters.py:220 +#: src/rc_formatters.py:324 #, python-brace-format msgid "" "[{author}]({author_url}) changed visibility of revision on page [{article}]" @@ -282,7 +414,7 @@ msgstr[2] "" "[{author}]({author_url}) изменил видимость {amount} правок на странице " "[{article}]({article_url}){comment}" -#: src/rc_formatters.py:225 +#: src/rc_formatters.py:337 #, python-brace-format msgid "" "[{author}]({author_url}) imported [{article}]({article_url}) with {count} " @@ -300,24 +432,24 @@ msgstr[2] "" "[{author}]({author_url}) импортировал страницу [{article}]({article_url}) с " "{count} правками{comment}" -#: src/rc_formatters.py:230 +#: src/rc_formatters.py:342 #, python-brace-format msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" msgstr "" "[{author}]({author_url}) восстановил страницу [{article}]({article_url})" "{comment}" -#: src/rc_formatters.py:232 +#: src/rc_formatters.py:344 #, python-brace-format msgid "[{author}]({author_url}) changed visibility of log events{comment}" msgstr "[{author}]({author_url}) изменил видимость событий журнала{comment}" -#: src/rc_formatters.py:234 +#: src/rc_formatters.py:354 #, python-brace-format msgid "[{author}]({author_url}) imported interwiki{comment}" msgstr "[{author}]({author_url}) импортировал интервики{comment}" -#: src/rc_formatters.py:237 +#: src/rc_formatters.py:357 #, python-brace-format msgid "" "[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" @@ -325,7 +457,7 @@ msgstr "" "[{author}]({author_url}) отредактировал фильтр злоупотреблений [под номером " "{number}]({filter_url})" -#: src/rc_formatters.py:241 +#: src/rc_formatters.py:361 #, python-brace-format msgid "" "[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" @@ -333,7 +465,7 @@ msgstr "" "[{author}]({author_url}) создал фильтр злоупотреблений [под номером {number}]" "({filter_url})" -#: src/rc_formatters.py:245 +#: src/rc_formatters.py:365 #, python-brace-format msgid "" "[{author}]({author_url}) merged revision histories of [{article}]" @@ -342,35 +474,35 @@ msgstr "" "[{author}]({author_url}) объединил истории версий [{article}]({article_url}) " "с [{dest}]({dest_url}){comment}" -#: src/rc_formatters.py:249 +#: src/rc_formatters.py:369 #, python-brace-format msgid "Account [{author}]({author_url}) was created automatically" msgstr "Учётная запись [{author}]({author_url}) была автоматически создана" -#: src/rc_formatters.py:252 src/rc_formatters.py:261 +#: src/rc_formatters.py:372 src/rc_formatters.py:381 #, python-brace-format msgid "Account [{author}]({author_url}) was created" msgstr "Учётная запись [{author}]({author_url}) была создана" -#: src/rc_formatters.py:255 +#: src/rc_formatters.py:375 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url})" "{comment}" msgstr "" -"Учётная запись [{article}]({article_url}) была создана " -"[{author}]({author_url}){comment}" +"Учётная запись [{article}]({article_url}) была создана [{author}]" +"({author_url}){comment}" -#: src/rc_formatters.py:258 +#: src/rc_formatters.py:378 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url}) " "and password was sent by email{comment}" msgstr "" -"Учётная запись [{article}]({article_url}) была создана " -"[{author}]({author_url}) и пароль был отправлен на электронную почту{comment}" +"Учётная запись [{article}]({article_url}) была создана [{author}]" +"({author_url}) и пароль был отправлен на электронную почту{comment}" -#: src/rc_formatters.py:264 +#: src/rc_formatters.py:384 #, python-brace-format msgid "" "[{author}]({author_url}) added an entry to the [interwiki table]" @@ -379,7 +511,7 @@ msgstr "" "[{author}]({author_url}) добавил запись в [таблицу интервики]({table_url}), " "указывающая на {website} с префиксом {prefix}" -#: src/rc_formatters.py:270 +#: src/rc_formatters.py:390 #, python-brace-format msgid "" "[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " @@ -388,14 +520,14 @@ msgstr "" "[{author}]({author_url}) отредактировал запись в [таблице интервики]" "({table_url}), указывающая на {website} с префиксом {prefix}" -#: src/rc_formatters.py:276 +#: src/rc_formatters.py:396 #, python-brace-format msgid "" "[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" msgstr "" "[{author}]({author_url}) удалил запись из [таблицы интервики]({table_url})" -#: src/rc_formatters.py:279 +#: src/rc_formatters.py:399 #, python-brace-format msgid "" "[{author}]({author_url}) changed the content model of the page [{article}]" @@ -404,14 +536,14 @@ msgstr "" "[{author}]({author_url}) изменил модель содержимого страницы [{article}]" "({article_url}) с {old} на {new}{comment}" -#: src/rc_formatters.py:283 +#: src/rc_formatters.py:403 #, python-brace-format msgid "" "[{author}]({author_url}) edited the sprite for [{article}]({article_url})" msgstr "" "[{author}]({author_url}) отредактировал спрайт для [{article}]({article_url})" -#: src/rc_formatters.py:286 +#: src/rc_formatters.py:406 #, python-brace-format msgid "" "[{author}]({author_url}) created the sprite sheet for [{article}]" @@ -420,7 +552,7 @@ msgstr "" "[{author}]({author_url}) создал таблицу спрайтов для [{article}]" "({article_url})" -#: src/rc_formatters.py:289 +#: src/rc_formatters.py:409 #, python-brace-format msgid "" "[{author}]({author_url}) edited the slice for [{article}]({article_url})" @@ -428,114 +560,177 @@ msgstr "" "[{author}]({author_url}) отредактировал фрагмент для [{article}]" "({article_url})" -#: src/rc_formatters.py:294 -#, fuzzy, python-brace-format +#: src/rc_formatters.py:414 +#, python-brace-format msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) создал [метку]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) создал таблицу Cargo \"{table}\"" -#: src/rc_formatters.py:296 -#, fuzzy, python-brace-format +#: src/rc_formatters.py:416 +#, python-brace-format msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) удалил [метку]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) удалил таблицу Cargo \"{table}\"" -#: src/rc_formatters.py:301 -#, fuzzy, python-brace-format +#: src/rc_formatters.py:421 +#, python-brace-format msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) создал [метку]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) воссоздал таблицу Cargo \"{table}\"" -#: src/rc_formatters.py:306 -#, fuzzy, python-brace-format +#: src/rc_formatters.py:426 +#, python-brace-format msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" -msgstr "[{author}]({author_url}) создал [метку]({tag_url}) \"{tag}\"" +msgstr "[{author}]({author_url}) заменил таблицу Cargo \"{table}\"" -#: src/rc_formatters.py:309 +#: src/rc_formatters.py:429 #, python-brace-format msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) создал [метку]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:313 +#: src/rc_formatters.py:433 #, python-brace-format msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) удалил [метку]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:317 +#: src/rc_formatters.py:437 #, python-brace-format msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) активировал [метку]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:320 +#: src/rc_formatters.py:440 #, python-brace-format msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) деактивировал [метку]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:322 +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "[{author}]({author_url}) изменил настройки вики ({reason})" + +#: src/rc_formatters.py:444 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) импортировал интервики{comment}" + +#: src/rc_formatters.py:447 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) импортировал интервики{comment}" + +#: src/rc_formatters.py:450 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) загрузил новую версию [{file}]({file_link}){comment}" + +#: src/rc_formatters.py:455 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) удалил страницу [{page}]({page_link}){comment}" + +#: src/rc_formatters.py:460 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "[{author}]({author_url}) импортировал интервики{comment}" + +#: src/rc_formatters.py:464 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) импортировал интервики{comment}" + +#: src/rc_formatters.py:468 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) импортировал интервики{comment}" + +#: src/rc_formatters.py:473 msgid "An action has been hidden by administration." msgstr "Действие было скрыто администрацией." -#: src/rc_formatters.py:329 +#: src/rc_formatters.py:480 #, python-brace-format msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -#: src/rc_formatters.py:337 src/rc_formatters.py:621 +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 msgid "No description provided" msgstr "Нет описания правки" -#: src/rc_formatters.py:384 +#: src/rc_formatters.py:524 msgid "(N!) " msgstr "(Н!) " -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "m" msgstr "м" -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "b" msgstr "б" -#: src/rc_formatters.py:402 src/rc_formatters.py:407 +#: src/rc_formatters.py:542 src/rc_formatters.py:547 msgid "__Only whitespace__" msgstr "__Только пробел__" -#: src/rc_formatters.py:412 +#: src/rc_formatters.py:552 msgid "Removed" msgstr "Удалено" -#: src/rc_formatters.py:414 +#: src/rc_formatters.py:554 msgid "Added" msgstr "Добавлено" -#: src/rc_formatters.py:448 src/rc_formatters.py:487 +#: src/rc_formatters.py:588 src/rc_formatters.py:627 msgid "Options" msgstr "Настройки" -#: src/rc_formatters.py:448 +#: src/rc_formatters.py:588 #, python-brace-format msgid "([preview]({link}) | [undo]({undolink}))" msgstr "([просмотр]({link}) | [отмена]({undolink}))" -#: src/rc_formatters.py:453 +#: src/rc_formatters.py:593 #, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Загрузил новую версию {name}" -#: src/rc_formatters.py:455 +#: src/rc_formatters.py:595 #, python-brace-format msgid "Reverted a version of {name}" msgstr "Возвратил версию {name}" -#: src/rc_formatters.py:457 +#: src/rc_formatters.py:597 #, python-brace-format msgid "Uploaded {name}" msgstr "Загрузил {name}" -#: src/rc_formatters.py:473 +#: src/rc_formatters.py:613 msgid "**No license!**" msgstr "**Отсутствует лицензия!**" -#: src/rc_formatters.py:485 +#: src/rc_formatters.py:625 msgid "" "\n" "License: {}" @@ -543,160 +738,164 @@ msgstr "" "\n" "Лицензия: {}" -#: src/rc_formatters.py:487 +#: src/rc_formatters.py:627 #, python-brace-format msgid "([preview]({link}))" msgstr "([просмотр]({link}))" -#: src/rc_formatters.py:492 +#: src/rc_formatters.py:632 #, python-brace-format msgid "Deleted page {article}" msgstr "Удалил страницу «{article}»" -#: src/rc_formatters.py:495 +#: src/rc_formatters.py:637 #, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "Удалил перенаправление «{article}» с помощью перезаписи" -#: src/rc_formatters.py:499 +#: src/rc_formatters.py:643 msgid "No redirect has been made" msgstr "Перенаправление не было сделано" -#: src/rc_formatters.py:500 +#: src/rc_formatters.py:644 msgid "A redirect has been made" msgstr "Было сделано перенаправление" -#: src/rc_formatters.py:501 +#: src/rc_formatters.py:645 #, python-brace-format msgid "Moved {redirect}{article} to {target}" msgstr "Переименовал страницу {redirect}{article} в {target}" -#: src/rc_formatters.py:504 +#: src/rc_formatters.py:648 #, python-brace-format msgid "Moved {redirect}{article} to {title} over redirect" msgstr "" "Переименовал страницу {redirect}{article} в {title} поверх перенаправления" -#: src/rc_formatters.py:508 +#: src/rc_formatters.py:652 #, python-brace-format msgid "Moved protection settings from {redirect}{article} to {title}" msgstr "Перенёс параметры защиты с «{redirect}{article}» на «{title}»" -#: src/rc_formatters.py:533 +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 msgid "Blocked from editing the following pages: " msgstr "Заблокирован от редактирования в следующих страницах: " -#: src/rc_formatters.py:542 +#: src/rc_formatters.py:689 msgid "Blocked from editing pages on following namespaces: " msgstr "" "Заблокирован от редактирования на страницах в следующих пространствах имён: " -#: src/rc_formatters.py:553 +#: src/rc_formatters.py:700 msgid "Partial block details" msgstr "Частичные детали блокировки" -#: src/rc_formatters.py:554 +#: src/rc_formatters.py:701 #, fuzzy, python-brace-format msgid "Blocked {blocked_user} {time}" msgstr "Заблокировал участника {blocked_user} на срок «{time}»" -#: src/rc_formatters.py:558 +#: src/rc_formatters.py:705 #, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Изменил параметры блокировки для {blocked_user}" -#: src/rc_formatters.py:562 +#: src/rc_formatters.py:709 #, python-brace-format msgid "Unblocked {blocked_user}" msgstr "Разблокировал участника {blocked_user}" -#: src/rc_formatters.py:567 +#: src/rc_formatters.py:714 #, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Оставил комментарий на профиле участника {target}" -#: src/rc_formatters.py:569 +#: src/rc_formatters.py:716 msgid "Left a comment on their own profile" msgstr "Оставил комментарий на своём профиле" -#: src/rc_formatters.py:574 +#: src/rc_formatters.py:721 #, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Ответил на комментарий на профиле участника {target}" -#: src/rc_formatters.py:576 +#: src/rc_formatters.py:723 msgid "Replied to a comment on their own profile" msgstr "Ответил на комментарий на своём профиле" -#: src/rc_formatters.py:581 +#: src/rc_formatters.py:728 #, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Отредактировал комментарий на профиле участника {target}" -#: src/rc_formatters.py:583 +#: src/rc_formatters.py:730 msgid "Edited a comment on their own profile" msgstr "Отредактировал комментарий на своём профиле" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 #, python-brace-format msgid "Edited {target}'s profile" msgstr "Отредактировал профиль участника {target}" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 msgid "Edited their own profile" msgstr "Отредактировал свой профиль" -#: src/rc_formatters.py:588 +#: src/rc_formatters.py:735 #, python-brace-format msgid "Cleared the {field} field" msgstr "Очистил поле «{field}»" -#: src/rc_formatters.py:590 +#: src/rc_formatters.py:737 #, python-brace-format msgid "{field} field changed to: {desc}" msgstr "Поле «{field}» изменено на: {desc}" -#: src/rc_formatters.py:593 +#: src/rc_formatters.py:740 #, python-brace-format msgid "Purged a comment on {target}'s profile" msgstr "Удалил комментарий в профиле {target}" -#: src/rc_formatters.py:599 +#: src/rc_formatters.py:746 #, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Удалил комментарий на профиле участника {target}" -#: src/rc_formatters.py:603 +#: src/rc_formatters.py:750 #, python-brace-format msgid "Changed group membership for {target}" msgstr "Изменил членство в группах для участника {target}" -#: src/rc_formatters.py:607 +#: src/rc_formatters.py:754 #, python-brace-format msgid "{target} got autopromoted to a new usergroup" msgstr "Участник {target} был автоматически повышен до новой группы участников" -#: src/rc_formatters.py:622 +#: src/rc_formatters.py:769 #, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "Группы изменены с {old_groups} на {new_groups}{reason}" -#: src/rc_formatters.py:626 +#: src/rc_formatters.py:773 #, python-brace-format msgid "Protected {target}" msgstr "Защитил страницу «{target}»" -#: src/rc_formatters.py:632 +#: src/rc_formatters.py:779 #, python-brace-format msgid "Changed protection level for {article}" msgstr "Изменил уровень защиты для страницы «{article}»" -#: src/rc_formatters.py:638 +#: src/rc_formatters.py:785 #, python-brace-format msgid "Removed protection from {article}" msgstr "Убрал защиту со страницы «{article}»" -#: src/rc_formatters.py:642 +#: src/rc_formatters.py:789 #, python-brace-format msgid "Changed visibility of revision on page {article} " msgid_plural "Changed visibility of {amount} revisions on page {article} " @@ -704,7 +903,7 @@ msgstr[0] "Изменил видимость {amount} правки на стра msgstr[1] "Изменил видимость {amount} правок на странице «{article}» " msgstr[2] "Изменил видимость {amount} правок на странице «{article}» " -#: src/rc_formatters.py:647 +#: src/rc_formatters.py:801 #, python-brace-format msgid "Imported {article} with {count} revision" msgid_plural "Imported {article} with {count} revisions" @@ -712,178 +911,231 @@ msgstr[0] "Импортировал страницу «{article}» с {count} п msgstr[1] "Импортировал страницу «{article}» с {count} правками" msgstr[2] "Импортировал страницу «{article}» с {count} правками" -#: src/rc_formatters.py:652 +#: src/rc_formatters.py:806 #, python-brace-format msgid "Restored {article}" msgstr "Восстановил страницу «{article}»" -#: src/rc_formatters.py:655 +#: src/rc_formatters.py:809 msgid "Changed visibility of log events" msgstr "Изменил видимость событий в журнале" -#: src/rc_formatters.py:658 +#: src/rc_formatters.py:819 msgid "Imported interwiki" msgstr "Импортировал префикс интервики" -#: src/rc_formatters.py:661 +#: src/rc_formatters.py:822 #, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Отредактировал фильтр злоупотреблений под номером {number}" -#: src/rc_formatters.py:664 +#: src/rc_formatters.py:825 #, python-brace-format msgid "Created abuse filter number {number}" msgstr "Создал фильтр злоупотреблений под номером {number}" -#: src/rc_formatters.py:667 +#: src/rc_formatters.py:828 #, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "" "Объединил историю правок страницы «{article}» с историей правок «{dest}»" -#: src/rc_formatters.py:671 +#: src/rc_formatters.py:832 msgid "Created account automatically" -msgstr "" +msgstr "Учетная запись была создана автоматически" -#: src/rc_formatters.py:674 src/rc_formatters.py:683 +#: src/rc_formatters.py:835 src/rc_formatters.py:844 msgid "Created account" -msgstr "" +msgstr "Создана учётная запись" -#: src/rc_formatters.py:677 -#, fuzzy, python-brace-format +#: src/rc_formatters.py:838 +#, python-brace-format msgid "Created account {article}" -msgstr "Удалил страницу «{article}»" +msgstr "Создана учетная запись {article}" -#: src/rc_formatters.py:680 +#: src/rc_formatters.py:841 #, python-brace-format msgid "Created account {article} and password was sent by email" msgstr "" +"Создана учетная запись {article} и пароль был отправлен на электронную почту" -#: src/rc_formatters.py:686 +#: src/rc_formatters.py:847 msgid "Added an entry to the interwiki table" msgstr "Добавил запись в таблицу префиксов интервики" -#: src/rc_formatters.py:687 src/rc_formatters.py:693 +#: src/rc_formatters.py:848 src/rc_formatters.py:854 #, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Префикс: {prefix}, сайт: {website} | {desc}" -#: src/rc_formatters.py:692 +#: src/rc_formatters.py:853 msgid "Edited an entry in interwiki table" msgstr "Отредактировал запись в таблице префиксов интервики" -#: src/rc_formatters.py:698 +#: src/rc_formatters.py:859 msgid "Deleted an entry in interwiki table" msgstr "Удалил запись из таблицы префиксов интервики" -#: src/rc_formatters.py:699 +#: src/rc_formatters.py:860 #, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Префикс: {prefix} | {desc}" -#: src/rc_formatters.py:702 +#: src/rc_formatters.py:863 #, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Изменил модель содержимого для страницы «{article}»" -#: src/rc_formatters.py:703 +#: src/rc_formatters.py:864 #, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Модель изменена с «{old}» на «{new}»: {reason}" -#: src/rc_formatters.py:708 +#: src/rc_formatters.py:869 #, python-brace-format msgid "Edited the sprite for {article}" msgstr "Отредактировал спрайт для страницы «{article}»" -#: src/rc_formatters.py:711 +#: src/rc_formatters.py:872 #, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Создал таблицу спрайтов для страницы «{article}»" -#: src/rc_formatters.py:714 +#: src/rc_formatters.py:875 #, python-brace-format msgid "Edited the slice for {article}" msgstr "Отредактировал срез для страницы «{article}»" -#: src/rc_formatters.py:720 +#: src/rc_formatters.py:881 #, fuzzy, python-brace-format msgid "Created the Cargo table \"{table}\"" msgstr "Создал метку «{tag}»" -#: src/rc_formatters.py:724 +#: src/rc_formatters.py:885 #, fuzzy, python-brace-format msgid "Deleted the Cargo table \"{table}\"" msgstr "Удалил метку «{tag}»" -#: src/rc_formatters.py:731 +#: src/rc_formatters.py:892 #, fuzzy, python-brace-format msgid "Recreated the Cargo table \"{table}\"" msgstr "Создал метку «{tag}»" -#: src/rc_formatters.py:738 +#: src/rc_formatters.py:899 #, fuzzy, python-brace-format msgid "Replaced the Cargo table \"{table}\"" msgstr "Удалил метку «{tag}»" -#: src/rc_formatters.py:742 +#: src/rc_formatters.py:903 #, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Создал метку «{tag}»" -#: src/rc_formatters.py:746 +#: src/rc_formatters.py:907 #, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Удалил метку «{tag}»" -#: src/rc_formatters.py:750 +#: src/rc_formatters.py:911 #, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Активировал метку «{tag}»" -#: src/rc_formatters.py:753 +#: src/rc_formatters.py:914 #, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Деактивировал метку «{tag}»" -#: src/rc_formatters.py:756 -#, fuzzy +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, fuzzy, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "Удалил метку «{tag}»" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 msgid "Action has been hidden by administration" -msgstr "Действие было скрыто администрацией." +msgstr "Действие было скрыто администрацией" -#: src/rc_formatters.py:757 -msgid "Unknown" -msgstr "Неизвестно" - -#: src/rc_formatters.py:761 +#: src/rc_formatters.py:951 #, python-brace-format msgid "Unknown event `{event}`" msgstr "" -#: src/rc_formatters.py:767 src/rc_formatters.py:769 +#: src/rc_formatters.py:957 src/rc_formatters.py:959 msgid "Report this on the support server" -msgstr "" +msgstr "Сообщить об этом на сервер поддержки" -#: src/rc_formatters.py:786 +#: src/rc_formatters.py:976 msgid "Tags" msgstr "Метки" -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid "**Added**: " msgstr "**Добавлено**: " -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid " and {} more\n" msgstr " и ещё {}\n" -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid "**Removed**: " msgstr "**Удалено**: " -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid " and {} more" msgstr " и ещё {}" -#: src/rc_formatters.py:791 +#: src/rc_formatters.py:981 msgid "Changed categories" msgstr "Изменены категории" + +#~ msgid "their own profile" +#~ msgstr "на своём профиле" + +#~ msgid "their own" +#~ msgstr "на своём" + +#, python-brace-format +#~ msgid "[{target}]({target_url})'s" +#~ msgstr "[{target}]({target_url})" + +#, python-brace-format +#~ msgid "[their own]({target_url})" +#~ msgstr "[на своём]({target_url})" diff --git a/locale/ru/LC_MESSAGES/rcgcdw.po b/locale/ru/LC_MESSAGES/rcgcdw.po index b50ddea..60d6413 100644 --- a/locale/ru/LC_MESSAGES/rcgcdw.po +++ b/locale/ru/LC_MESSAGES/rcgcdw.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:21+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-09-03 13:14+0200\n" "Last-Translator: BabylonAS\n" "Language-Team: \n" @@ -19,198 +19,198 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Poedit 2.4.1\n" -#: src/rcgcdw.py:113 src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 -#: src/rcgcdw.py:121 src/rcgcdw.py:123 src/rcgcdw.py:125 +#: src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 src/rcgcdw.py:121 +#: src/rcgcdw.py:123 src/rcgcdw.py:125 src/rcgcdw.py:127 #, python-brace-format msgid "{value} (avg. {avg})" msgstr "{value} (ср. {avg})" -#: src/rcgcdw.py:145 +#: src/rcgcdw.py:147 msgid "Daily overview" msgstr "Ежедневный обзор" -#: src/rcgcdw.py:153 +#: src/rcgcdw.py:155 msgid "No activity" msgstr "Нет активности" -#: src/rcgcdw.py:177 +#: src/rcgcdw.py:179 msgid " ({} action)" msgid_plural " ({} actions)" msgstr[0] " ({} действие)" msgstr[1] " ({} действия)" msgstr[2] " ({} действий)" -#: src/rcgcdw.py:179 +#: src/rcgcdw.py:181 msgid " ({} edit)" msgid_plural " ({} edits)" msgstr[0] " ({} правка)" msgstr[1] " ({} правки)" msgstr[2] " ({} правок)" -#: src/rcgcdw.py:184 +#: src/rcgcdw.py:186 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] " UTC ({} действие)" msgstr[1] " UTC ({} действия)" msgstr[2] " UTC ({} действий)" -#: src/rcgcdw.py:186 src/rcgcdw.py:187 src/rcgcdw.py:191 +#: src/rcgcdw.py:188 src/rcgcdw.py:189 src/rcgcdw.py:193 msgid "But nobody came" msgstr "Но никто не пришёл" -#: src/rcgcdw.py:194 +#: src/rcgcdw.py:196 msgid "Most active user" msgid_plural "Most active users" msgstr[0] "Самый активный участник" msgstr[1] "Самые активные участники" msgstr[2] "Самые активные участники" -#: src/rcgcdw.py:195 +#: src/rcgcdw.py:197 msgid "Most edited article" msgid_plural "Most edited articles" msgstr[0] "Самая редактируемая статья" msgstr[1] "Самые редактируемые статьи" msgstr[2] "Самые редактируемые статьи" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Edits made" msgstr "Сделано правок" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "New files" msgstr "Новых файлов" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Admin actions" msgstr "Административных действий" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "Bytes changed" msgstr "Изменено байтов" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "New articles" msgstr "Новых статей" -#: src/rcgcdw.py:198 +#: src/rcgcdw.py:200 msgid "Unique contributors" msgstr "Уникальных редакторов" -#: src/rcgcdw.py:199 +#: src/rcgcdw.py:201 msgid "Most active hour" msgid_plural "Most active hours" msgstr[0] "Самый активный час" msgstr[1] "Самые активные часы" msgstr[2] "Самые активные часы" -#: src/rcgcdw.py:200 +#: src/rcgcdw.py:202 msgid "Day score" msgstr "Очков за день" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "director" msgstr "директор" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bot" msgstr "бот" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "editor" msgstr "досматривающий" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "directors" msgstr "директора" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "sysop" msgstr "администратор" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bureaucrat" msgstr "бюрократ" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "reviewer" msgstr "выверяющий" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autoreview" msgstr "автодосматриваемый" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autopatrol" msgstr "автопатрулируемый" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "wiki_guardian" msgstr "смотритель вики" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "second" msgid_plural "seconds" msgstr[0] "секунда" msgstr[1] "секунды" msgstr[2] "секунд" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "minute" msgid_plural "minutes" msgstr[0] "минута" msgstr[1] "минуты" msgstr[2] "минут" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "hour" msgid_plural "hours" msgstr[0] "час" msgstr[1] "часа" msgstr[2] "часов" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "day" msgid_plural "days" msgstr[0] "день" msgstr[1] "дня" msgstr[2] "дней" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "week" msgid_plural "weeks" msgstr[0] "неделя" msgstr[1] "недели" msgstr[2] "недель" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "month" msgid_plural "months" msgstr[0] "месяц" msgstr[1] "месяца" msgstr[2] "месяцев" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "year" msgid_plural "years" msgstr[0] "год" msgstr[1] "года" msgstr[2] "лет" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "millennium" msgid_plural "millennia" msgstr[0] "тысячелетие" msgstr[1] "тысячелетия" msgstr[2] "тысячелетий" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "decade" msgid_plural "decades" msgstr[0] "десятилетие" msgstr[1] "десятилетия" msgstr[2] "десятилетий" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "century" msgid_plural "centuries" msgstr[0] "век" diff --git a/locale/ru/LC_MESSAGES/redaction.mo b/locale/ru/LC_MESSAGES/redaction.mo new file mode 100644 index 0000000..8e3315a Binary files /dev/null and b/locale/ru/LC_MESSAGES/redaction.mo differ diff --git a/locale/ru/LC_MESSAGES/redaction.po b/locale/ru/LC_MESSAGES/redaction.po new file mode 100644 index 0000000..465ed73 --- /dev/null +++ b/locale/ru/LC_MESSAGES/redaction.po @@ -0,0 +1,24 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 15:17+0100\n" +"PO-Revision-Date: 2020-11-18 15:18+0100\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" +"Language: ru\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "" diff --git a/locale/templates/discord/redaction.pot b/locale/templates/discord/redaction.pot new file mode 100644 index 0000000..c59c847 --- /dev/null +++ b/locale/templates/discord/redaction.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 08:30+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "" diff --git a/locale/templates/discussion_formatters.pot b/locale/templates/discussion_formatters.pot index c7afc32..c088385 100644 --- a/locale/templates/discussion_formatters.pot +++ b/locale/templates/discussion_formatters.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,40 +17,44 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/discussion_formatters.py:32 +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:34 +#: src/discussion_formatters.py:36 #, python-brace-format msgid "" "[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:36 +#: src/discussion_formatters.py:38 #, python-brace-format msgid "" "[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:41 +#: src/discussion_formatters.py:43 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " "to [{title}](<{url}f/p/{threadId}>) in {forumName}" msgstr "" -#: src/discussion_formatters.py:43 src/discussion_formatters.py:52 -#: src/discussion_formatters.py:129 src/discussion_formatters.py:142 +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 msgid "unknown" msgstr "" -#: src/discussion_formatters.py:47 +#: src/discussion_formatters.py:49 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" @@ -58,7 +62,7 @@ msgid "" "Message_Wall:{user_wall}>)" msgstr "" -#: src/discussion_formatters.py:49 +#: src/discussion_formatters.py:51 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" @@ -67,91 +71,90 @@ msgid "" "(<{url}wiki/Message_Wall:{user_wall}>)" msgstr "" -#: src/discussion_formatters.py:54 +#: src/discussion_formatters.py:57 #, python-brace-format msgid "" -"[{author}]({author_url}) created a [comment](<{url}wiki/{article}?" -"commentId={commentId}>) on [{article}](<{url}wiki/{article}>)" -msgstr "" - -#: src/discussion_formatters.py:56 -#, python-brace-format -msgid "" -"[{author}]({author_url}) created a [reply](<{url}wiki/{article}?" -"threadId={threadId}) to a [comment](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) on [{article}](<{url}wiki/{article}" -">)" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" msgstr "" #: src/discussion_formatters.py:62 #, python-brace-format msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -#: src/discussion_formatters.py:90 +#: src/discussion_formatters.py:98 #, python-brace-format msgid "Created \"{title}\"" msgstr "" -#: src/discussion_formatters.py:94 +#: src/discussion_formatters.py:102 #, python-brace-format msgid "Created a poll \"{title}\"" msgstr "" -#: src/discussion_formatters.py:101 +#: src/discussion_formatters.py:109 msgid "Option {}" msgstr "" -#: src/discussion_formatters.py:102 +#: src/discussion_formatters.py:110 #, python-brace-format msgid "__[View image]({image_url})__" msgstr "" -#: src/discussion_formatters.py:106 +#: src/discussion_formatters.py:114 #, python-brace-format msgid "Created a quiz \"{title}\"" msgstr "" -#: src/discussion_formatters.py:121 src/discussion_formatters.py:123 +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 msgid "Tags" msgstr "" -#: src/discussion_formatters.py:121 +#: src/discussion_formatters.py:129 msgid "{} tags" msgstr "" -#: src/discussion_formatters.py:126 +#: src/discussion_formatters.py:134 #, python-brace-format msgid "Replied to \"{title}\"" msgstr "" -#: src/discussion_formatters.py:135 +#: src/discussion_formatters.py:143 #, python-brace-format msgid "Created \"{title}\" on {user}'s Message Wall" msgstr "" -#: src/discussion_formatters.py:139 +#: src/discussion_formatters.py:147 #, python-brace-format msgid "Replied to \"{title}\" on {user}'s Message Wall" msgstr "" -#: src/discussion_formatters.py:146 +#: src/discussion_formatters.py:154 #, python-brace-format msgid "Commented on {article}" msgstr "" -#: src/discussion_formatters.py:150 +#: src/discussion_formatters.py:158 #, python-brace-format msgid "Replied to a comment on {article}" msgstr "" -#: src/discussion_formatters.py:154 +#: src/discussion_formatters.py:162 #, python-brace-format msgid "Unknown event `{event}`" msgstr "" -#: src/discussion_formatters.py:160 src/discussion_formatters.py:162 +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 msgid "Report this on the support server" msgstr "" diff --git a/locale/templates/misc.pot b/locale/templates/misc.pot index d07b782..f5d4425 100644 --- a/locale/templates/misc.pot +++ b/locale/templates/misc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,68 +17,68 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "XBL link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" msgstr "" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "" -#: src/misc.py:425 +#: src/misc.py:273 msgid "unknown" msgstr "" diff --git a/locale/templates/rc.pot b/locale/templates/rc.pot index ceae795..e614908 100644 --- a/locale/templates/rc.pot +++ b/locale/templates/rc.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,24 +17,24 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: src/rc.py:150 -#, python-brace-format -msgid "Connection to {wiki} seems to be stable now." -msgstr "" - -#: src/rc.py:151 src/rc.py:266 -msgid "Connection status" -msgstr "" - -#: src/rc.py:265 +#: src/rc.py:319 #, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "" -#: src/rc.py:334 +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "" + +#: src/rc.py:401 msgid "~~hidden~~" msgstr "" -#: src/rc.py:340 +#: src/rc.py:405 msgid "hidden" msgstr "" diff --git a/locale/templates/rc_formatters.pot b/locale/templates/rc_formatters.pot index ef5f8a5..a9af4a9 100644 --- a/locale/templates/rc_formatters.pot +++ b/locale/templates/rc_formatters.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,214 +18,331 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: src/rc_formatters.py:42 -#, python-brace-format -msgid "" -"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +#: src/rc_formatters.py:28 +msgid "None" msgstr "" -#: src/rc_formatters.py:44 -#, python-brace-format -msgid "" -"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +#: src/rc_formatters.py:28 +msgid "Warning issued" msgstr "" -#: src/rc_formatters.py:47 +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 #, python-brace-format msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" msgstr "" -#: src/rc_formatters.py:54 +#: src/rc_formatters.py:129 #, python-brace-format msgid "" "[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" msgstr "" -#: src/rc_formatters.py:58 +#: src/rc_formatters.py:133 #, python-brace-format msgid "" "[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" "{comment}" msgstr "" -#: src/rc_formatters.py:61 +#: src/rc_formatters.py:136 #, python-brace-format msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" msgstr "" -#: src/rc_formatters.py:65 +#: src/rc_formatters.py:142 #, python-brace-format msgid "" "[{author}]({author_url}) deleted redirect by overwriting [{page}]" "({page_link}){comment}" msgstr "" -#: src/rc_formatters.py:69 src/rc_formatters.py:74 +#: src/rc_formatters.py:148 src/rc_formatters.py:153 msgid "without making a redirect" msgstr "" -#: src/rc_formatters.py:69 src/rc_formatters.py:75 +#: src/rc_formatters.py:148 src/rc_formatters.py:154 msgid "with a redirect" msgstr "" -#: src/rc_formatters.py:70 +#: src/rc_formatters.py:149 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" "({target_url}) {made_a_redirect}{comment}" msgstr "" -#: src/rc_formatters.py:76 +#: src/rc_formatters.py:155 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* over redirect to " "[{target}]({target_url}) {made_a_redirect}{comment}" msgstr "" -#: src/rc_formatters.py:81 +#: src/rc_formatters.py:160 #, python-brace-format msgid "" "[{author}]({author_url}) moved protection settings from {redirect}*{article}" "* to [{target}]({target_url}){comment}" msgstr "" -#: src/rc_formatters.py:92 src/rc_formatters.py:518 +#: src/rc_formatters.py:171 src/rc_formatters.py:662 msgid "for infinity and beyond" msgstr "" -#: src/rc_formatters.py:101 src/rc_formatters.py:526 +#: src/rc_formatters.py:180 src/rc_formatters.py:670 #, python-brace-format msgid "for {num} {translated_length}" msgstr "" -#: src/rc_formatters.py:107 src/rc_formatters.py:529 +#: src/rc_formatters.py:186 src/rc_formatters.py:674 msgid "until {}" msgstr "" -#: src/rc_formatters.py:111 +#: src/rc_formatters.py:190 msgid " on pages: " msgstr "" -#: src/rc_formatters.py:118 src/rc_formatters.py:540 +#: src/rc_formatters.py:197 src/rc_formatters.py:687 msgid " and namespaces: " msgstr "" -#: src/rc_formatters.py:120 +#: src/rc_formatters.py:199 msgid " on namespaces: " msgstr "" -#: src/rc_formatters.py:132 +#: src/rc_formatters.py:211 #, python-brace-format msgid "" "[{author}]({author_url}) blocked [{user}]({user_url}) {time}" "{restriction_desc}{comment}" msgstr "" -#: src/rc_formatters.py:136 +#: src/rc_formatters.py:215 #, python-brace-format msgid "" "[{author}]({author_url}) changed block settings for [{blocked_user}]" "({user_url}){comment}" msgstr "" -#: src/rc_formatters.py:140 +#: src/rc_formatters.py:219 #, python-brace-format msgid "" "[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" msgstr "" -#: src/rc_formatters.py:143 +#: src/rc_formatters.py:224 #, python-brace-format msgid "" -"[{author}]({author_url}) left a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" msgstr "" -#: src/rc_formatters.py:143 -msgid "their own profile" -msgstr "" - -#: src/rc_formatters.py:146 +#: src/rc_formatters.py:226 #, python-brace-format msgid "" -"[{author}]({author_url}) replied to a [comment]({comment}) on {target} " +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " "profile" msgstr "" -#: src/rc_formatters.py:149 src/rc_formatters.py:155 src/rc_formatters.py:166 -#: src/rc_formatters.py:170 -msgid "their own" -msgstr "" - -#: src/rc_formatters.py:152 +#: src/rc_formatters.py:238 #, python-brace-format msgid "" -"[{author}]({author_url}) edited a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" msgstr "" -#: src/rc_formatters.py:158 -#, python-brace-format -msgid "[{author}]({author_url}) purged a comment on {target} profile" -msgstr "" - -#: src/rc_formatters.py:168 -#, python-brace-format -msgid "[{author}]({author_url}) deleted a comment on {target} profile" -msgstr "" - -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[{target}]({target_url})'s" -msgstr "" - -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[their own]({target_url})" -msgstr "" - -#: src/rc_formatters.py:175 +#: src/rc_formatters.py:246 #, python-brace-format msgid "" -"[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" msgstr "" -#: src/rc_formatters.py:189 src/rc_formatters.py:191 src/rc_formatters.py:618 -#: src/rc_formatters.py:620 +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 msgid "none" msgstr "" -#: src/rc_formatters.py:197 src/rc_formatters.py:605 +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 msgid "System" msgstr "" -#: src/rc_formatters.py:202 +#: src/rc_formatters.py:306 #, python-brace-format msgid "" "[{author}]({author_url}) protected [{article}]({article_url}) with the " "following settings: {settings}{comment}" msgstr "" -#: src/rc_formatters.py:204 src/rc_formatters.py:212 src/rc_formatters.py:628 -#: src/rc_formatters.py:634 +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 msgid " [cascading]" msgstr "" -#: src/rc_formatters.py:209 +#: src/rc_formatters.py:313 #, python-brace-format msgid "" "[{author}]({author_url}) modified protection settings of [{article}]" "({article_url}) to: {settings}{comment}" msgstr "" -#: src/rc_formatters.py:216 +#: src/rc_formatters.py:320 #, python-brace-format msgid "" "[{author}]({author_url}) removed protection from [{article}]({article_url})" "{comment}" msgstr "" -#: src/rc_formatters.py:220 +#: src/rc_formatters.py:324 #, python-brace-format msgid "" "[{author}]({author_url}) changed visibility of revision on page [{article}]" @@ -236,7 +353,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/rc_formatters.py:225 +#: src/rc_formatters.py:337 #, python-brace-format msgid "" "[{author}]({author_url}) imported [{article}]({article_url}) with {count} " @@ -247,558 +364,662 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: src/rc_formatters.py:230 +#: src/rc_formatters.py:342 #, python-brace-format msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" msgstr "" -#: src/rc_formatters.py:232 +#: src/rc_formatters.py:344 #, python-brace-format msgid "[{author}]({author_url}) changed visibility of log events{comment}" msgstr "" -#: src/rc_formatters.py:234 +#: src/rc_formatters.py:354 #, python-brace-format msgid "[{author}]({author_url}) imported interwiki{comment}" msgstr "" -#: src/rc_formatters.py:237 +#: src/rc_formatters.py:357 #, python-brace-format msgid "" "[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" msgstr "" -#: src/rc_formatters.py:241 +#: src/rc_formatters.py:361 #, python-brace-format msgid "" "[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" msgstr "" -#: src/rc_formatters.py:245 +#: src/rc_formatters.py:365 #, python-brace-format msgid "" "[{author}]({author_url}) merged revision histories of [{article}]" "({article_url}) into [{dest}]({dest_url}){comment}" msgstr "" -#: src/rc_formatters.py:249 +#: src/rc_formatters.py:369 #, python-brace-format msgid "Account [{author}]({author_url}) was created automatically" msgstr "" -#: src/rc_formatters.py:252 src/rc_formatters.py:261 +#: src/rc_formatters.py:372 src/rc_formatters.py:381 #, python-brace-format msgid "Account [{author}]({author_url}) was created" msgstr "" -#: src/rc_formatters.py:255 +#: src/rc_formatters.py:375 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url})" "{comment}" msgstr "" -#: src/rc_formatters.py:258 +#: src/rc_formatters.py:378 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url}) " "and password was sent by email{comment}" msgstr "" -#: src/rc_formatters.py:264 +#: src/rc_formatters.py:384 #, python-brace-format msgid "" "[{author}]({author_url}) added an entry to the [interwiki table]" "({table_url}) pointing to {website} with {prefix} prefix" msgstr "" -#: src/rc_formatters.py:270 +#: src/rc_formatters.py:390 #, python-brace-format msgid "" "[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " "pointing to {website} with {prefix} prefix" msgstr "" -#: src/rc_formatters.py:276 +#: src/rc_formatters.py:396 #, python-brace-format msgid "" "[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" msgstr "" -#: src/rc_formatters.py:279 +#: src/rc_formatters.py:399 #, python-brace-format msgid "" "[{author}]({author_url}) changed the content model of the page [{article}]" "({article_url}) from {old} to {new}{comment}" msgstr "" -#: src/rc_formatters.py:283 +#: src/rc_formatters.py:403 #, python-brace-format msgid "" "[{author}]({author_url}) edited the sprite for [{article}]({article_url})" msgstr "" -#: src/rc_formatters.py:286 +#: src/rc_formatters.py:406 #, python-brace-format msgid "" "[{author}]({author_url}) created the sprite sheet for [{article}]" "({article_url})" msgstr "" -#: src/rc_formatters.py:289 +#: src/rc_formatters.py:409 #, python-brace-format msgid "" "[{author}]({author_url}) edited the slice for [{article}]({article_url})" msgstr "" -#: src/rc_formatters.py:294 +#: src/rc_formatters.py:414 #, python-brace-format msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" msgstr "" -#: src/rc_formatters.py:296 +#: src/rc_formatters.py:416 #, python-brace-format msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" msgstr "" -#: src/rc_formatters.py:301 +#: src/rc_formatters.py:421 #, python-brace-format msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" msgstr "" -#: src/rc_formatters.py:306 +#: src/rc_formatters.py:426 #, python-brace-format msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" msgstr "" -#: src/rc_formatters.py:309 +#: src/rc_formatters.py:429 #, python-brace-format msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" msgstr "" -#: src/rc_formatters.py:313 +#: src/rc_formatters.py:433 #, python-brace-format msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" msgstr "" -#: src/rc_formatters.py:317 +#: src/rc_formatters.py:437 #, python-brace-format msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" msgstr "" -#: src/rc_formatters.py:320 +#: src/rc_formatters.py:440 #, python-brace-format msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" msgstr "" -#: src/rc_formatters.py:322 +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 msgid "An action has been hidden by administration." msgstr "" -#: src/rc_formatters.py:329 +#: src/rc_formatters.py:480 #, python-brace-format msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -#: src/rc_formatters.py:337 src/rc_formatters.py:621 +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 msgid "No description provided" msgstr "" -#: src/rc_formatters.py:384 +#: src/rc_formatters.py:524 msgid "(N!) " msgstr "" -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "m" msgstr "" -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "b" msgstr "" -#: src/rc_formatters.py:402 src/rc_formatters.py:407 +#: src/rc_formatters.py:542 src/rc_formatters.py:547 msgid "__Only whitespace__" msgstr "" -#: src/rc_formatters.py:412 +#: src/rc_formatters.py:552 msgid "Removed" msgstr "" -#: src/rc_formatters.py:414 +#: src/rc_formatters.py:554 msgid "Added" msgstr "" -#: src/rc_formatters.py:448 src/rc_formatters.py:487 +#: src/rc_formatters.py:588 src/rc_formatters.py:627 msgid "Options" msgstr "" -#: src/rc_formatters.py:448 +#: src/rc_formatters.py:588 #, python-brace-format msgid "([preview]({link}) | [undo]({undolink}))" msgstr "" -#: src/rc_formatters.py:453 +#: src/rc_formatters.py:593 #, python-brace-format msgid "Uploaded a new version of {name}" msgstr "" -#: src/rc_formatters.py:455 +#: src/rc_formatters.py:595 #, python-brace-format msgid "Reverted a version of {name}" msgstr "" -#: src/rc_formatters.py:457 +#: src/rc_formatters.py:597 #, python-brace-format msgid "Uploaded {name}" msgstr "" -#: src/rc_formatters.py:473 +#: src/rc_formatters.py:613 msgid "**No license!**" msgstr "" -#: src/rc_formatters.py:485 +#: src/rc_formatters.py:625 msgid "" "\n" "License: {}" msgstr "" -#: src/rc_formatters.py:487 +#: src/rc_formatters.py:627 #, python-brace-format msgid "([preview]({link}))" msgstr "" -#: src/rc_formatters.py:492 +#: src/rc_formatters.py:632 #, python-brace-format msgid "Deleted page {article}" msgstr "" -#: src/rc_formatters.py:495 +#: src/rc_formatters.py:637 #, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "" -#: src/rc_formatters.py:499 +#: src/rc_formatters.py:643 msgid "No redirect has been made" msgstr "" -#: src/rc_formatters.py:500 +#: src/rc_formatters.py:644 msgid "A redirect has been made" msgstr "" -#: src/rc_formatters.py:501 +#: src/rc_formatters.py:645 #, python-brace-format msgid "Moved {redirect}{article} to {target}" msgstr "" -#: src/rc_formatters.py:504 +#: src/rc_formatters.py:648 #, python-brace-format msgid "Moved {redirect}{article} to {title} over redirect" msgstr "" -#: src/rc_formatters.py:508 +#: src/rc_formatters.py:652 #, python-brace-format msgid "Moved protection settings from {redirect}{article} to {title}" msgstr "" -#: src/rc_formatters.py:533 +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 msgid "Blocked from editing the following pages: " msgstr "" -#: src/rc_formatters.py:542 +#: src/rc_formatters.py:689 msgid "Blocked from editing pages on following namespaces: " msgstr "" -#: src/rc_formatters.py:553 +#: src/rc_formatters.py:700 msgid "Partial block details" msgstr "" -#: src/rc_formatters.py:554 +#: src/rc_formatters.py:701 #, python-brace-format msgid "Blocked {blocked_user} {time}" msgstr "" -#: src/rc_formatters.py:558 +#: src/rc_formatters.py:705 #, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "" -#: src/rc_formatters.py:562 +#: src/rc_formatters.py:709 #, python-brace-format msgid "Unblocked {blocked_user}" msgstr "" -#: src/rc_formatters.py:567 +#: src/rc_formatters.py:714 #, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "" -#: src/rc_formatters.py:569 +#: src/rc_formatters.py:716 msgid "Left a comment on their own profile" msgstr "" -#: src/rc_formatters.py:574 +#: src/rc_formatters.py:721 #, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "" -#: src/rc_formatters.py:576 +#: src/rc_formatters.py:723 msgid "Replied to a comment on their own profile" msgstr "" -#: src/rc_formatters.py:581 +#: src/rc_formatters.py:728 #, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "" -#: src/rc_formatters.py:583 +#: src/rc_formatters.py:730 msgid "Edited a comment on their own profile" msgstr "" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 #, python-brace-format msgid "Edited {target}'s profile" msgstr "" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 msgid "Edited their own profile" msgstr "" -#: src/rc_formatters.py:588 +#: src/rc_formatters.py:735 #, python-brace-format msgid "Cleared the {field} field" msgstr "" -#: src/rc_formatters.py:590 +#: src/rc_formatters.py:737 #, python-brace-format msgid "{field} field changed to: {desc}" msgstr "" -#: src/rc_formatters.py:593 +#: src/rc_formatters.py:740 #, python-brace-format msgid "Purged a comment on {target}'s profile" msgstr "" -#: src/rc_formatters.py:599 +#: src/rc_formatters.py:746 #, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "" -#: src/rc_formatters.py:603 +#: src/rc_formatters.py:750 #, python-brace-format msgid "Changed group membership for {target}" msgstr "" -#: src/rc_formatters.py:607 +#: src/rc_formatters.py:754 #, python-brace-format msgid "{target} got autopromoted to a new usergroup" msgstr "" -#: src/rc_formatters.py:622 +#: src/rc_formatters.py:769 #, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "" -#: src/rc_formatters.py:626 +#: src/rc_formatters.py:773 #, python-brace-format msgid "Protected {target}" msgstr "" -#: src/rc_formatters.py:632 +#: src/rc_formatters.py:779 #, python-brace-format msgid "Changed protection level for {article}" msgstr "" -#: src/rc_formatters.py:638 +#: src/rc_formatters.py:785 #, python-brace-format msgid "Removed protection from {article}" msgstr "" -#: src/rc_formatters.py:642 +#: src/rc_formatters.py:789 #, 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] "" -#: src/rc_formatters.py:647 +#: src/rc_formatters.py:801 #, python-brace-format msgid "Imported {article} with {count} revision" msgid_plural "Imported {article} with {count} revisions" msgstr[0] "" msgstr[1] "" -#: src/rc_formatters.py:652 +#: src/rc_formatters.py:806 #, python-brace-format msgid "Restored {article}" msgstr "" -#: src/rc_formatters.py:655 +#: src/rc_formatters.py:809 msgid "Changed visibility of log events" msgstr "" -#: src/rc_formatters.py:658 +#: src/rc_formatters.py:819 msgid "Imported interwiki" msgstr "" -#: src/rc_formatters.py:661 +#: src/rc_formatters.py:822 #, python-brace-format msgid "Edited abuse filter number {number}" msgstr "" -#: src/rc_formatters.py:664 +#: src/rc_formatters.py:825 #, python-brace-format msgid "Created abuse filter number {number}" msgstr "" -#: src/rc_formatters.py:667 +#: src/rc_formatters.py:828 #, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "" -#: src/rc_formatters.py:671 +#: src/rc_formatters.py:832 msgid "Created account automatically" msgstr "" -#: src/rc_formatters.py:674 src/rc_formatters.py:683 +#: src/rc_formatters.py:835 src/rc_formatters.py:844 msgid "Created account" msgstr "" -#: src/rc_formatters.py:677 +#: src/rc_formatters.py:838 #, python-brace-format msgid "Created account {article}" msgstr "" -#: src/rc_formatters.py:680 +#: src/rc_formatters.py:841 #, python-brace-format msgid "Created account {article} and password was sent by email" msgstr "" -#: src/rc_formatters.py:686 +#: src/rc_formatters.py:847 msgid "Added an entry to the interwiki table" msgstr "" -#: src/rc_formatters.py:687 src/rc_formatters.py:693 +#: src/rc_formatters.py:848 src/rc_formatters.py:854 #, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "" -#: src/rc_formatters.py:692 +#: src/rc_formatters.py:853 msgid "Edited an entry in interwiki table" msgstr "" -#: src/rc_formatters.py:698 +#: src/rc_formatters.py:859 msgid "Deleted an entry in interwiki table" msgstr "" -#: src/rc_formatters.py:699 +#: src/rc_formatters.py:860 #, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "" -#: src/rc_formatters.py:702 +#: src/rc_formatters.py:863 #, python-brace-format msgid "Changed the content model of the page {article}" msgstr "" -#: src/rc_formatters.py:703 +#: src/rc_formatters.py:864 #, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "" -#: src/rc_formatters.py:708 +#: src/rc_formatters.py:869 #, python-brace-format msgid "Edited the sprite for {article}" msgstr "" -#: src/rc_formatters.py:711 +#: src/rc_formatters.py:872 #, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "" -#: src/rc_formatters.py:714 +#: src/rc_formatters.py:875 #, python-brace-format msgid "Edited the slice for {article}" msgstr "" -#: src/rc_formatters.py:720 +#: src/rc_formatters.py:881 #, python-brace-format msgid "Created the Cargo table \"{table}\"" msgstr "" -#: src/rc_formatters.py:724 +#: src/rc_formatters.py:885 #, python-brace-format msgid "Deleted the Cargo table \"{table}\"" msgstr "" -#: src/rc_formatters.py:731 +#: src/rc_formatters.py:892 #, python-brace-format msgid "Recreated the Cargo table \"{table}\"" msgstr "" -#: src/rc_formatters.py:738 +#: src/rc_formatters.py:899 #, python-brace-format msgid "Replaced the Cargo table \"{table}\"" msgstr "" -#: src/rc_formatters.py:742 +#: src/rc_formatters.py:903 #, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "" -#: src/rc_formatters.py:746 +#: src/rc_formatters.py:907 #, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "" -#: src/rc_formatters.py:750 +#: src/rc_formatters.py:911 #, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "" -#: src/rc_formatters.py:753 +#: src/rc_formatters.py:914 #, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "" -#: src/rc_formatters.py:756 +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 msgid "Action has been hidden by administration" msgstr "" -#: src/rc_formatters.py:757 -msgid "Unknown" -msgstr "" - -#: src/rc_formatters.py:761 +#: src/rc_formatters.py:951 #, python-brace-format msgid "Unknown event `{event}`" msgstr "" -#: src/rc_formatters.py:767 src/rc_formatters.py:769 +#: src/rc_formatters.py:957 src/rc_formatters.py:959 msgid "Report this on the support server" msgstr "" -#: src/rc_formatters.py:786 +#: src/rc_formatters.py:976 msgid "Tags" msgstr "" -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid "**Added**: " msgstr "" -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid " and {} more\n" msgstr "" -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid "**Removed**: " msgstr "" -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid " and {} more" msgstr "" -#: src/rc_formatters.py:791 +#: src/rc_formatters.py:981 msgid "Changed categories" msgstr "" diff --git a/locale/templates/rcgcdw.pot b/locale/templates/rcgcdw.pot index 7f4e894..2fda298 100644 --- a/locale/templates/rcgcdw.pot +++ b/locale/templates/rcgcdw.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,183 +18,183 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: src/rcgcdw.py:113 src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 -#: src/rcgcdw.py:121 src/rcgcdw.py:123 src/rcgcdw.py:125 +#: src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 src/rcgcdw.py:121 +#: src/rcgcdw.py:123 src/rcgcdw.py:125 src/rcgcdw.py:127 #, python-brace-format msgid "{value} (avg. {avg})" msgstr "" -#: src/rcgcdw.py:145 +#: src/rcgcdw.py:147 msgid "Daily overview" msgstr "" -#: src/rcgcdw.py:153 +#: src/rcgcdw.py:155 msgid "No activity" msgstr "" -#: src/rcgcdw.py:177 +#: src/rcgcdw.py:179 msgid " ({} action)" msgid_plural " ({} actions)" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:179 +#: src/rcgcdw.py:181 msgid " ({} edit)" msgid_plural " ({} edits)" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:184 +#: src/rcgcdw.py:186 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:186 src/rcgcdw.py:187 src/rcgcdw.py:191 +#: src/rcgcdw.py:188 src/rcgcdw.py:189 src/rcgcdw.py:193 msgid "But nobody came" msgstr "" -#: src/rcgcdw.py:194 +#: src/rcgcdw.py:196 msgid "Most active user" msgid_plural "Most active users" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:195 +#: src/rcgcdw.py:197 msgid "Most edited article" msgid_plural "Most edited articles" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Edits made" msgstr "" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "New files" msgstr "" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Admin actions" msgstr "" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "Bytes changed" msgstr "" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "New articles" msgstr "" -#: src/rcgcdw.py:198 +#: src/rcgcdw.py:200 msgid "Unique contributors" msgstr "" -#: src/rcgcdw.py:199 +#: src/rcgcdw.py:201 msgid "Most active hour" msgid_plural "Most active hours" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:200 +#: src/rcgcdw.py:202 msgid "Day score" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "director" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bot" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "editor" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "directors" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "sysop" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bureaucrat" msgstr "" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "reviewer" msgstr "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autoreview" msgstr "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autopatrol" msgstr "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "wiki_guardian" msgstr "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "second" msgid_plural "seconds" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "minute" msgid_plural "minutes" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "hour" msgid_plural "hours" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "day" msgid_plural "days" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "week" msgid_plural "weeks" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "month" msgid_plural "months" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "year" msgid_plural "years" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "millennium" msgid_plural "millennia" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "decade" msgid_plural "decades" msgstr[0] "" msgstr[1] "" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "century" msgid_plural "centuries" msgstr[0] "" diff --git a/locale/templates/redaction.pot b/locale/templates/redaction.pot new file mode 100644 index 0000000..155e037 --- /dev/null +++ b/locale/templates/redaction.pot @@ -0,0 +1,23 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 15:17+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.1\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "" diff --git a/locale/uk/LC_MESSAGES/discussion_formatters.mo b/locale/uk/LC_MESSAGES/discussion_formatters.mo index f68162a..9536936 100644 Binary files a/locale/uk/LC_MESSAGES/discussion_formatters.mo and b/locale/uk/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/uk/LC_MESSAGES/discussion_formatters.po b/locale/uk/LC_MESSAGES/discussion_formatters.po index 5c328e1..d396699 100644 --- a/locale/uk/LC_MESSAGES/discussion_formatters.po +++ b/locale/uk/LC_MESSAGES/discussion_formatters.po @@ -1,14 +1,14 @@ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # -# Frisk , 2020. +# Frisk <>, 2020. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" "PO-Revision-Date: 2020-04-23 23:32+0200\n" -"Last-Translator: Frisk \n" +"Last-Translator: Frisk <>\n" "Language-Team: \n" "Language: en_US\n" "MIME-Version: 1.0\n" @@ -17,40 +17,44 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 19.12.3\n" -#: src/discussion_formatters.py:32 +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:34 +#: src/discussion_formatters.py:36 #, python-brace-format msgid "" "[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:36 +#: src/discussion_formatters.py:38 #, python-brace-format msgid "" "[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " "{forumName}" msgstr "" -#: src/discussion_formatters.py:41 +#: src/discussion_formatters.py:43 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " "to [{title}](<{url}f/p/{threadId}>) in {forumName}" msgstr "" -#: src/discussion_formatters.py:43 src/discussion_formatters.py:52 -#: src/discussion_formatters.py:129 src/discussion_formatters.py:142 +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 msgid "unknown" msgstr "" -#: src/discussion_formatters.py:47 +#: src/discussion_formatters.py:49 #, python-brace-format msgid "" "[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" @@ -58,7 +62,7 @@ msgid "" "Message_Wall:{user_wall}>)" msgstr "" -#: src/discussion_formatters.py:49 +#: src/discussion_formatters.py:51 #, python-brace-format msgid "" "[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" @@ -67,91 +71,90 @@ msgid "" "(<{url}wiki/Message_Wall:{user_wall}>)" msgstr "" -#: src/discussion_formatters.py:54 +#: src/discussion_formatters.py:57 #, python-brace-format msgid "" -"[{author}]({author_url}) created a [comment](<{url}wiki/{article}?" -"commentId={commentId}>) on [{article}](<{url}wiki/{article}>)" -msgstr "" - -#: src/discussion_formatters.py:56 -#, python-brace-format -msgid "" -"[{author}]({author_url}) created a [reply](<{url}wiki/{article}?" -"threadId={threadId}) to a [comment](<{url}wiki/{article}?" -"commentId={commentId}&replyId={replyId}>) on [{article}](<{url}wiki/{article}" -">)" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" msgstr "" #: src/discussion_formatters.py:62 #, python-brace-format msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -#: src/discussion_formatters.py:90 +#: src/discussion_formatters.py:98 #, python-brace-format msgid "Created \"{title}\"" msgstr "" -#: src/discussion_formatters.py:94 +#: src/discussion_formatters.py:102 #, python-brace-format msgid "Created a poll \"{title}\"" msgstr "" -#: src/discussion_formatters.py:101 +#: src/discussion_formatters.py:109 msgid "Option {}" msgstr "" -#: src/discussion_formatters.py:102 +#: src/discussion_formatters.py:110 #, python-brace-format msgid "__[View image]({image_url})__" msgstr "" -#: src/discussion_formatters.py:106 +#: src/discussion_formatters.py:114 #, python-brace-format msgid "Created a quiz \"{title}\"" msgstr "" -#: src/discussion_formatters.py:121 src/discussion_formatters.py:123 +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 msgid "Tags" msgstr "" -#: src/discussion_formatters.py:121 +#: src/discussion_formatters.py:129 msgid "{} tags" msgstr "" -#: src/discussion_formatters.py:126 +#: src/discussion_formatters.py:134 #, python-brace-format msgid "Replied to \"{title}\"" msgstr "" -#: src/discussion_formatters.py:135 +#: src/discussion_formatters.py:143 #, python-brace-format msgid "Created \"{title}\" on {user}'s Message Wall" msgstr "" -#: src/discussion_formatters.py:139 +#: src/discussion_formatters.py:147 #, python-brace-format msgid "Replied to \"{title}\" on {user}'s Message Wall" msgstr "" -#: src/discussion_formatters.py:146 +#: src/discussion_formatters.py:154 #, python-brace-format msgid "Commented on {article}" msgstr "" -#: src/discussion_formatters.py:150 +#: src/discussion_formatters.py:158 #, python-brace-format msgid "Replied to a comment on {article}" msgstr "" -#: src/discussion_formatters.py:154 +#: src/discussion_formatters.py:162 #, python-brace-format msgid "Unknown event `{event}`" msgstr "" -#: src/discussion_formatters.py:160 src/discussion_formatters.py:162 +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 msgid "Report this on the support server" msgstr "" diff --git a/locale/uk/LC_MESSAGES/misc.mo b/locale/uk/LC_MESSAGES/misc.mo index f68162a..0b488bb 100644 Binary files a/locale/uk/LC_MESSAGES/misc.mo and b/locale/uk/LC_MESSAGES/misc.mo differ diff --git a/locale/uk/LC_MESSAGES/misc.po b/locale/uk/LC_MESSAGES/misc.po index d7fc1e0..154855f 100644 --- a/locale/uk/LC_MESSAGES/misc.po +++ b/locale/uk/LC_MESSAGES/misc.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 14:00+0200\n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" "PO-Revision-Date: 2020-07-12 12:17+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -19,60 +19,60 @@ msgstr "" "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 2.3\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "Місцезнаходження" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "Про мене" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "Посилання на Google" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "Посилання на Facebook" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "Посилання на Twitter" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "Посилання на Reddit" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "Посилання на Twitch" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "Посилання на PSN" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "Посилання на VK" -#: src/misc.py:42 +#: src/misc.py:45 #, fuzzy msgid "XBL link" msgstr "Посилання на XVL" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "Посилання на Steam" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "Посилання на Discord" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "Посилання на Battle.net" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" @@ -80,10 +80,10 @@ msgstr "" "\n" "__І більше__" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "Невідомо" -#: src/misc.py:425 +#: src/misc.py:273 msgid "unknown" msgstr "невідомо" diff --git a/locale/uk/LC_MESSAGES/rc.mo b/locale/uk/LC_MESSAGES/rc.mo index 4e93b79..dc3559b 100644 Binary files a/locale/uk/LC_MESSAGES/rc.mo and b/locale/uk/LC_MESSAGES/rc.mo differ diff --git a/locale/uk/LC_MESSAGES/rc.po b/locale/uk/LC_MESSAGES/rc.po index b2118b5..cff67e8 100644 --- a/locale/uk/LC_MESSAGES/rc.po +++ b/locale/uk/LC_MESSAGES/rc.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:22+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-07-12 12:17+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -19,24 +19,24 @@ msgstr "" "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 2.3\n" -#: src/rc.py:150 -#, python-brace-format -msgid "Connection to {wiki} seems to be stable now." -msgstr "З'єднання з {wiki} зараз здається стабільним." - -#: src/rc.py:151 src/rc.py:266 -msgid "Connection status" -msgstr "Статус з'єднання" - -#: src/rc.py:265 +#: src/rc.py:319 #, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki}, здається, не працює або недоступна." -#: src/rc.py:334 +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "Статус з'єднання" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "З'єднання з {wiki} зараз здається стабільним." + +#: src/rc.py:401 msgid "~~hidden~~" msgstr "~~прихована~~" -#: src/rc.py:340 +#: src/rc.py:405 msgid "hidden" msgstr "прихована" diff --git a/locale/uk/LC_MESSAGES/rc_formatters.mo b/locale/uk/LC_MESSAGES/rc_formatters.mo index 71b9488..d050d5b 100644 Binary files a/locale/uk/LC_MESSAGES/rc_formatters.mo and b/locale/uk/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/uk/LC_MESSAGES/rc_formatters.po b/locale/uk/LC_MESSAGES/rc_formatters.po index 43bfa5b..067420b 100644 --- a/locale/uk/LC_MESSAGES/rc_formatters.po +++ b/locale/uk/LC_MESSAGES/rc_formatters.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-10 16:15+0200\n" -"PO-Revision-Date: 2020-09-03 11:19+0000\n" -"Last-Translator: MakandIv \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: 2020-11-18 07:47+0000\n" +"Last-Translator: MakandIv <>\n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -20,37 +20,126 @@ msgstr "" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 4.2.1\n" -#: src/rc_formatters.py:42 -#, python-brace-format +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" +"[{author}]({author_url}) перейменував {redirect}*{article}* поверх " +"перенаправлення в [{target}]({target_url}) {made_a_redirect}{comment}" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "Невідомо" + +#: src/rc_formatters.py:117 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "" "[{author}]({author_url}) відредагував [{article}]({edit_link}){comment} " "({sign}{edit_size})" -#: src/rc_formatters.py:44 -#, python-brace-format +#: src/rc_formatters.py:119 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({sign}" -"{edit_size})" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" msgstr "" "[{author}]({author_url}) створив [{article}]({edit_link}){comment} ({sign}" "{edit_size})" -#: src/rc_formatters.py:47 +#: src/rc_formatters.py:122 #, python-brace-format msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" msgstr "[{author}]({author_url}) завантажив [{file}]({file_link}){comment}" -#: src/rc_formatters.py:54 +#: src/rc_formatters.py:129 #, python-brace-format msgid "" "[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" msgstr "" "[{author}] ({author_url}) повернув версію [{file}] ({file_link}) {comment}" -#: src/rc_formatters.py:58 +#: src/rc_formatters.py:133 #, python-brace-format msgid "" "[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" @@ -59,12 +148,12 @@ msgstr "" "[{author}]({author_url}) завантажив нову версію [{file}]({file_link})" "{comment}" -#: src/rc_formatters.py:61 +#: src/rc_formatters.py:136 #, python-brace-format msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" msgstr "[{author}]({author_url}) вилучив [{page}]({page_link}){comment}" -#: src/rc_formatters.py:65 +#: src/rc_formatters.py:142 #, python-brace-format msgid "" "[{author}]({author_url}) deleted redirect by overwriting [{page}]" @@ -73,15 +162,15 @@ msgstr "" "[{author}]({author_url}) вилучив перенаправлення за допомогою перезапису " "[{page}]({page_link}){comment}" -#: src/rc_formatters.py:69 src/rc_formatters.py:74 +#: src/rc_formatters.py:148 src/rc_formatters.py:153 msgid "without making a redirect" msgstr "не залишивши перенаправлення" -#: src/rc_formatters.py:69 src/rc_formatters.py:75 +#: src/rc_formatters.py:148 src/rc_formatters.py:154 msgid "with a redirect" msgstr "з перенаправленням" -#: src/rc_formatters.py:70 +#: src/rc_formatters.py:149 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" @@ -90,7 +179,7 @@ msgstr "" "[{author}]({author_url}) перейменував {redirect}*{article}* в [{target}]" "({target_url}) {made_a_redirect}{comment}" -#: src/rc_formatters.py:76 +#: src/rc_formatters.py:155 #, python-brace-format msgid "" "[{author}]({author_url}) moved {redirect}*{article}* over redirect to " @@ -99,7 +188,7 @@ msgstr "" "[{author}]({author_url}) перейменував {redirect}*{article}* поверх " "перенаправлення в [{target}]({target_url}) {made_a_redirect}{comment}" -#: src/rc_formatters.py:81 +#: src/rc_formatters.py:160 #, python-brace-format msgid "" "[{author}]({author_url}) moved protection settings from {redirect}*{article}" @@ -108,42 +197,42 @@ msgstr "" "[{author}]({author_url}) переніс налаштування захисту з {redirect}*{article}" "* на [{target}]({target_url}){comment}" -#: src/rc_formatters.py:92 src/rc_formatters.py:518 +#: src/rc_formatters.py:171 src/rc_formatters.py:662 #, fuzzy msgid "for infinity and beyond" msgstr "навіки і назавжди" -#: src/rc_formatters.py:101 src/rc_formatters.py:526 +#: src/rc_formatters.py:180 src/rc_formatters.py:670 #, python-brace-format msgid "for {num} {translated_length}" msgstr "на {num}{translated_length}" -#: src/rc_formatters.py:107 src/rc_formatters.py:529 +#: src/rc_formatters.py:186 src/rc_formatters.py:674 msgid "until {}" msgstr "" -#: src/rc_formatters.py:111 +#: src/rc_formatters.py:190 msgid " on pages: " msgstr " на сторінках: " -#: src/rc_formatters.py:118 src/rc_formatters.py:540 +#: src/rc_formatters.py:197 src/rc_formatters.py:687 msgid " and namespaces: " msgstr " і в простору імен: " -#: src/rc_formatters.py:120 +#: src/rc_formatters.py:199 msgid " on namespaces: " msgstr " в просторах імен: " -#: src/rc_formatters.py:132 +#: src/rc_formatters.py:211 #, python-brace-format msgid "" "[{author}]({author_url}) blocked [{user}]({user_url}) {time}" "{restriction_desc}{comment}" msgstr "" -"[{author}]({author_url}) заблокував [{user}]({user_url}) на " -"{time}{restriction_desc}{comment}" +"[{author}]({author_url}) заблокував [{user}]({user_url}) на {time}" +"{restriction_desc}{comment}" -#: src/rc_formatters.py:136 +#: src/rc_formatters.py:215 #, python-brace-format msgid "" "[{author}]({author_url}) changed block settings for [{blocked_user}]" @@ -152,83 +241,123 @@ msgstr "" "[{author}]({author_url}) змінив блокування для [{blocked_user}]({user_url})" "{comment}" -#: src/rc_formatters.py:140 +#: src/rc_formatters.py:219 #, python-brace-format msgid "" "[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" msgstr "" "[{author}]({author_url}) розблокував [{blocked_user}]({user_url}){comment}" -#: src/rc_formatters.py:143 -#, python-brace-format +#: src/rc_formatters.py:224 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) left a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" msgstr "" "[{author}]({author_url}) залишив [коментар]({comment}) на профілі {target}" -#: src/rc_formatters.py:143 -msgid "their own profile" -msgstr "на своєму профілі" - -#: src/rc_formatters.py:146 -#, python-brace-format +#: src/rc_formatters.py:226 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) replied to a [comment]({comment}) on {target} " +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) залишив [коментар]({comment}) на профілі {target}" + +#: src/rc_formatters.py:232 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " "profile" msgstr "" "[{author}]({author_url}) відповів на [коментар]({comment}) на профілі " "{target}" -#: src/rc_formatters.py:149 src/rc_formatters.py:155 src/rc_formatters.py:166 -#: src/rc_formatters.py:170 -msgid "their own" -msgstr "на своєму" - -#: src/rc_formatters.py:152 -#, python-brace-format +#: src/rc_formatters.py:238 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited a [comment]({comment}) on {target} profile" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" +"[{author}]({author_url}) відповів на [коментар]({comment}) на профілі " +"{target}" + +#: src/rc_formatters.py:246 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" msgstr "" "[{author}]({author_url}) відредагував [коментар]({comment}) на профілі " "{target}" -#: src/rc_formatters.py:158 -#, python-brace-format -msgid "[{author}]({author_url}) purged a comment on {target} profile" +#: src/rc_formatters.py:252 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" +"[{author}]({author_url}) відредагував [коментар]({comment}) на профілі " +"{target}" + +#: src/rc_formatters.py:259 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" msgstr "[{author}] ({author_url}) вилучив коментар в профілі {target}" -#: src/rc_formatters.py:168 -#, python-brace-format -msgid "[{author}]({author_url}) deleted a comment on {target} profile" +#: src/rc_formatters.py:261 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "[{author}] ({author_url}) вилучив коментар в профілі {target}" + +#: src/rc_formatters.py:265 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" msgstr "[{author}]({author_url}) видалив коментар з профілю {target}" -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[{target}]({target_url})'s" -msgstr "[{target}]({target_url})" +#: src/rc_formatters.py:267 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "[{author}]({author_url}) видалив коментар з профілю {target}" -#: src/rc_formatters.py:174 -#, python-brace-format -msgid "[their own]({target_url})" -msgstr "[на своєму]({target_url})" - -#: src/rc_formatters.py:175 -#, python-brace-format +#: src/rc_formatters.py:273 +#, fuzzy, python-brace-format msgid "" -"[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" msgstr "" "[{author}]({author_url}) відредагував {field} на профілі {target}. *({desc})*" -#: src/rc_formatters.py:189 src/rc_formatters.py:191 src/rc_formatters.py:618 -#: src/rc_formatters.py:620 +#: src/rc_formatters.py:279 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" +"[{author}]({author_url}) відредагував {field} на профілі {target}. *({desc})*" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 msgid "none" msgstr "нічого" -#: src/rc_formatters.py:197 src/rc_formatters.py:605 +#: src/rc_formatters.py:298 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" +"[{author}]({author_url}) змінив модель вмісту сторінки [{article}]" +"({article_url}) з {old} на {new}{comment}" + +#: src/rc_formatters.py:300 +#, fuzzy, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" +"[{author}]({author_url}) змінив модель вмісту сторінки [{article}]" +"({article_url}) з {old} на {new}{comment}" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 msgid "System" msgstr "Система" -#: src/rc_formatters.py:202 +#: src/rc_formatters.py:306 #, python-brace-format msgid "" "[{author}]({author_url}) protected [{article}]({article_url}) with the " @@ -237,12 +366,12 @@ msgstr "" "[{author}]({author_url}) захистив [{article}]({article_url}) з наступними " "налаштуваннями: {settings}{comment}" -#: src/rc_formatters.py:204 src/rc_formatters.py:212 src/rc_formatters.py:628 -#: src/rc_formatters.py:634 +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 msgid " [cascading]" msgstr " [каскадний]" -#: src/rc_formatters.py:209 +#: src/rc_formatters.py:313 #, python-brace-format msgid "" "[{author}]({author_url}) modified protection settings of [{article}]" @@ -251,7 +380,7 @@ msgstr "" "[{author}]({author_url}) змінив налаштування захисту [{article}]" "({article_url}) на: {settings}{comment}" -#: src/rc_formatters.py:216 +#: src/rc_formatters.py:320 #, python-brace-format msgid "" "[{author}]({author_url}) removed protection from [{article}]({article_url})" @@ -259,7 +388,7 @@ msgid "" msgstr "" "[{author}]({author_url}) зняв захист з [{article}]({article_url}){comment}" -#: src/rc_formatters.py:220 +#: src/rc_formatters.py:324 #, python-brace-format msgid "" "[{author}]({author_url}) changed visibility of revision on page [{article}]" @@ -277,7 +406,7 @@ msgstr[2] "" "[{author}]({author_url}) змінив видимість {amount} версій сторінки " "[{article}]({article_url}){comment}" -#: src/rc_formatters.py:225 +#: src/rc_formatters.py:337 #, python-brace-format msgid "" "[{author}]({author_url}) imported [{article}]({article_url}) with {count} " @@ -295,22 +424,22 @@ msgstr[2] "" "[{author}]({author_url}) імпортував [{article}]({article_url}) з {count} " "версіями{comment}" -#: src/rc_formatters.py:230 +#: src/rc_formatters.py:342 #, python-brace-format msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" msgstr "[{author}]({author_url}) відновив [{article}]({article_url}){comment}" -#: src/rc_formatters.py:232 +#: src/rc_formatters.py:344 #, python-brace-format msgid "[{author}]({author_url}) changed visibility of log events{comment}" msgstr "[{author}]({author_url}) змінив видимість подій журналу{comment}" -#: src/rc_formatters.py:234 +#: src/rc_formatters.py:354 #, python-brace-format msgid "[{author}]({author_url}) imported interwiki{comment}" msgstr "[{author}]({author_url}) імпортував інтервікі{comment}" -#: src/rc_formatters.py:237 +#: src/rc_formatters.py:357 #, python-brace-format msgid "" "[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" @@ -318,7 +447,7 @@ msgstr "" "[{author}]({author_url}) відредагував фільтр зловживань [під номером " "{number}]({filter_url})" -#: src/rc_formatters.py:241 +#: src/rc_formatters.py:361 #, python-brace-format msgid "" "[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" @@ -326,7 +455,7 @@ msgstr "" "[{author}]({author_url}) створив фільтр зловживань [під номером {number}]" "({filter_url})" -#: src/rc_formatters.py:245 +#: src/rc_formatters.py:365 #, python-brace-format msgid "" "[{author}]({author_url}) merged revision histories of [{article}]" @@ -335,36 +464,35 @@ msgstr "" "[{author}]({author_url}) об'єднав історії версій [{article}]({article_url}) " "з [{dest}]({dest_url}){comment}" -#: src/rc_formatters.py:249 +#: src/rc_formatters.py:369 #, python-brace-format msgid "Account [{author}]({author_url}) was created automatically" msgstr "Обліковий запис [{author}]({author_url}) був автоматично створений" -#: src/rc_formatters.py:252 src/rc_formatters.py:261 +#: src/rc_formatters.py:372 src/rc_formatters.py:381 #, python-brace-format msgid "Account [{author}]({author_url}) was created" msgstr "Обліковий запис [{author}]({author_url}) був створений" -#: src/rc_formatters.py:255 +#: src/rc_formatters.py:375 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url})" "{comment}" msgstr "" -"Обліковий запис [{article}]({article_url}) був створений " -"[{author}]({author_url}){comment}" +"Обліковий запис [{article}]({article_url}) був створений [{author}]" +"({author_url}){comment}" -#: src/rc_formatters.py:258 +#: src/rc_formatters.py:378 #, python-brace-format msgid "" "Account [{article}]({article_url}) was created by [{author}]({author_url}) " "and password was sent by email{comment}" msgstr "" -"Обліковий запис [{article}]({article_url}) був створений " -"[{author}]({author_url}) і пароль був відправлений на електронну " -"пошту{comment}" +"Обліковий запис [{article}]({article_url}) був створений [{author}]" +"({author_url}) і пароль був відправлений на електронну пошту{comment}" -#: src/rc_formatters.py:264 +#: src/rc_formatters.py:384 #, python-brace-format msgid "" "[{author}]({author_url}) added an entry to the [interwiki table]" @@ -373,7 +501,7 @@ msgstr "" "[{author}]({author_url}) додав запис в [таблицю інтервікі]({table_url}), яка " "вказує на {website} з префіксом {prefix}" -#: src/rc_formatters.py:270 +#: src/rc_formatters.py:390 #, python-brace-format msgid "" "[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " @@ -382,14 +510,14 @@ msgstr "" "[{author}]({author_url}) відредагував запис в [таблиці інтервікі]" "({table_url}), яка вказує на {website} з префіксом {prefix}" -#: src/rc_formatters.py:276 +#: src/rc_formatters.py:396 #, python-brace-format msgid "" "[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" msgstr "" "[{author}]({author_url}) вилучив запис в [таблиці інтервікі]({table_url})" -#: src/rc_formatters.py:279 +#: src/rc_formatters.py:399 #, python-brace-format msgid "" "[{author}]({author_url}) changed the content model of the page [{article}]" @@ -398,14 +526,14 @@ msgstr "" "[{author}]({author_url}) змінив модель вмісту сторінки [{article}]" "({article_url}) з {old} на {new}{comment}" -#: src/rc_formatters.py:283 +#: src/rc_formatters.py:403 #, python-brace-format msgid "" "[{author}]({author_url}) edited the sprite for [{article}]({article_url})" msgstr "" "[{author}]({author_url}) відредагував спрайт для [{article}]({article_url})" -#: src/rc_formatters.py:286 +#: src/rc_formatters.py:406 #, python-brace-format msgid "" "[{author}]({author_url}) created the sprite sheet for [{article}]" @@ -414,121 +542,184 @@ msgstr "" "[{author}]({author_url}) створив таблицю спрайтів для [{article}]" "({article_url})" -#: src/rc_formatters.py:289 +#: src/rc_formatters.py:409 #, python-brace-format msgid "" "[{author}]({author_url}) edited the slice for [{article}]({article_url})" msgstr "" "[{author}]({author_url}) відредагував фрагмент для [{article}]({article_url})" -#: src/rc_formatters.py:294 +#: src/rc_formatters.py:414 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) створив [тег]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:296 +#: src/rc_formatters.py:416 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) вилучив [тег]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:301 +#: src/rc_formatters.py:421 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) створив [тег]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:306 +#: src/rc_formatters.py:426 #, fuzzy, python-brace-format msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" msgstr "[{author}]({author_url}) створив [тег]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:309 +#: src/rc_formatters.py:429 #, python-brace-format msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) створив [тег]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:313 +#: src/rc_formatters.py:433 #, python-brace-format msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) вилучив [тег]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:317 +#: src/rc_formatters.py:437 #, python-brace-format msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) активував [тег]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:320 +#: src/rc_formatters.py:440 #, python-brace-format msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" msgstr "[{author}]({author_url}) деактивував [тег]({tag_url}) \"{tag}\"" -#: src/rc_formatters.py:322 +#: src/rc_formatters.py:442 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "[{author}]({author_url}) змінив видимість подій журналу{comment}" + +#: src/rc_formatters.py:444 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) імпортував інтервікі{comment}" + +#: src/rc_formatters.py:447 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) імпортував інтервікі{comment}" + +#: src/rc_formatters.py:450 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" +"[{author}]({author_url}) завантажив нову версію [{file}]({file_link})" +"{comment}" + +#: src/rc_formatters.py:455 +#, fuzzy, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) вилучив [{page}]({page_link}){comment}" + +#: src/rc_formatters.py:460 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "[{author}]({author_url}) імпортував інтервікі{comment}" + +#: src/rc_formatters.py:464 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) імпортував інтервікі{comment}" + +#: src/rc_formatters.py:468 +#, fuzzy, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "[{author}]({author_url}) імпортував інтервікі{comment}" + +#: src/rc_formatters.py:473 msgid "An action has been hidden by administration." msgstr "Дія була прихована адміністрацією." -#: src/rc_formatters.py:329 +#: src/rc_formatters.py:480 #, python-brace-format msgid "" "Unknown event `{event}` by [{author}]({author_url}), report it on the " "[support server](<{support}>)." msgstr "" -#: src/rc_formatters.py:337 src/rc_formatters.py:621 +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 msgid "No description provided" msgstr "Немає опису редагування" -#: src/rc_formatters.py:384 +#: src/rc_formatters.py:524 msgid "(N!) " msgstr "(Н!) " -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "m" msgstr "м" -#: src/rc_formatters.py:385 +#: src/rc_formatters.py:525 msgid "b" msgstr "б" -#: src/rc_formatters.py:402 src/rc_formatters.py:407 +#: src/rc_formatters.py:542 src/rc_formatters.py:547 msgid "__Only whitespace__" msgstr "__Тільки пробіли__" -#: src/rc_formatters.py:412 +#: src/rc_formatters.py:552 msgid "Removed" -msgstr "видалено" +msgstr "Видалено" -#: src/rc_formatters.py:414 +#: src/rc_formatters.py:554 msgid "Added" msgstr "Додано" -#: src/rc_formatters.py:448 src/rc_formatters.py:487 +#: src/rc_formatters.py:588 src/rc_formatters.py:627 msgid "Options" msgstr "Параметри" -#: src/rc_formatters.py:448 +#: src/rc_formatters.py:588 #, python-brace-format msgid "([preview]({link}) | [undo]({undolink}))" msgstr "([перегляд]({link}) | [скасувати]({undolink}))" -#: src/rc_formatters.py:453 +#: src/rc_formatters.py:593 #, python-brace-format msgid "Uploaded a new version of {name}" msgstr "Завантажив нову версію {name}" -#: src/rc_formatters.py:455 +#: src/rc_formatters.py:595 #, python-brace-format msgid "Reverted a version of {name}" msgstr "Повернув версію {name}" -#: src/rc_formatters.py:457 +#: src/rc_formatters.py:597 #, python-brace-format msgid "Uploaded {name}" msgstr "Загрузил {name}" -#: src/rc_formatters.py:473 +#: src/rc_formatters.py:613 msgid "**No license!**" msgstr "**Немає ліцензії!**" -#: src/rc_formatters.py:485 +#: src/rc_formatters.py:625 msgid "" "\n" "License: {}" @@ -536,159 +727,163 @@ msgstr "" "\n" "Ліцензія: {}" -#: src/rc_formatters.py:487 +#: src/rc_formatters.py:627 #, python-brace-format msgid "([preview]({link}))" msgstr "([перегляд]({link}))" -#: src/rc_formatters.py:492 +#: src/rc_formatters.py:632 #, python-brace-format msgid "Deleted page {article}" msgstr "Вилучив сторінку {article}" -#: src/rc_formatters.py:495 +#: src/rc_formatters.py:637 #, python-brace-format msgid "Deleted redirect {article} by overwriting" msgstr "Вилучив перенаправлення {article} by overwriting" -#: src/rc_formatters.py:499 +#: src/rc_formatters.py:643 msgid "No redirect has been made" msgstr "Перенаправлення не зроблено" -#: src/rc_formatters.py:500 +#: src/rc_formatters.py:644 msgid "A redirect has been made" msgstr "Перенаправлення було зроблено" -#: src/rc_formatters.py:501 +#: src/rc_formatters.py:645 #, python-brace-format msgid "Moved {redirect}{article} to {target}" msgstr "Перейменував сторінку {redirect}{article} to {target}" -#: src/rc_formatters.py:504 +#: src/rc_formatters.py:648 #, python-brace-format msgid "Moved {redirect}{article} to {title} over redirect" msgstr "" "Перейменував сторінку {redirect}{article} to {title} поверх перенаправлення" -#: src/rc_formatters.py:508 +#: src/rc_formatters.py:652 #, python-brace-format msgid "Moved protection settings from {redirect}{article} to {title}" msgstr "Переніс налаштування захисту з {redirect}{article} на {title}" -#: src/rc_formatters.py:533 +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 msgid "Blocked from editing the following pages: " msgstr "Заблокований від редагування в наступних сторінках: " -#: src/rc_formatters.py:542 +#: src/rc_formatters.py:689 msgid "Blocked from editing pages on following namespaces: " msgstr "Заблокований від редагування на сторінках в наступних просторах назв: " -#: src/rc_formatters.py:553 +#: src/rc_formatters.py:700 msgid "Partial block details" msgstr "Часткові деталі блокування" -#: src/rc_formatters.py:554 +#: src/rc_formatters.py:701 #, fuzzy, python-brace-format msgid "Blocked {blocked_user} {time}" msgstr "Заблокував {blocked_user} на {time}" -#: src/rc_formatters.py:558 +#: src/rc_formatters.py:705 #, python-brace-format msgid "Changed block settings for {blocked_user}" msgstr "Змінив блокування для {blocked_user}" -#: src/rc_formatters.py:562 +#: src/rc_formatters.py:709 #, python-brace-format msgid "Unblocked {blocked_user}" msgstr "Розблокував {blocked_user}" -#: src/rc_formatters.py:567 +#: src/rc_formatters.py:714 #, python-brace-format msgid "Left a comment on {target}'s profile" msgstr "Залишив коментар на профілі {target}" -#: src/rc_formatters.py:569 +#: src/rc_formatters.py:716 msgid "Left a comment on their own profile" msgstr "Залишив коментар на своєму профілі" -#: src/rc_formatters.py:574 +#: src/rc_formatters.py:721 #, python-brace-format msgid "Replied to a comment on {target}'s profile" msgstr "Відповів на коментар на профілі {target}" -#: src/rc_formatters.py:576 +#: src/rc_formatters.py:723 msgid "Replied to a comment on their own profile" msgstr "Відповів на коментар на своєму профілі" -#: src/rc_formatters.py:581 +#: src/rc_formatters.py:728 #, python-brace-format msgid "Edited a comment on {target}'s profile" msgstr "Відредагував коментар на профілі {target}" -#: src/rc_formatters.py:583 +#: src/rc_formatters.py:730 msgid "Edited a comment on their own profile" msgstr "Відредагував коментар на своєму профілі" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 #, python-brace-format msgid "Edited {target}'s profile" msgstr "Відредагував профіль {target}" -#: src/rc_formatters.py:586 +#: src/rc_formatters.py:733 msgid "Edited their own profile" msgstr "Відредагував свій профіль" -#: src/rc_formatters.py:588 +#: src/rc_formatters.py:735 #, python-brace-format msgid "Cleared the {field} field" msgstr "Очистив поле {field}" -#: src/rc_formatters.py:590 +#: src/rc_formatters.py:737 #, python-brace-format msgid "{field} field changed to: {desc}" msgstr "Поле {field} змінено на: {desc}" -#: src/rc_formatters.py:593 +#: src/rc_formatters.py:740 #, python-brace-format msgid "Purged a comment on {target}'s profile" msgstr "Вилучив коментар в профілі {target}" -#: src/rc_formatters.py:599 +#: src/rc_formatters.py:746 #, python-brace-format msgid "Deleted a comment on {target}'s profile" msgstr "Вилучив коментар на профілі {target}" -#: src/rc_formatters.py:603 +#: src/rc_formatters.py:750 #, python-brace-format msgid "Changed group membership for {target}" msgstr "Змінено членство в групі для {target}" -#: src/rc_formatters.py:607 +#: src/rc_formatters.py:754 #, python-brace-format msgid "{target} got autopromoted to a new usergroup" msgstr "{target} автоматично переведений в нову групу користувачів" -#: src/rc_formatters.py:622 +#: src/rc_formatters.py:769 #, python-brace-format msgid "Groups changed from {old_groups} to {new_groups}{reason}" msgstr "Групи змінені з {old_groups} на {new_groups}{reason}" -#: src/rc_formatters.py:626 +#: src/rc_formatters.py:773 #, python-brace-format msgid "Protected {target}" msgstr "Захистив {target}" -#: src/rc_formatters.py:632 +#: src/rc_formatters.py:779 #, python-brace-format msgid "Changed protection level for {article}" msgstr "Змінив рівень захисту для {article}" -#: src/rc_formatters.py:638 +#: src/rc_formatters.py:785 #, python-brace-format msgid "Removed protection from {article}" msgstr "Зняв захист з {article}" -#: src/rc_formatters.py:642 +#: src/rc_formatters.py:789 #, python-brace-format msgid "Changed visibility of revision on page {article} " msgid_plural "Changed visibility of {amount} revisions on page {article} " @@ -696,7 +891,7 @@ msgstr[0] "Змінив видимість {amount} версії сторінк msgstr[1] "Змінив видимість {amount} версій сторінки {article} " msgstr[2] "Змінив видимість {amount} версій сторінки {article} " -#: src/rc_formatters.py:647 +#: src/rc_formatters.py:801 #, python-brace-format msgid "Imported {article} with {count} revision" msgid_plural "Imported {article} with {count} revisions" @@ -704,177 +899,232 @@ msgstr[0] "Імпортував {article} з {count} версією" msgstr[1] "Імпортував {article} з {count} версіями" msgstr[2] "Імпортував {article} з {count} версіями" -#: src/rc_formatters.py:652 +#: src/rc_formatters.py:806 #, python-brace-format msgid "Restored {article}" msgstr "Відновив {article}" -#: src/rc_formatters.py:655 +#: src/rc_formatters.py:809 msgid "Changed visibility of log events" msgstr "Змінив видимість подій журналу" -#: src/rc_formatters.py:658 +#: src/rc_formatters.py:819 msgid "Imported interwiki" msgstr "Імпортував інтервікі" -#: src/rc_formatters.py:661 +#: src/rc_formatters.py:822 #, python-brace-format msgid "Edited abuse filter number {number}" msgstr "Відредагував фільтр зловживань під номером {number}" -#: src/rc_formatters.py:664 +#: src/rc_formatters.py:825 #, python-brace-format msgid "Created abuse filter number {number}" msgstr "Створив фільтр зловживань під номером {number}" -#: src/rc_formatters.py:667 +#: src/rc_formatters.py:828 #, python-brace-format msgid "Merged revision histories of {article} into {dest}" msgstr "Об'єднав історії версій {article} з {dest}" -#: src/rc_formatters.py:671 +#: src/rc_formatters.py:832 msgid "Created account automatically" -msgstr "" +msgstr "Обліковий запис був створений автоматично" -#: src/rc_formatters.py:674 src/rc_formatters.py:683 +#: src/rc_formatters.py:835 src/rc_formatters.py:844 msgid "Created account" -msgstr "" +msgstr "Створено обліковий запис" -#: src/rc_formatters.py:677 -#, fuzzy, python-brace-format +#: src/rc_formatters.py:838 +#, python-brace-format msgid "Created account {article}" -msgstr "Вилучив сторінку {article}" +msgstr "Створено обліковий запис {article}" -#: src/rc_formatters.py:680 +#: src/rc_formatters.py:841 #, python-brace-format msgid "Created account {article} and password was sent by email" msgstr "" +"Створено обліковий запис {article} і і пароль був відправлений на електронну " +"пошту" -#: src/rc_formatters.py:686 +#: src/rc_formatters.py:847 msgid "Added an entry to the interwiki table" msgstr "Додав запис в таблицю інтервікі" -#: src/rc_formatters.py:687 src/rc_formatters.py:693 +#: src/rc_formatters.py:848 src/rc_formatters.py:854 #, python-brace-format msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Префікс: {prefix}, веб-сайт: {website} | {desc}" -#: src/rc_formatters.py:692 +#: src/rc_formatters.py:853 msgid "Edited an entry in interwiki table" msgstr "Відредагував запис в таблиці інтервікі" -#: src/rc_formatters.py:698 +#: src/rc_formatters.py:859 msgid "Deleted an entry in interwiki table" msgstr "Вилучив запис в таблиці інтервікі" -#: src/rc_formatters.py:699 +#: src/rc_formatters.py:860 #, python-brace-format msgid "Prefix: {prefix} | {desc}" msgstr "Префікс: {prefix} | {desc}" -#: src/rc_formatters.py:702 +#: src/rc_formatters.py:863 #, python-brace-format msgid "Changed the content model of the page {article}" msgstr "Змінив модель вмісту сторінки {article}" -#: src/rc_formatters.py:703 +#: src/rc_formatters.py:864 #, python-brace-format msgid "Model changed from {old} to {new}: {reason}" msgstr "Модель змінена з {old} на {new}: {reason}" -#: src/rc_formatters.py:708 +#: src/rc_formatters.py:869 #, python-brace-format msgid "Edited the sprite for {article}" msgstr "Відредагував спрайт для {article}" -#: src/rc_formatters.py:711 +#: src/rc_formatters.py:872 #, python-brace-format msgid "Created the sprite sheet for {article}" msgstr "Створив таблицю спрайтів для {article}" -#: src/rc_formatters.py:714 +#: src/rc_formatters.py:875 #, python-brace-format msgid "Edited the slice for {article}" msgstr "Відредагував фрагмент для {article}" -#: src/rc_formatters.py:720 +#: src/rc_formatters.py:881 #, fuzzy, python-brace-format msgid "Created the Cargo table \"{table}\"" msgstr "Створив тег \"{tag}\"" -#: src/rc_formatters.py:724 +#: src/rc_formatters.py:885 #, fuzzy, python-brace-format msgid "Deleted the Cargo table \"{table}\"" msgstr "Вилучив тег \"{tag}\"" -#: src/rc_formatters.py:731 +#: src/rc_formatters.py:892 #, fuzzy, python-brace-format msgid "Recreated the Cargo table \"{table}\"" msgstr "Створив тег \"{tag}\"" -#: src/rc_formatters.py:738 +#: src/rc_formatters.py:899 #, fuzzy, python-brace-format msgid "Replaced the Cargo table \"{table}\"" msgstr "Вилучив тег \"{tag}\"" -#: src/rc_formatters.py:742 +#: src/rc_formatters.py:903 #, python-brace-format msgid "Created a tag \"{tag}\"" msgstr "Створив тег \"{tag}\"" -#: src/rc_formatters.py:746 +#: src/rc_formatters.py:907 #, python-brace-format msgid "Deleted a tag \"{tag}\"" msgstr "Вилучив тег \"{tag}\"" -#: src/rc_formatters.py:750 +#: src/rc_formatters.py:911 #, python-brace-format msgid "Activated a tag \"{tag}\"" msgstr "Активував тег \"{tag}\"" -#: src/rc_formatters.py:753 +#: src/rc_formatters.py:914 #, python-brace-format msgid "Deactivated a tag \"{tag}\"" msgstr "Деактивував тег \"{tag}\"" -#: src/rc_formatters.py:756 +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, fuzzy, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "Вилучив тег \"{tag}\"" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 #, fuzzy msgid "Action has been hidden by administration" msgstr "Дія була прихована адміністрацією." -#: src/rc_formatters.py:757 -msgid "Unknown" -msgstr "Невідомо" - -#: src/rc_formatters.py:761 +#: src/rc_formatters.py:951 #, python-brace-format msgid "Unknown event `{event}`" msgstr "" -#: src/rc_formatters.py:767 src/rc_formatters.py:769 +#: src/rc_formatters.py:957 src/rc_formatters.py:959 msgid "Report this on the support server" -msgstr "" +msgstr "Повідомити про це на сервер підтримки" -#: src/rc_formatters.py:786 +#: src/rc_formatters.py:976 msgid "Tags" msgstr "Теги" -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid "**Added**: " msgstr "**Додано**: " -#: src/rc_formatters.py:789 +#: src/rc_formatters.py:979 msgid " and {} more\n" msgstr " та ще {}\n" -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid "**Removed**: " -msgstr "**видалено**: " +msgstr "**Видалено**: " -#: src/rc_formatters.py:790 +#: src/rc_formatters.py:980 msgid " and {} more" msgstr " та ще {}" -#: src/rc_formatters.py:791 +#: src/rc_formatters.py:981 msgid "Changed categories" msgstr "Змінені категорії" + +#~ msgid "their own profile" +#~ msgstr "на своєму профілі" + +#~ msgid "their own" +#~ msgstr "на своєму" + +#, python-brace-format +#~ msgid "[{target}]({target_url})'s" +#~ msgstr "[{target}]({target_url})" + +#, python-brace-format +#~ msgid "[their own]({target_url})" +#~ msgstr "[на своєму]({target_url})" diff --git a/locale/uk/LC_MESSAGES/rcgcdw.po b/locale/uk/LC_MESSAGES/rcgcdw.po index 5159fcd..230ec83 100644 --- a/locale/uk/LC_MESSAGES/rcgcdw.po +++ b/locale/uk/LC_MESSAGES/rcgcdw.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 17:21+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-09-03 13:14+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -19,198 +19,198 @@ msgstr "" "%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" "X-Generator: Poedit 2.4.1\n" -#: src/rcgcdw.py:113 src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 -#: src/rcgcdw.py:121 src/rcgcdw.py:123 src/rcgcdw.py:125 +#: src/rcgcdw.py:115 src/rcgcdw.py:117 src/rcgcdw.py:119 src/rcgcdw.py:121 +#: src/rcgcdw.py:123 src/rcgcdw.py:125 src/rcgcdw.py:127 #, python-brace-format msgid "{value} (avg. {avg})" msgstr "{value} (сер. {avg})" -#: src/rcgcdw.py:145 +#: src/rcgcdw.py:147 msgid "Daily overview" msgstr "Щоденний огляд" -#: src/rcgcdw.py:153 +#: src/rcgcdw.py:155 msgid "No activity" msgstr "Немає активності" -#: src/rcgcdw.py:177 +#: src/rcgcdw.py:179 msgid " ({} action)" msgid_plural " ({} actions)" msgstr[0] " ({} дія)" msgstr[1] " ({} дії)" msgstr[2] " ({} дій)" -#: src/rcgcdw.py:179 +#: src/rcgcdw.py:181 msgid " ({} edit)" msgid_plural " ({} edits)" msgstr[0] " ({} редагування)" msgstr[1] " ({} редагування)" msgstr[2] " ({} редагувань)" -#: src/rcgcdw.py:184 +#: src/rcgcdw.py:186 msgid " UTC ({} action)" msgid_plural " UTC ({} actions)" msgstr[0] " UTC ({} дія)" msgstr[1] " UTC ({} дії)" msgstr[2] " UTC ({} дій)" -#: src/rcgcdw.py:186 src/rcgcdw.py:187 src/rcgcdw.py:191 +#: src/rcgcdw.py:188 src/rcgcdw.py:189 src/rcgcdw.py:193 msgid "But nobody came" msgstr "Але ніхто не прийшов" -#: src/rcgcdw.py:194 +#: src/rcgcdw.py:196 msgid "Most active user" msgid_plural "Most active users" msgstr[0] "Найактивніший користувач" msgstr[1] "Найактивніші користувачі" msgstr[2] "Найактивніші користувачі" -#: src/rcgcdw.py:195 +#: src/rcgcdw.py:197 msgid "Most edited article" msgid_plural "Most edited articles" msgstr[0] "Найредаговішана стаття" msgstr[1] "Найредаговішані статті" msgstr[2] "Найредаговішані статті" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Edits made" msgstr "Зроблено редагувань" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "New files" msgstr "Нових файлів" -#: src/rcgcdw.py:196 +#: src/rcgcdw.py:198 msgid "Admin actions" msgstr "Адміністративних дій" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "Bytes changed" msgstr "Змінено байтів" -#: src/rcgcdw.py:197 +#: src/rcgcdw.py:199 msgid "New articles" msgstr "Нових статей" -#: src/rcgcdw.py:198 +#: src/rcgcdw.py:200 msgid "Unique contributors" msgstr "Унікальних редакторів" -#: src/rcgcdw.py:199 +#: src/rcgcdw.py:201 msgid "Most active hour" msgid_plural "Most active hours" msgstr[0] "Найактивніша година" msgstr[1] "Найактивніший час" msgstr[2] "Найактивніший час" -#: src/rcgcdw.py:200 +#: src/rcgcdw.py:202 msgid "Day score" msgstr "Очок за день" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "director" msgstr "директор" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bot" msgstr "бот" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "editor" msgstr "редактор" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "directors" msgstr "директора" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "sysop" msgstr "администратор" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "bureaucrat" msgstr "бюрократ" -#: src/rcgcdw.py:242 +#: src/rcgcdw.py:244 msgid "reviewer" msgstr "оглядач" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autoreview" msgstr "автоперегляд" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "autopatrol" msgstr "автопатрульний" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "wiki_guardian" msgstr "зберігач_вікі" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "second" msgid_plural "seconds" msgstr[0] "секунда" msgstr[1] "секунди" msgstr[2] "секунд" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "minute" msgid_plural "minutes" msgstr[0] "хвилина" msgstr[1] "хвилини" msgstr[2] "хвилин" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "hour" msgid_plural "hours" msgstr[0] "година" msgstr[1] "години" msgstr[2] "годин" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "day" msgid_plural "days" msgstr[0] "день" msgstr[1] "дня" msgstr[2] "днів" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "week" msgid_plural "weeks" msgstr[0] "тиждень" msgstr[1] "тижні" msgstr[2] "тижнів" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "month" msgid_plural "months" msgstr[0] "місяць" msgstr[1] "місяці" msgstr[2] "місяців" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "year" msgid_plural "years" msgstr[0] "рік" msgstr[1] "роки" msgstr[2] "років" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "millennium" msgid_plural "millennia" msgstr[0] "тисячоліття" msgstr[1] "тисячоліття" msgstr[2] "тисячоліть" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "decade" msgid_plural "decades" msgstr[0] "десятиліття" msgstr[1] "десятиліття" msgstr[2] "десятиліть" -#: src/rcgcdw.py:243 +#: src/rcgcdw.py:245 msgid "century" msgid_plural "centuries" msgstr[0] "століття" diff --git a/locale/uk/LC_MESSAGES/redaction.mo b/locale/uk/LC_MESSAGES/redaction.mo new file mode 100644 index 0000000..71699c7 Binary files /dev/null and b/locale/uk/LC_MESSAGES/redaction.mo differ diff --git a/locale/uk/LC_MESSAGES/redaction.po b/locale/uk/LC_MESSAGES/redaction.po new file mode 100644 index 0000000..bc6140c --- /dev/null +++ b/locale/uk/LC_MESSAGES/redaction.po @@ -0,0 +1,24 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 15:17+0100\n" +"PO-Revision-Date: 2020-11-18 15:19+0100\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n" +"Language: uk\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "" diff --git a/locale/zh-hans/LC_MESSAGES/discussion_formatters.mo b/locale/zh-hans/LC_MESSAGES/discussion_formatters.mo new file mode 100644 index 0000000..b5f2ff9 Binary files /dev/null and b/locale/zh-hans/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/zh-hans/LC_MESSAGES/discussion_formatters.po b/locale/zh-hans/LC_MESSAGES/discussion_formatters.po new file mode 100644 index 0000000..c83ebc8 --- /dev/null +++ b/locale/zh-hans/LC_MESSAGES/discussion_formatters.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh-hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:36 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:38 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:43 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " +"to [{title}](<{url}f/p/{threadId}>) in {forumName}" +msgstr "" + +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 +msgid "unknown" +msgstr "" + +#: src/discussion_formatters.py:49 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/" +"Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:51 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall]" +"(<{url}wiki/Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:57 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:62 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/discussion_formatters.py:98 +#, python-brace-format +msgid "Created \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:102 +#, python-brace-format +msgid "Created a poll \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:109 +msgid "Option {}" +msgstr "" + +#: src/discussion_formatters.py:110 +#, python-brace-format +msgid "__[View image]({image_url})__" +msgstr "" + +#: src/discussion_formatters.py:114 +#, python-brace-format +msgid "Created a quiz \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 +msgid "Tags" +msgstr "" + +#: src/discussion_formatters.py:129 +msgid "{} tags" +msgstr "" + +#: src/discussion_formatters.py:134 +#, python-brace-format +msgid "Replied to \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:143 +#, python-brace-format +msgid "Created \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:147 +#, python-brace-format +msgid "Replied to \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:154 +#, python-brace-format +msgid "Commented on {article}" +msgstr "" + +#: src/discussion_formatters.py:158 +#, python-brace-format +msgid "Replied to a comment on {article}" +msgstr "" + +#: src/discussion_formatters.py:162 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 +msgid "Report this on the support server" +msgstr "" diff --git a/locale/zh-hans/LC_MESSAGES/misc.po b/locale/zh-hans/LC_MESSAGES/misc.po new file mode 100644 index 0000000..098153d --- /dev/null +++ b/locale/zh-hans/LC_MESSAGES/misc.po @@ -0,0 +1,83 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh-hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/misc.py:45 +msgid "Location" +msgstr "" + +#: src/misc.py:45 +msgid "About me" +msgstr "" + +#: src/misc.py:45 +msgid "Google link" +msgstr "" + +#: src/misc.py:45 +msgid "Facebook link" +msgstr "" + +#: src/misc.py:45 +msgid "Twitter link" +msgstr "" + +#: src/misc.py:45 +msgid "Reddit link" +msgstr "" + +#: src/misc.py:45 +msgid "Twitch link" +msgstr "" + +#: src/misc.py:45 +msgid "PSN link" +msgstr "" + +#: src/misc.py:45 +msgid "VK link" +msgstr "" + +#: src/misc.py:45 +msgid "XBL link" +msgstr "" + +#: src/misc.py:45 +msgid "Steam link" +msgstr "" + +#: src/misc.py:45 +msgid "Discord handle" +msgstr "" + +#: src/misc.py:45 +msgid "Battle.net handle" +msgstr "" + +#: src/misc.py:114 +msgid "" +"\n" +"__And more__" +msgstr "" + +#: src/misc.py:271 +msgid "Unknown" +msgstr "" + +#: src/misc.py:273 +msgid "unknown" +msgstr "" diff --git a/locale/zh-hans/LC_MESSAGES/rc.mo b/locale/zh-hans/LC_MESSAGES/rc.mo new file mode 100644 index 0000000..b5f2ff9 Binary files /dev/null and b/locale/zh-hans/LC_MESSAGES/rc.mo differ diff --git a/locale/zh-hans/LC_MESSAGES/rc.po b/locale/zh-hans/LC_MESSAGES/rc.po new file mode 100644 index 0000000..826c948 --- /dev/null +++ b/locale/zh-hans/LC_MESSAGES/rc.po @@ -0,0 +1,39 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh-hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/rc.py:319 +#, python-brace-format +msgid "{wiki} seems to be down or unreachable." +msgstr "" + +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "" + +#: src/rc.py:401 +msgid "~~hidden~~" +msgstr "" + +#: src/rc.py:405 +msgid "hidden" +msgstr "" diff --git a/locale/zh-hans/LC_MESSAGES/rc_formatters.mo b/locale/zh-hans/LC_MESSAGES/rc_formatters.mo index a1d81f1..2a9a754 100644 Binary files a/locale/zh-hans/LC_MESSAGES/rc_formatters.mo and b/locale/zh-hans/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/zh-hans/LC_MESSAGES/rc_formatters.po b/locale/zh-hans/LC_MESSAGES/rc_formatters.po index 7250f0c..a90cf4b 100644 --- a/locale/zh-hans/LC_MESSAGES/rc_formatters.po +++ b/locale/zh-hans/LC_MESSAGES/rc_formatters.po @@ -9,7 +9,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-08-11 19:35+0200\n" "PO-Revision-Date: 2020-08-21 04:13+0000\n" -"Last-Translator: Dianliang233 \n" +"Last-Translator: Dianliang233 <>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh-hans\n" diff --git a/locale/zh-hans/LC_MESSAGES/rcgcdw.mo b/locale/zh-hans/LC_MESSAGES/rcgcdw.mo new file mode 100644 index 0000000..7eb3ce5 Binary files /dev/null and b/locale/zh-hans/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/zh-hans/LC_MESSAGES/rcgcdw.po b/locale/zh-hans/LC_MESSAGES/rcgcdw.po new file mode 100644 index 0000000..a98df4f --- /dev/null +++ b/locale/zh-hans/LC_MESSAGES/rcgcdw.po @@ -0,0 +1,1020 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh-hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/zh_Hans/LC_MESSAGES/discussion_formatters.mo b/locale/zh_Hans/LC_MESSAGES/discussion_formatters.mo new file mode 100644 index 0000000..8df67e9 Binary files /dev/null and b/locale/zh_Hans/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/zh_Hans/LC_MESSAGES/discussion_formatters.po b/locale/zh_Hans/LC_MESSAGES/discussion_formatters.po new file mode 100644 index 0000000..2250351 --- /dev/null +++ b/locale/zh_Hans/LC_MESSAGES/discussion_formatters.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:36 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:38 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:43 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " +"to [{title}](<{url}f/p/{threadId}>) in {forumName}" +msgstr "" + +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 +msgid "unknown" +msgstr "" + +#: src/discussion_formatters.py:49 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/" +"Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:51 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall]" +"(<{url}wiki/Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:57 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:62 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/discussion_formatters.py:98 +#, python-brace-format +msgid "Created \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:102 +#, python-brace-format +msgid "Created a poll \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:109 +msgid "Option {}" +msgstr "" + +#: src/discussion_formatters.py:110 +#, python-brace-format +msgid "__[View image]({image_url})__" +msgstr "" + +#: src/discussion_formatters.py:114 +#, python-brace-format +msgid "Created a quiz \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 +msgid "Tags" +msgstr "" + +#: src/discussion_formatters.py:129 +msgid "{} tags" +msgstr "" + +#: src/discussion_formatters.py:134 +#, python-brace-format +msgid "Replied to \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:143 +#, python-brace-format +msgid "Created \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:147 +#, python-brace-format +msgid "Replied to \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:154 +#, python-brace-format +msgid "Commented on {article}" +msgstr "" + +#: src/discussion_formatters.py:158 +#, python-brace-format +msgid "Replied to a comment on {article}" +msgstr "" + +#: src/discussion_formatters.py:162 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 +msgid "Report this on the support server" +msgstr "" diff --git a/locale/zh_Hans/LC_MESSAGES/misc.mo b/locale/zh_Hans/LC_MESSAGES/misc.mo index 0c5b949..9f7e8e0 100644 Binary files a/locale/zh_Hans/LC_MESSAGES/misc.mo and b/locale/zh_Hans/LC_MESSAGES/misc.mo differ diff --git a/locale/zh_Hans/LC_MESSAGES/misc.po b/locale/zh_Hans/LC_MESSAGES/misc.po index aa11003..257c998 100644 --- a/locale/zh_Hans/LC_MESSAGES/misc.po +++ b/locale/zh_Hans/LC_MESSAGES/misc.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 14:00+0200\n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" "PO-Revision-Date: 2020-08-08 20:59+0000\n" -"Last-Translator: Frisk The Evil Goat Overlord \n" +"Last-Translator: Frisk The Evil Goat Overlord <>\n" "Language-Team: Chinese (Simplified) \n" "Language: zh_Hans\n" @@ -20,59 +20,59 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.1.1\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "XBL link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" @@ -80,10 +80,10 @@ msgstr "" "\n" "__还有更多__" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "" -#: src/misc.py:425 +#: src/misc.py:273 msgid "unknown" msgstr "" diff --git a/locale/zh_Hans/LC_MESSAGES/rc.mo b/locale/zh_Hans/LC_MESSAGES/rc.mo new file mode 100644 index 0000000..8df67e9 Binary files /dev/null and b/locale/zh_Hans/LC_MESSAGES/rc.mo differ diff --git a/locale/zh_Hans/LC_MESSAGES/rc.po b/locale/zh_Hans/LC_MESSAGES/rc.po new file mode 100644 index 0000000..cb76d3c --- /dev/null +++ b/locale/zh_Hans/LC_MESSAGES/rc.po @@ -0,0 +1,39 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/rc.py:319 +#, python-brace-format +msgid "{wiki} seems to be down or unreachable." +msgstr "" + +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "" + +#: src/rc.py:401 +msgid "~~hidden~~" +msgstr "" + +#: src/rc.py:405 +msgid "hidden" +msgstr "" diff --git a/locale/zh_Hans/LC_MESSAGES/rc_formatters.mo b/locale/zh_Hans/LC_MESSAGES/rc_formatters.mo new file mode 100644 index 0000000..c1e7a90 Binary files /dev/null and b/locale/zh_Hans/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/zh_Hans/LC_MESSAGES/rc_formatters.po b/locale/zh_Hans/LC_MESSAGES/rc_formatters.po new file mode 100644 index 0000000..191cf4a --- /dev/null +++ b/locale/zh_Hans/LC_MESSAGES/rc_formatters.po @@ -0,0 +1,1020 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/zh_Hans/LC_MESSAGES/rcgcdw.mo b/locale/zh_Hans/LC_MESSAGES/rcgcdw.mo new file mode 100644 index 0000000..c1e7a90 Binary files /dev/null and b/locale/zh_Hans/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/zh_Hans/LC_MESSAGES/rcgcdw.po b/locale/zh_Hans/LC_MESSAGES/rcgcdw.po new file mode 100644 index 0000000..191cf4a --- /dev/null +++ b/locale/zh_Hans/LC_MESSAGES/rcgcdw.po @@ -0,0 +1,1020 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hans\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/zh_Hant/LC_MESSAGES/discussion_formatters.mo b/locale/zh_Hant/LC_MESSAGES/discussion_formatters.mo new file mode 100644 index 0000000..f7a2c1b Binary files /dev/null and b/locale/zh_Hant/LC_MESSAGES/discussion_formatters.mo differ diff --git a/locale/zh_Hant/LC_MESSAGES/discussion_formatters.po b/locale/zh_Hant/LC_MESSAGES/discussion_formatters.po new file mode 100644 index 0000000..ce12477 --- /dev/null +++ b/locale/zh_Hant/LC_MESSAGES/discussion_formatters.po @@ -0,0 +1,159 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hant\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: src/discussion_formatters.py:25 src/discussion_formatters.py:81 +msgid "Unregistered user" +msgstr "" + +#: src/discussion_formatters.py:34 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:36 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a poll [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:38 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in " +"{forumName}" +msgstr "" + +#: src/discussion_formatters.py:43 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) " +"to [{title}](<{url}f/p/{threadId}>) in {forumName}" +msgstr "" + +#: src/discussion_formatters.py:45 src/discussion_formatters.py:54 +#: src/discussion_formatters.py:137 src/discussion_formatters.py:150 +msgid "unknown" +msgstr "" + +#: src/discussion_formatters.py:49 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/" +"Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:51 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:" +"{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/" +"Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall]" +"(<{url}wiki/Message_Wall:{user_wall}>)" +msgstr "" + +#: src/discussion_formatters.py:57 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) " +"on [{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:62 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}" +"&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on " +"[{article}](<{url}>)" +msgstr "" + +#: src/discussion_formatters.py:70 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/discussion_formatters.py:98 +#, python-brace-format +msgid "Created \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:102 +#, python-brace-format +msgid "Created a poll \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:109 +msgid "Option {}" +msgstr "" + +#: src/discussion_formatters.py:110 +#, python-brace-format +msgid "__[View image]({image_url})__" +msgstr "" + +#: src/discussion_formatters.py:114 +#, python-brace-format +msgid "Created a quiz \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:129 src/discussion_formatters.py:131 +msgid "Tags" +msgstr "" + +#: src/discussion_formatters.py:129 +msgid "{} tags" +msgstr "" + +#: src/discussion_formatters.py:134 +#, python-brace-format +msgid "Replied to \"{title}\"" +msgstr "" + +#: src/discussion_formatters.py:143 +#, python-brace-format +msgid "Created \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:147 +#, python-brace-format +msgid "Replied to \"{title}\" on {user}'s Message Wall" +msgstr "" + +#: src/discussion_formatters.py:154 +#, python-brace-format +msgid "Commented on {article}" +msgstr "" + +#: src/discussion_formatters.py:158 +#, python-brace-format +msgid "Replied to a comment on {article}" +msgstr "" + +#: src/discussion_formatters.py:162 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/discussion_formatters.py:168 src/discussion_formatters.py:170 +msgid "Report this on the support server" +msgstr "" diff --git a/locale/zh_Hant/LC_MESSAGES/misc.mo b/locale/zh_Hant/LC_MESSAGES/misc.mo index fa4e3a9..27bff54 100644 Binary files a/locale/zh_Hant/LC_MESSAGES/misc.mo and b/locale/zh_Hant/LC_MESSAGES/misc.mo differ diff --git a/locale/zh_Hant/LC_MESSAGES/misc.po b/locale/zh_Hant/LC_MESSAGES/misc.po index 71a337a..1255313 100644 --- a/locale/zh_Hant/LC_MESSAGES/misc.po +++ b/locale/zh_Hant/LC_MESSAGES/misc.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-08 14:00+0200\n" +"POT-Creation-Date: 2020-11-18 09:44+0100\n" "PO-Revision-Date: 2020-08-16 19:13+0000\n" -"Last-Translator: Winston Sung \n" +"Last-Translator: Winston Sung <>\n" "Language-Team: Chinese (Traditional) \n" "Language: zh_Hant\n" @@ -19,59 +19,59 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.1.1\n" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Location" msgstr "位置" -#: src/misc.py:42 +#: src/misc.py:45 msgid "About me" msgstr "關於我" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Google link" msgstr "Google 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Facebook link" msgstr "Facebook 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitter link" msgstr "Twitter 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Reddit link" msgstr "Reddit 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Twitch link" msgstr "Twitch 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "PSN link" msgstr "PSN 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "VK link" msgstr "VK 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "XBL link" msgstr "XBL 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Steam link" msgstr "Steam 連結" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Discord handle" msgstr "Discord handle" -#: src/misc.py:42 +#: src/misc.py:45 msgid "Battle.net handle" msgstr "Battle.net handle" -#: src/misc.py:142 +#: src/misc.py:114 msgid "" "\n" "__And more__" @@ -79,10 +79,10 @@ msgstr "" "\n" "__還有更多__" -#: src/misc.py:423 +#: src/misc.py:271 msgid "Unknown" msgstr "未知" -#: src/misc.py:425 +#: src/misc.py:273 msgid "unknown" msgstr "未知" diff --git a/locale/zh_Hant/LC_MESSAGES/rc.mo b/locale/zh_Hant/LC_MESSAGES/rc.mo index 1337e2a..240189e 100644 Binary files a/locale/zh_Hant/LC_MESSAGES/rc.mo and b/locale/zh_Hant/LC_MESSAGES/rc.mo differ diff --git a/locale/zh_Hant/LC_MESSAGES/rc.po b/locale/zh_Hant/LC_MESSAGES/rc.po index 36880e8..2cfadc7 100644 --- a/locale/zh_Hant/LC_MESSAGES/rc.po +++ b/locale/zh_Hant/LC_MESSAGES/rc.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-08-11 19:35+0200\n" +"POT-Creation-Date: 2020-11-18 08:29+0100\n" "PO-Revision-Date: 2020-08-13 19:07+0000\n" -"Last-Translator: Leo-768 \n" +"Last-Translator: Leo-768 <>\n" "Language-Team: Chinese (Traditional) \n" "Language: zh_Hant\n" @@ -19,24 +19,24 @@ msgstr "" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Weblate 4.1.1\n" -#: src/rc.py:150 -#, python-brace-format -msgid "Connection to {wiki} seems to be stable now." -msgstr "與 {wiki} 的連線目前似乎很穩定。" - -#: src/rc.py:151 src/rc.py:266 -msgid "Connection status" -msgstr "連線狀態" - -#: src/rc.py:265 +#: src/rc.py:319 #, python-brace-format msgid "{wiki} seems to be down or unreachable." msgstr "{wiki} 似乎無法訪問。" -#: src/rc.py:334 +#: src/rc.py:320 src/rc.py:332 +msgid "Connection status" +msgstr "連線狀態" + +#: src/rc.py:330 +#, python-brace-format +msgid "Connection to {wiki} seems to be stable now." +msgstr "與 {wiki} 的連線目前似乎很穩定。" + +#: src/rc.py:401 msgid "~~hidden~~" msgstr "~~隱藏~~" -#: src/rc.py:340 +#: src/rc.py:405 msgid "hidden" msgstr "隱藏" diff --git a/locale/zh_Hant/LC_MESSAGES/rc_formatters.mo b/locale/zh_Hant/LC_MESSAGES/rc_formatters.mo new file mode 100644 index 0000000..7cdddd3 Binary files /dev/null and b/locale/zh_Hant/LC_MESSAGES/rc_formatters.mo differ diff --git a/locale/zh_Hant/LC_MESSAGES/rc_formatters.po b/locale/zh_Hant/LC_MESSAGES/rc_formatters.po new file mode 100644 index 0000000..f4ce5d8 --- /dev/null +++ b/locale/zh_Hant/LC_MESSAGES/rc_formatters.po @@ -0,0 +1,1020 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hant\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/zh_Hant/LC_MESSAGES/rcgcdw.mo b/locale/zh_Hant/LC_MESSAGES/rcgcdw.mo new file mode 100644 index 0000000..7cdddd3 Binary files /dev/null and b/locale/zh_Hant/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/zh_Hant/LC_MESSAGES/rcgcdw.po b/locale/zh_Hant/LC_MESSAGES/rcgcdw.po new file mode 100644 index 0000000..f4ce5d8 --- /dev/null +++ b/locale/zh_Hant/LC_MESSAGES/rcgcdw.po @@ -0,0 +1,1020 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 14:13+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: zh_Hant\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: src/rc_formatters.py:28 +msgid "None" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Warning issued" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Blocked user**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Tagged the edit" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Disallowed the action" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**IP range blocked**" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Throttled actions" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "Removed autoconfirmed group" +msgstr "" + +#: src/rc_formatters.py:28 +msgid "**Removed from privileged groups**" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Edit" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Move" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Stash upload" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Deletion" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Account creation" +msgstr "" + +#: src/rc_formatters.py:29 +msgid "Auto account creation" +msgstr "" + +#: src/rc_formatters.py:46 src/rc_formatters.py:53 src/rc_formatters.py:60 +#: src/rc_formatters.py:75 src/rc_formatters.py:96 +msgid "Unregistered user" +msgstr "" + +#: src/rc_formatters.py:83 +#, python-brace-format +msgid "" +"[{author}]({author_url}) triggered *{abuse_filter}*, performing the action " +"\"{action}\" on *[{target}]({target_url})* - action taken: {result}." +msgstr "" + +#: src/rc_formatters.py:85 src/rc_formatters.py:86 src/rc_formatters.py:87 +#: src/rc_formatters.py:445 src/rc_formatters.py:448 src/rc_formatters.py:451 +#: src/rc_formatters.py:452 src/rc_formatters.py:457 src/rc_formatters.py:458 +#: src/rc_formatters.py:465 src/rc_formatters.py:469 src/rc_formatters.py:489 +#: src/rc_formatters.py:490 src/rc_formatters.py:491 src/rc_formatters.py:921 +#: src/rc_formatters.py:924 src/rc_formatters.py:927 src/rc_formatters.py:929 +#: src/rc_formatters.py:932 src/rc_formatters.py:934 src/rc_formatters.py:939 +#: src/rc_formatters.py:942 src/rc_formatters.py:947 +msgid "Unknown" +msgstr "" + +#: src/rc_formatters.py:117 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:119 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}" +"{sign}{edit_size}{bold})" +msgstr "" + +#: src/rc_formatters.py:122 +#, python-brace-format +msgid "[{author}]({author_url}) uploaded [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:129 +#, python-brace-format +msgid "" +"[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:133 +#, python-brace-format +msgid "" +"[{author}]({author_url}) uploaded a new version of [{file}]({file_link})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:136 +#, python-brace-format +msgid "[{author}]({author_url}) deleted [{page}]({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:142 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted redirect by overwriting [{page}]" +"({page_link}){comment}" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:153 +msgid "without making a redirect" +msgstr "" + +#: src/rc_formatters.py:148 src/rc_formatters.py:154 +msgid "with a redirect" +msgstr "" + +#: src/rc_formatters.py:149 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* to [{target}]" +"({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:155 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved {redirect}*{article}* over redirect to " +"[{target}]({target_url}) {made_a_redirect}{comment}" +msgstr "" + +#: src/rc_formatters.py:160 +#, python-brace-format +msgid "" +"[{author}]({author_url}) moved protection settings from {redirect}*{article}" +"* to [{target}]({target_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:171 src/rc_formatters.py:662 +msgid "for infinity and beyond" +msgstr "" + +#: src/rc_formatters.py:180 src/rc_formatters.py:670 +#, python-brace-format +msgid "for {num} {translated_length}" +msgstr "" + +#: src/rc_formatters.py:186 src/rc_formatters.py:674 +msgid "until {}" +msgstr "" + +#: src/rc_formatters.py:190 +msgid " on pages: " +msgstr "" + +#: src/rc_formatters.py:197 src/rc_formatters.py:687 +msgid " and namespaces: " +msgstr "" + +#: src/rc_formatters.py:199 +msgid " on namespaces: " +msgstr "" + +#: src/rc_formatters.py:211 +#, python-brace-format +msgid "" +"[{author}]({author_url}) blocked [{user}]({user_url}) {time}" +"{restriction_desc}{comment}" +msgstr "" + +#: src/rc_formatters.py:215 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed block settings for [{blocked_user}]" +"({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:219 +#, python-brace-format +msgid "" +"[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:224 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:226 +#, python-brace-format +msgid "" +"[{author}]({author_url}) left a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:232 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s " +"profile" +msgstr "" + +#: src/rc_formatters.py:238 +#, python-brace-format +msgid "" +"[{author}]({author_url}) replied to a [comment]({comment}) on their own " +"profile" +msgstr "" + +#: src/rc_formatters.py:246 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:252 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited a [comment]({comment}) on their own profile" +msgstr "" + +#: src/rc_formatters.py:259 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:261 +#, python-brace-format +msgid "[{author}]({author_url}) purged a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:265 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:267 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:273 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:279 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the {field} on their own profile. *({desc})*" +msgstr "" + +#: src/rc_formatters.py:293 src/rc_formatters.py:295 src/rc_formatters.py:765 +#: src/rc_formatters.py:767 +msgid "none" +msgstr "" + +#: src/rc_formatters.py:298 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed group membership for [{target}]" +"({target_url}) from {old_groups} to {new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:300 +#, python-brace-format +msgid "" +"{author} autopromoted [{target}]({target_url}) from {old_groups} to " +"{new_groups}{comment}" +msgstr "" + +#: src/rc_formatters.py:301 src/rc_formatters.py:752 +msgid "System" +msgstr "" + +#: src/rc_formatters.py:306 +#, python-brace-format +msgid "" +"[{author}]({author_url}) protected [{article}]({article_url}) with the " +"following settings: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:308 src/rc_formatters.py:316 src/rc_formatters.py:775 +#: src/rc_formatters.py:781 +msgid " [cascading]" +msgstr "" + +#: src/rc_formatters.py:313 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified protection settings of [{article}]" +"({article_url}) to: {settings}{comment}" +msgstr "" + +#: src/rc_formatters.py:320 +#, python-brace-format +msgid "" +"[{author}]({author_url}) removed protection from [{article}]({article_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:324 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed visibility of revision on page [{article}]" +"({article_url}){comment}" +msgid_plural "" +"[{author}]({author_url}) changed visibility of {amount} revisions on page " +"[{article}]({article_url}){comment}" +msgstr[0] "" + +#: src/rc_formatters.py:337 +#, python-brace-format +msgid "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revision{comment}" +msgid_plural "" +"[{author}]({author_url}) imported [{article}]({article_url}) with {count} " +"revisions{comment}" +msgstr[0] "" + +#: src/rc_formatters.py:342 +#, python-brace-format +msgid "[{author}]({author_url}) restored [{article}]({article_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:344 +#, python-brace-format +msgid "[{author}]({author_url}) changed visibility of log events{comment}" +msgstr "" + +#: src/rc_formatters.py:354 +#, python-brace-format +msgid "[{author}]({author_url}) imported interwiki{comment}" +msgstr "" + +#: src/rc_formatters.py:357 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:361 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created abuse filter [number {number}]({filter_url})" +msgstr "" + +#: src/rc_formatters.py:365 +#, python-brace-format +msgid "" +"[{author}]({author_url}) merged revision histories of [{article}]" +"({article_url}) into [{dest}]({dest_url}){comment}" +msgstr "" + +#: src/rc_formatters.py:369 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created automatically" +msgstr "" + +#: src/rc_formatters.py:372 src/rc_formatters.py:381 +#, python-brace-format +msgid "Account [{author}]({author_url}) was created" +msgstr "" + +#: src/rc_formatters.py:375 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url})" +"{comment}" +msgstr "" + +#: src/rc_formatters.py:378 +#, python-brace-format +msgid "" +"Account [{article}]({article_url}) was created by [{author}]({author_url}) " +"and password was sent by email{comment}" +msgstr "" + +#: src/rc_formatters.py:384 +#, python-brace-format +msgid "" +"[{author}]({author_url}) added an entry to the [interwiki table]" +"({table_url}) pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:390 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) " +"pointing to {website} with {prefix} prefix" +msgstr "" + +#: src/rc_formatters.py:396 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})" +msgstr "" + +#: src/rc_formatters.py:399 +#, python-brace-format +msgid "" +"[{author}]({author_url}) changed the content model of the page [{article}]" +"({article_url}) from {old} to {new}{comment}" +msgstr "" + +#: src/rc_formatters.py:403 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the sprite for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:406 +#, python-brace-format +msgid "" +"[{author}]({author_url}) created the sprite sheet for [{article}]" +"({article_url})" +msgstr "" + +#: src/rc_formatters.py:409 +#, python-brace-format +msgid "" +"[{author}]({author_url}) edited the slice for [{article}]({article_url})" +msgstr "" + +#: src/rc_formatters.py:414 +#, python-brace-format +msgid "[{author}]({author_url}) created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:416 +#, python-brace-format +msgid "[{author}]({author_url}) deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:421 +#, python-brace-format +msgid "[{author}]({author_url}) recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:426 +#, python-brace-format +msgid "[{author}]({author_url}) replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:429 +#, python-brace-format +msgid "[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:433 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:437 +#, python-brace-format +msgid "[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:440 +#, python-brace-format +msgid "[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:442 +#, python-brace-format +msgid "[{author}]({author_url}) changed wiki settings ({reason})" +msgstr "" + +#: src/rc_formatters.py:444 +#, python-brace-format +msgid "[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:447 +#, python-brace-format +msgid "[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:450 +#, python-brace-format +msgid "" +"[{author}]({author_url}) modified a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:455 +#, python-brace-format +msgid "" +"[{author}]({author_url}) deleted a namespace *{namespace_name}* on " +"*{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:460 +#, python-brace-format +msgid "[{author}]({author_url}) modified user group *{group_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:464 +#, python-brace-format +msgid "[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:468 +#, python-brace-format +msgid "[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})" +msgstr "" + +#: src/rc_formatters.py:473 +msgid "An action has been hidden by administration." +msgstr "" + +#: src/rc_formatters.py:480 +#, python-brace-format +msgid "" +"Unknown event `{event}` by [{author}]({author_url}), report it on the " +"[support server](<{support}>)." +msgstr "" + +#: src/rc_formatters.py:488 +#, python-brace-format +msgid "{user} triggered \"{abuse_filter}\"" +msgstr "" + +#: src/rc_formatters.py:489 +msgid "Performed" +msgstr "" + +#: src/rc_formatters.py:490 +msgid "Action taken" +msgstr "" + +#: src/rc_formatters.py:491 +msgid "Title" +msgstr "" + +#: src/rc_formatters.py:500 src/rc_formatters.py:768 +msgid "No description provided" +msgstr "" + +#: src/rc_formatters.py:524 +msgid "(N!) " +msgstr "" + +#: src/rc_formatters.py:525 +msgid "m" +msgstr "" + +#: src/rc_formatters.py:525 +msgid "b" +msgstr "" + +#: src/rc_formatters.py:542 src/rc_formatters.py:547 +msgid "__Only whitespace__" +msgstr "" + +#: src/rc_formatters.py:552 +msgid "Removed" +msgstr "" + +#: src/rc_formatters.py:554 +msgid "Added" +msgstr "" + +#: src/rc_formatters.py:588 src/rc_formatters.py:627 +msgid "Options" +msgstr "" + +#: src/rc_formatters.py:588 +#, python-brace-format +msgid "([preview]({link}) | [undo]({undolink}))" +msgstr "" + +#: src/rc_formatters.py:593 +#, python-brace-format +msgid "Uploaded a new version of {name}" +msgstr "" + +#: src/rc_formatters.py:595 +#, python-brace-format +msgid "Reverted a version of {name}" +msgstr "" + +#: src/rc_formatters.py:597 +#, python-brace-format +msgid "Uploaded {name}" +msgstr "" + +#: src/rc_formatters.py:613 +msgid "**No license!**" +msgstr "" + +#: src/rc_formatters.py:625 +msgid "" +"\n" +"License: {}" +msgstr "" + +#: src/rc_formatters.py:627 +#, python-brace-format +msgid "([preview]({link}))" +msgstr "" + +#: src/rc_formatters.py:632 +#, python-brace-format +msgid "Deleted page {article}" +msgstr "" + +#: src/rc_formatters.py:637 +#, python-brace-format +msgid "Deleted redirect {article} by overwriting" +msgstr "" + +#: src/rc_formatters.py:643 +msgid "No redirect has been made" +msgstr "" + +#: src/rc_formatters.py:644 +msgid "A redirect has been made" +msgstr "" + +#: src/rc_formatters.py:645 +#, python-brace-format +msgid "Moved {redirect}{article} to {target}" +msgstr "" + +#: src/rc_formatters.py:648 +#, python-brace-format +msgid "Moved {redirect}{article} to {title} over redirect" +msgstr "" + +#: src/rc_formatters.py:652 +#, python-brace-format +msgid "Moved protection settings from {redirect}{article} to {title}" +msgstr "" + +#: src/rc_formatters.py:676 +msgid "unknown expiry time" +msgstr "" + +#: src/rc_formatters.py:680 +msgid "Blocked from editing the following pages: " +msgstr "" + +#: src/rc_formatters.py:689 +msgid "Blocked from editing pages on following namespaces: " +msgstr "" + +#: src/rc_formatters.py:700 +msgid "Partial block details" +msgstr "" + +#: src/rc_formatters.py:701 +#, python-brace-format +msgid "Blocked {blocked_user} {time}" +msgstr "" + +#: src/rc_formatters.py:705 +#, python-brace-format +msgid "Changed block settings for {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:709 +#, python-brace-format +msgid "Unblocked {blocked_user}" +msgstr "" + +#: src/rc_formatters.py:714 +#, python-brace-format +msgid "Left a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:716 +msgid "Left a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:721 +#, python-brace-format +msgid "Replied to a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:723 +msgid "Replied to a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:728 +#, python-brace-format +msgid "Edited a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:730 +msgid "Edited a comment on their own profile" +msgstr "" + +#: src/rc_formatters.py:733 +#, python-brace-format +msgid "Edited {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:733 +msgid "Edited their own profile" +msgstr "" + +#: src/rc_formatters.py:735 +#, python-brace-format +msgid "Cleared the {field} field" +msgstr "" + +#: src/rc_formatters.py:737 +#, python-brace-format +msgid "{field} field changed to: {desc}" +msgstr "" + +#: src/rc_formatters.py:740 +#, python-brace-format +msgid "Purged a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:746 +#, python-brace-format +msgid "Deleted a comment on {target}'s profile" +msgstr "" + +#: src/rc_formatters.py:750 +#, python-brace-format +msgid "Changed group membership for {target}" +msgstr "" + +#: src/rc_formatters.py:754 +#, python-brace-format +msgid "{target} got autopromoted to a new usergroup" +msgstr "" + +#: src/rc_formatters.py:769 +#, python-brace-format +msgid "Groups changed from {old_groups} to {new_groups}{reason}" +msgstr "" + +#: src/rc_formatters.py:773 +#, python-brace-format +msgid "Protected {target}" +msgstr "" + +#: src/rc_formatters.py:779 +#, python-brace-format +msgid "Changed protection level for {article}" +msgstr "" + +#: src/rc_formatters.py:785 +#, python-brace-format +msgid "Removed protection from {article}" +msgstr "" + +#: src/rc_formatters.py:789 +#, python-brace-format +msgid "Changed visibility of revision on page {article} " +msgid_plural "Changed visibility of {amount} revisions on page {article} " +msgstr[0] "" + +#: src/rc_formatters.py:801 +#, python-brace-format +msgid "Imported {article} with {count} revision" +msgid_plural "Imported {article} with {count} revisions" +msgstr[0] "" + +#: src/rc_formatters.py:806 +#, python-brace-format +msgid "Restored {article}" +msgstr "" + +#: src/rc_formatters.py:809 +msgid "Changed visibility of log events" +msgstr "" + +#: src/rc_formatters.py:819 +msgid "Imported interwiki" +msgstr "" + +#: src/rc_formatters.py:822 +#, python-brace-format +msgid "Edited abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:825 +#, python-brace-format +msgid "Created abuse filter number {number}" +msgstr "" + +#: src/rc_formatters.py:828 +#, python-brace-format +msgid "Merged revision histories of {article} into {dest}" +msgstr "" + +#: src/rc_formatters.py:832 +msgid "Created account automatically" +msgstr "" + +#: src/rc_formatters.py:835 src/rc_formatters.py:844 +msgid "Created account" +msgstr "" + +#: src/rc_formatters.py:838 +#, python-brace-format +msgid "Created account {article}" +msgstr "" + +#: src/rc_formatters.py:841 +#, python-brace-format +msgid "Created account {article} and password was sent by email" +msgstr "" + +#: src/rc_formatters.py:847 +msgid "Added an entry to the interwiki table" +msgstr "" + +#: src/rc_formatters.py:848 src/rc_formatters.py:854 +#, python-brace-format +msgid "Prefix: {prefix}, website: {website} | {desc}" +msgstr "" + +#: src/rc_formatters.py:853 +msgid "Edited an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:859 +msgid "Deleted an entry in interwiki table" +msgstr "" + +#: src/rc_formatters.py:860 +#, python-brace-format +msgid "Prefix: {prefix} | {desc}" +msgstr "" + +#: src/rc_formatters.py:863 +#, python-brace-format +msgid "Changed the content model of the page {article}" +msgstr "" + +#: src/rc_formatters.py:864 +#, python-brace-format +msgid "Model changed from {old} to {new}: {reason}" +msgstr "" + +#: src/rc_formatters.py:869 +#, python-brace-format +msgid "Edited the sprite for {article}" +msgstr "" + +#: src/rc_formatters.py:872 +#, python-brace-format +msgid "Created the sprite sheet for {article}" +msgstr "" + +#: src/rc_formatters.py:875 +#, python-brace-format +msgid "Edited the slice for {article}" +msgstr "" + +#: src/rc_formatters.py:881 +#, python-brace-format +msgid "Created the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:885 +#, python-brace-format +msgid "Deleted the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:892 +#, python-brace-format +msgid "Recreated the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:899 +#, python-brace-format +msgid "Replaced the Cargo table \"{table}\"" +msgstr "" + +#: src/rc_formatters.py:903 +#, python-brace-format +msgid "Created a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:907 +#, python-brace-format +msgid "Deleted a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:911 +#, python-brace-format +msgid "Activated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:914 +#, python-brace-format +msgid "Deactivated a tag \"{tag}\"" +msgstr "" + +#: src/rc_formatters.py:917 +msgid "Changed wiki settings" +msgstr "" + +#: src/rc_formatters.py:921 +#, python-brace-format +msgid "Deleted a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:924 +#, python-brace-format +msgid "Locked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:927 +#, python-brace-format +msgid "Modified a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:929 src/rc_formatters.py:934 +msgid "Wiki" +msgstr "" + +#: src/rc_formatters.py:931 +#, python-brace-format +msgid "Deleted a \"{namespace_name}\" namespace" +msgstr "" + +#: src/rc_formatters.py:936 +#, python-brace-format +msgid "Modified \"{usergroup_name}\" usergroup" +msgstr "" + +#: src/rc_formatters.py:939 +#, python-brace-format +msgid "Restored a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:942 +#, python-brace-format +msgid "Unlocked a \"{wiki}\" wiki" +msgstr "" + +#: src/rc_formatters.py:946 +msgid "Action has been hidden by administration" +msgstr "" + +#: src/rc_formatters.py:951 +#, python-brace-format +msgid "Unknown event `{event}`" +msgstr "" + +#: src/rc_formatters.py:957 src/rc_formatters.py:959 +msgid "Report this on the support server" +msgstr "" + +#: src/rc_formatters.py:976 +msgid "Tags" +msgstr "" + +#: src/rc_formatters.py:979 +msgid "**Added**: " +msgstr "" + +#: src/rc_formatters.py:979 +msgid " and {} more\n" +msgstr "" + +#: src/rc_formatters.py:980 +msgid "**Removed**: " +msgstr "" + +#: src/rc_formatters.py:980 +msgid " and {} more" +msgstr "" + +#: src/rc_formatters.py:981 +msgid "Changed categories" +msgstr "" diff --git a/locale/zh_Hant/LC_MESSAGES/redaction.mo b/locale/zh_Hant/LC_MESSAGES/redaction.mo new file mode 100644 index 0000000..87db467 Binary files /dev/null and b/locale/zh_Hant/LC_MESSAGES/redaction.mo differ diff --git a/locale/zh_Hant/LC_MESSAGES/redaction.po b/locale/zh_Hant/LC_MESSAGES/redaction.po new file mode 100644 index 0000000..d17a88a --- /dev/null +++ b/locale/zh_Hant/LC_MESSAGES/redaction.po @@ -0,0 +1,24 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the RcGcDw package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: RcGcDw\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-18 15:17+0100\n" +"PO-Revision-Date: 2020-11-18 15:21+0100\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.4.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: zh_Hant\n" + +#: src/discord/redaction.py:59 src/discord/redaction.py:62 +#: src/discord/redaction.py:67 +msgid "Removed" +msgstr "" diff --git a/scripts/generate-translations.sh b/scripts/generate-translations.sh index c67368e..19430e1 100644 --- a/scripts/generate-translations.sh +++ b/scripts/generate-translations.sh @@ -9,3 +9,9 @@ do msgmerge -U locale/$language/LC_MESSAGES/$file.po locale/templates/$file.pot done done +# Exceptions +xgettext -L Python --package-name=RcGcDw -o "locale/templates/redaction.pot" src/discord/redaction.py +for language in de fr lol pl pt-br ru uk zh_Hans zh_Hant +do + msgmerge -U locale/$language/LC_MESSAGES/redaction.po locale/templates/redaction.pot +done \ No newline at end of file diff --git a/settings.json.example b/settings.json.example index b8e645b..e272035 100644 --- a/settings.json.example +++ b/settings.json.example @@ -19,6 +19,7 @@ }, "ignored": ["external", "newusers/create", "newusers/autocreate", "newusers/create2", "newusers/byemail", "newusers/newusers"], "show_updown_messages": true, + "ignored_namespaces": [], "overview": false, "overview_time": "00:00", "send_empty_overview": false, @@ -30,6 +31,13 @@ "wiki_bot_password": "", "show_added_categories": true, "show_bots": false, + "show_abuselog": false, + "hide_ips": false, + "discord_message_cooldown": 0, + "auto_suppression": { + "enabled": false, + "db_location": ":memory:" + }, "logging": { "version": 1, "disable_existing_loggers": false, diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/configloader.py b/src/configloader.py index 42c7bce..03c39ca 100644 --- a/src/configloader.py +++ b/src/configloader.py @@ -6,7 +6,7 @@ try: # load settings if settings["limitrefetch"] < settings["limit"] and settings["limitrefetch"] != -1: settings["limitrefetch"] = settings["limit"] if "user-agent" in settings["header"]: - settings["header"]["user-agent"] = settings["header"]["user-agent"].format(version="1.11") # set the version in the useragent + settings["header"]["user-agent"] = settings["header"]["user-agent"].format(version="1.13") # set the version in the useragent except FileNotFoundError: logging.critical("No config file could be found. Please make sure settings.json is in the directory.") sys.exit(1) diff --git a/src/discord/__init__.py b/src/discord/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/discord/message.py b/src/discord/message.py new file mode 100644 index 0000000..ed1d357 --- /dev/null +++ b/src/discord/message.py @@ -0,0 +1,89 @@ +import json +import math +import random +from collections import defaultdict + +from src.configloader import settings + + +class DiscordMessage: + """A class defining a typical Discord JSON representation of webhook payload.""" + def __init__(self, message_type: str, event_type: str, webhook_url: str, content=None): + self.webhook_object = dict(allowed_mentions={"parse": []}, avatar_url=settings["avatars"].get(message_type, "")) + self.webhook_url = webhook_url + + if message_type == "embed": + self.__setup_embed() + elif message_type == "compact": + self.webhook_object["content"] = content + + self.event_type = event_type + + def __setitem__(self, key, value): + """Set item is used only in embeds.""" + try: + self.embed[key] = value + except NameError: + raise TypeError("Tried to assign a value when message type is plain message!") + + def __getitem__(self, item): + return self.embed[item] + + def __repr__(self): + """Return the Discord webhook object ready to be sent""" + return json.dumps(self.webhook_object) + + def __setup_embed(self): + self.embed = defaultdict(dict) + if "embeds" not in self.webhook_object: + self.webhook_object["embeds"] = [self.embed] + else: + self.webhook_object["embeds"].append(self.embed) + self.embed["color"] = None + + def add_embed(self): + self.finish_embed() + self.__setup_embed() + + def finish_embed(self): + if self.embed["color"] is None: + if settings["appearance"]["embed"].get(self.event_type, {"color": None})["color"] is None: + self.embed["color"] = random.randrange(1, 16777215) + else: + self.embed["color"] = settings["appearance"]["embed"][self.event_type]["color"] + else: + self.embed["color"] = math.floor(self.embed["color"]) + + def set_author(self, name, url, icon_url=""): + self.embed["author"]["name"] = name + self.embed["author"]["url"] = url + self.embed["author"]["icon_url"] = icon_url + + def add_field(self, name, value, inline=False): + if "fields" not in self.embed: + self.embed["fields"] = [] + self.embed["fields"].append(dict(name=name, value=value, inline=inline)) + + def set_avatar(self, url): + self.webhook_object["avatar_url"] = url + + def set_name(self, name): + self.webhook_object["username"] = name + + +class DiscordMessageRaw(DiscordMessage): + def __init__(self, content: dict, webhook_url: str): + self.webhook_object = content + self.webhook_url = webhook_url + +class DiscordMessageMetadata: + def __init__(self, method, log_id = None, page_id = None, rev_id = None, webhook_url = None, new_data = None): + self.method = method + self.page_id = page_id + self.log_id = log_id + self.rev_id = rev_id + self.webhook_url = webhook_url + self.new_data = new_data + + def dump_ids(self) -> (int, int, int): + return self.page_id, self.rev_id, self.log_id \ No newline at end of file diff --git a/src/discord/queue.py b/src/discord/queue.py new file mode 100644 index 0000000..07f28af --- /dev/null +++ b/src/discord/queue.py @@ -0,0 +1,172 @@ +import re +import sys +import time +import logging +from typing import Optional + +import requests + +from src.configloader import settings +from src.discord.message import DiscordMessage, DiscordMessageMetadata + +AUTO_SUPPRESSION_ENABLED = settings.get("auto_suppression", {"enabled": False}).get("enabled") +if AUTO_SUPPRESSION_ENABLED: + from src.fileio.database import add_entry as add_message_redaction_entry + +rate_limit = 0 + +logger = logging.getLogger("rcgcdw.discord.queue") + +class MessageQueue: + """Message queue class for undelivered messages""" + def __init__(self): + self._queue = [] + + def __repr__(self): + return self._queue + + def __len__(self): + return len(self._queue) + + def __iter__(self): + return iter(self._queue) + + def clear(self): + self._queue.clear() + + def add_message(self, message): + self._queue.append(message) + + def cut_messages(self, item_num): + self._queue = self._queue[item_num:] + + @staticmethod + def compare_message_to_dict(metadata: DiscordMessageMetadata, to_match: dict): + """Compare DiscordMessageMetadata fields and match them against dictionary""" + for name, val in to_match.items(): + if getattr(metadata, name, None) != val: + return False + return True + + def delete_all_with_matching_metadata(self, **properties): + """Deletes all of the messages that have matching metadata properties (useful for message redaction)""" + for index, item in reversed(list(enumerate(self._queue))): + if self.compare_message_to_dict(item[1], properties): + self._queue.pop(index) + + def resend_msgs(self): + if self._queue: + logger.info( + "{} messages waiting to be delivered to Discord due to Discord throwing errors/no connection to Discord servers.".format( + len(self._queue))) + for num, item in enumerate(self._queue): + logger.debug( + "Trying to send a message to Discord from the queue with id of {} and content {}".format(str(num), + str(item))) + if send_to_discord_webhook(item[0], metadata=item[1]) < 2: + logger.debug("Sending message succeeded") + else: + logger.debug("Sending message failed") + break + else: + self.clear() + logger.debug("Queue emptied, all messages delivered") + self.cut_messages(num) + logger.debug(self._queue) + + +messagequeue = MessageQueue() + + +def handle_discord_http(code, formatted_embed, result): + if 300 > code > 199: # message went through + return 0 + elif code == 400: # HTTP BAD REQUEST result.status_code, data, result, header + logger.error( + "Following message has been rejected by Discord, please submit a bug on our bugtracker adding it:") + logger.error(formatted_embed) + logger.error(result.text) + return 1 + elif code == 401 or code == 404: # HTTP UNAUTHORIZED AND NOT FOUND + if result.request.method == "POST": # Ignore not found for DELETE and PATCH requests since the message could already be removed by admin + logger.error("Webhook URL is invalid or no longer in use, please replace it with proper one.") + sys.exit(1) + else: + return 0 + elif code == 429: + logger.error("We are sending too many requests to the Discord, slowing down...") + return 2 + elif 499 < code < 600: + logger.error( + "Discord have trouble processing the event, and because the HTTP code returned is {} it means we blame them.".format( + code)) + return 3 + + +def update_ratelimit(request): + """Updates rate limit time""" + global rate_limit + rate_limit = 0 if int(request.headers.get('x-ratelimit-remaining', "-1")) > 0 else int(request.headers.get( + 'x-ratelimit-reset-after', 0)) + rate_limit += settings.get("discord_message_cooldown", 0) + + +def send_to_discord_webhook(data: Optional[DiscordMessage], metadata: DiscordMessageMetadata): + global rate_limit + header = settings["header"] + header['Content-Type'] = 'application/json' + standard_args = dict(headers=header) + if metadata.method == "POST": + req = requests.Request("POST", data.webhook_url+"?wait=" + ("true" if AUTO_SUPPRESSION_ENABLED else "false"), data=repr(data), **standard_args) + elif metadata.method == "DELETE": + req = requests.Request("DELETE", metadata.webhook_url, **standard_args) + elif metadata.method == "PATCH": + req = requests.Request("PATCH", data.webhook_url, data=repr(data), **standard_args) + try: + time.sleep(rate_limit) + rate_limit = 0 + req = req.prepare() + result = requests.Session().send(req, timeout=10) + update_ratelimit(result) + if AUTO_SUPPRESSION_ENABLED and metadata.method == "POST": + if 199 < result.status_code < 300: # check if positive error log + try: + add_message_redaction_entry(*metadata.dump_ids(), repr(data), result.json().get("id")) + except ValueError: + logger.error("Couldn't get json of result of sending Discord message.") + else: + pass + except requests.exceptions.Timeout: + logger.warning("Timeouted while sending data to the webhook.") + return 3 + except requests.exceptions.ConnectionError: + logger.warning("Connection error while sending the data to a webhook") + return 3 + else: + return handle_discord_http(result.status_code, data, result) + + +def send_to_discord(data: Optional[DiscordMessage], meta: DiscordMessageMetadata): + if data is not None: + for regex in settings["disallow_regexes"]: + if data.webhook_object.get("content", None): + if re.search(re.compile(regex), data.webhook_object["content"]): + logger.info("Message {} has been rejected due to matching filter ({}).".format(data.webhook_object["content"], regex)) + return # discard the message without anything + else: + for to_check in [data.webhook_object.get("description", ""), data.webhook_object.get("title", ""), *[x["value"] for x in data["fields"]], data.webhook_object.get("author", {"name": ""}).get("name", "")]: + if re.search(re.compile(regex), to_check): + logger.info("Message \"{}\" has been rejected due to matching filter ({}).".format( + to_check, regex)) + return # discard the message without anything + if messagequeue: + messagequeue.add_message((data, meta)) + else: + code = send_to_discord_webhook(data, metadata=meta) + if code == 3: + messagequeue.add_message((data, meta)) + elif code == 2: + time.sleep(5.0) + messagequeue.add_message((data, meta)) + elif code < 2: + pass \ No newline at end of file diff --git a/src/discord/redaction.py b/src/discord/redaction.py new file mode 100644 index 0000000..68562f3 --- /dev/null +++ b/src/discord/redaction.py @@ -0,0 +1,74 @@ +import logging +import json +from src.configloader import settings +from src.discord.message import DiscordMessageMetadata, DiscordMessage, DiscordMessageRaw +from src.discord.queue import send_to_discord, messagequeue +from src.fileio.database import db_cursor, db_connection +from src.i18n import redaction as redaction_translation + +logger = logging.getLogger("rcgcdw.discord.redaction") # TODO Figure out why does this logger do not work +_ = redaction_translation.gettext +#ngettext = redaction_translation.ngettext + + +def delete_messages(matching_data: dict): + """Delete messages that match given data""" + sql_conditions = "" + for key, value in matching_data.items(): + sql_conditions += "{} = ? AND".format(key) + else: + sql_conditions = sql_conditions[0:-4] # remove last AND statement + to_delete = db_cursor.execute("SELECT msg_id FROM event WHERE {CON}".format(CON=sql_conditions), list(matching_data.values())) + if len(messagequeue) > 0: + messagequeue.delete_all_with_matching_metadata(**matching_data) + msg_to_remove = [] + logger.debug("Deleting messages for data: {}".format(matching_data)) + for message in to_delete: + webhook_url = "{main_webhook}/messages/{message_id}".format(main_webhook=settings["webhookURL"], message_id=message[0]) + msg_to_remove.append(message[0]) + logger.debug("Removing following message: {}".format(message[0])) + send_to_discord(None, DiscordMessageMetadata("DELETE", webhook_url=webhook_url)) + for msg in msg_to_remove: + db_cursor.execute("DELETE FROM messages WHERE message_id = ?", (msg,)) + db_connection.commit() + + +def redact_messages(ids: list, entry_type: int, to_censor: dict): + """Redact past Discord messages + + ids: list of ints + entry_type: int - 0 for revdel, 1 for logdel + to_censor: dict - logparams of message parts to censor""" + for event_id in ids: + if entry_type == 0: # TODO check if queries are proper + message = db_cursor.execute("SELECT content, message_id FROM messages INNER JOIN event ON event.msg_id = messages.message_id WHERE event.revid = ?;", (event_id, )) + else: + message = db_cursor.execute( + "SELECT content, message_id FROM messages INNER JOIN event ON event.msg_id = messages.message_id WHERE event.logid = ?;", + (event_id,)) + if settings["appearance"]["mode"] == "embed": + if message is not None: + row = message.fetchone() + try: + message = json.loads(row[0]) + new_embed = message["embeds"][0] + except ValueError: + logger.error("Couldn't loads JSON for message data. What happened? Data: {}".format(row[0])) + return + if "user" in to_censor: + new_embed["author"]["name"] = _("Removed") + new_embed["author"].pop("url") + if "action" in to_censor: + new_embed["title"] = _("Removed") + new_embed.pop("url") + if "content" in to_censor: + new_embed.pop("fields") + if "comment" in to_censor: + new_embed["description"] = _("Removed") + message["embeds"][0] = new_embed + db_cursor.execute("UPDATE messages SET content = ? WHERE message_id = ?;", (json.dumps(message), row[1],)) + db_connection.commit() + logger.debug(message) + send_to_discord(DiscordMessageRaw(message, settings["webhookURL"]+"/messages/"+str(row[1])), DiscordMessageMetadata("PATCH")) + else: + logger.debug("Could not find message in the database.") diff --git a/src/discussion_formatters.py b/src/discussion_formatters.py index 9a81ec2..13fb6d4 100644 --- a/src/discussion_formatters.py +++ b/src/discussion_formatters.py @@ -4,7 +4,9 @@ import gettext from urllib.parse import quote_plus from src.configloader import settings -from src.misc import link_formatter, create_article_path, DiscordMessage, send_to_discord, escape_formatting +from src.misc import link_formatter, create_article_path, escape_formatting +from src.discord.queue import send_to_discord +from src.discord.message import DiscordMessage, DiscordMessageMetadata from src.i18n import discussion_formatters _ = discussion_formatters.gettext @@ -20,7 +22,7 @@ def compact_formatter(post_type, post, article_paths): author = post["createdBy"]["name"] author_url = "<{url}f/u/{creatorId}>".format(url=settings["fandom_discussions"]["wiki_url"], creatorId=post["creatorId"]) elif post["creatorIp"]: - author = post["creatorIp"][1:] + author = post["creatorIp"][1:] if settings.get("hide_ips", False) is False else _("Unregistered user") author_url = "<{url}wiki/Special:Contributions{creatorIp}>".format(url=settings["fandom_discussions"]["wiki_url"], creatorIp=post["creatorIp"]) else: author = post["createdBy"]["name"] @@ -36,27 +38,27 @@ def compact_formatter(post_type, post, article_paths): msg_text = _("[{author}]({author_url}) created a quiz [{title}](<{url}f/p/{threadId}>) in {forumName}") elif thread_funnel != "TEXT": discussion_logger.warning("The type of {} is an unknown discussion post type. Please post an issue on the project page to have it added https://gitlab.com/piotrex43/RcGcDw/-/issues.".format(thread_funnel)) - message = msg_text.format(author=author, author_url=author_url, title=post["title"], url=settings["fandom_discussions"]["wiki_url"], threadId=post["threadId"], forumName=post["forumName"]) + message = "📝 "+msg_text.format(author=author, author_url=author_url, title=post["title"], url=settings["fandom_discussions"]["wiki_url"], threadId=post["threadId"], forumName=post["forumName"]) else: - message = _("[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) to [{title}](<{url}f/p/{threadId}>) in {forumName}").format(author=author, author_url=author_url, url=settings["fandom_discussions"]["wiki_url"], threadId=post["threadId"], postId=post["id"], title=post["_embedded"]["thread"][0]["title"], forumName=post["forumName"]) + message = "📝 "+_("[{author}]({author_url}) created a [reply](<{url}f/p/{threadId}/r/{postId}>) to [{title}](<{url}f/p/{threadId}>) in {forumName}").format(author=author, author_url=author_url, url=settings["fandom_discussions"]["wiki_url"], threadId=post["threadId"], postId=post["id"], title=post["_embedded"]["thread"][0]["title"], forumName=post["forumName"]) elif post_type == "WALL": user_wall = _("unknown") # Fail safe if post["forumName"].endswith(' Message Wall'): user_wall = post["forumName"][:-13] if not post["isReply"]: - message = _("[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/Message_Wall:{user_wall}>)").format(author=author, author_url=author_url, title=post["title"], url=settings["fandom_discussions"]["wiki_url"], user=user_wall, user_wall=quote_plus(user_wall.replace(" ", "_")), threadId=post["threadId"]) + message = "✉️ "+_("[{author}]({author_url}) created [{title}](<{url}wiki/Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/Message_Wall:{user_wall}>)").format(author=author, author_url=author_url, title=post["title"], url=settings["fandom_discussions"]["wiki_url"], user=user_wall, user_wall=quote_plus(user_wall.replace(" ", "_")), threadId=post["threadId"]) else: - message = _("[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/Message_Wall:{user_wall}>)").format(author=author, author_url=author_url, url=settings["fandom_discussions"]["wiki_url"], title=post["_embedded"]["thread"][0]["title"], user=user_wall, user_wall=quote_plus(user_wall.replace(" ", "_")), threadId=post["threadId"], replyId=post["id"]) + message = "📩 "+_("[{author}]({author_url}) created a [reply](<{url}wiki/Message_Wall:{user_wall}?threadId={threadId}#{replyId}>) to [{title}](<{url}wiki/Message_Wall:{user_wall}?threadId={threadId}>) on [{user}'s Message Wall](<{url}wiki/Message_Wall:{user_wall}>)").format(author=author, author_url=author_url, url=settings["fandom_discussions"]["wiki_url"], title=post["_embedded"]["thread"][0]["title"], user=user_wall, user_wall=quote_plus(user_wall.replace(" ", "_")), threadId=post["threadId"], replyId=post["id"]) elif post_type == "ARTICLE_COMMENT": if article_paths is None: - article_paths = {"title": _("unknown"), "fullUrl": "{wiki}wiki/{article}".format(wiki=settings["fandom_discussions"]["wiki_url"], article=_("unknown").replace(" ", "_"))} # No page known + article_paths = {"title": _("unknown"), "fullUrl": settings["fandom_discussions"]["wiki_url"]} # No page known if not post["isReply"]: - message = _( + message = "🗒️ "+_( "[{author}]({author_url}) created a [comment](<{url}?commentId={commentId}>) on [{article}](<{url}>)").format( author=author, author_url=author_url, url=article_paths["fullUrl"], article=article_paths["title"], commentId=post["threadId"]) else: - message = _( + message = "🗒️ "+_( "[{author}]({author_url}) created a [reply](<{url}?commentId={commentId}&replyId={replyId}>) to a [comment](<{url}?commentId={commentId}>) on [{article}](<{url}>)").format( author=author, author_url=author_url, url=article_paths["fullUrl"], article=article_paths["title"], commentId=post["threadId"], replyId=post["id"]) @@ -65,9 +67,9 @@ def compact_formatter(post_type, post, article_paths): if not settings["support"]: return else: - content = _("Unknown event `{event}` by [{author}]({author_url}), report it on the [support server](<{support}>).").format( + message = "❓ "+_("Unknown event `{event}` by [{author}]({author_url}), report it on the [support server](<{support}>).").format( event=post_type, author=author, author_url=author_url, support=settings["support"]) - send_to_discord(DiscordMessage("compact", "discussion", settings["fandom_discussions"]["webhookURL"], content=message)) + send_to_discord(DiscordMessage("compact", "discussion", settings["fandom_discussions"]["webhookURL"], content=message), meta=DiscordMessageMetadata("POST")) def embed_formatter(post_type, post, article_paths): @@ -76,7 +78,7 @@ def embed_formatter(post_type, post, article_paths): if post_type == "FORUM": embed.set_author(post["createdBy"]["name"], "{url}f/u/{creatorId}".format(url=settings["fandom_discussions"]["wiki_url"], creatorId=post["creatorId"]), icon_url=post["createdBy"]["avatarUrl"]) elif post["creatorIp"]: - embed.set_author(post["creatorIp"][1:], "{url}wiki/Special:Contributions{creatorIp}".format(url=settings["fandom_discussions"]["wiki_url"], creatorIp=post["creatorIp"])) + embed.set_author(post["creatorIp"][1:] if settings.get("hide_ips", False) is False else _("Unregistered user"), "{url}wiki/Special:Contributions{creatorIp}".format(url=settings["fandom_discussions"]["wiki_url"], creatorIp=post["creatorIp"])) else: embed.set_author(post["createdBy"]["name"], "{url}wiki/User:{creator}".format(url=settings["fandom_discussions"]["wiki_url"], creator=post["createdBy"]["name"]), icon_url=post["createdBy"]["avatarUrl"]) if settings["fandom_discussions"]["appearance"]["embed"]["show_content"]: @@ -145,8 +147,7 @@ def embed_formatter(post_type, post, article_paths): embed["title"] = _("Replied to \"{title}\" on {user}'s Message Wall").format(title=post["_embedded"]["thread"][0]["title"], user=user_wall) elif post_type == "ARTICLE_COMMENT": if article_paths is None: - article_page = {"title": _("unknown"), "fullUrl": "{wiki}wiki/{article}".format(wiki=settings["fandom_discussions"]["wiki_url"], article=_( - "unknown").replace(" ", "_"))} # No page known + article_page = {"title": _("unknown"), "fullUrl": settings["fandom_discussions"]["wiki_url"]} # No page known if not post["isReply"]: embed.event_type = "discussion/comment/post" embed["url"] = "{url}?commentId={commentId}".format(url=article_paths["fullUrl"], commentId=post["threadId"]) @@ -168,7 +169,7 @@ def embed_formatter(post_type, post, article_paths): else: embed.add_field(_("Report this on the support server"), change_params) embed.finish_embed() - send_to_discord(embed) + send_to_discord(embed, meta=DiscordMessageMetadata("POST")) class DiscussionsFromHellParser: diff --git a/src/discussions.py b/src/discussions.py index 924e6c0..6e4e86c 100644 --- a/src/discussions.py +++ b/src/discussions.py @@ -22,7 +22,8 @@ from typing import Dict, Any from src.configloader import settings from src.discussion_formatters import embed_formatter, compact_formatter -from src.misc import datafile, messagequeue, prepare_paths +from src.misc import datafile, prepare_paths +from src.discord.queue import messagequeue from src.session import session from src.exceptions import ArticleCommentError @@ -33,12 +34,12 @@ discussion_logger = logging.getLogger("rcgcdw.disc") # Create a variable in datafile if it doesn't exist yet (in files <1.10) if "discussion_id" not in datafile.data: - datafile.data["discussion_id"] = 0 + datafile["discussion_id"] = 0 datafile.save_datafile() -storage = datafile.data +storage = datafile -fetch_url = "https://services.fandom.com/discussion/{wikiid}/posts?sortDirection=descending&sortKey=creation_date&limit={limit}".format(wikiid=settings["fandom_discussions"]["wiki_id"], limit=settings["fandom_discussions"]["limit"]) +fetch_url = "{wiki}wikia.php?controller=DiscussionPost&method=getPosts&sortDirection=descending&sortKey=creation_date&limit={limit}".format(wiki=settings["fandom_discussions"]["wiki_url"], limit=settings["fandom_discussions"]["limit"]) domain = prepare_paths(settings["fandom_discussions"]["wiki_url"], dry=True) # Shutdown if the path for discussions is wrong def fetch_discussions(): @@ -52,7 +53,7 @@ def fetch_discussions(): discussion_logger.warning("ValueError in fetching discussions") return None except KeyError: - discussion_logger.warning("Wiki returned %s" % (request_json.json())) + discussion_logger.warning("Wiki returned %s" % (request.json())) return None else: if request_json: diff --git a/src/fileio/__init__.py b/src/fileio/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/fileio/database.py b/src/fileio/database.py new file mode 100644 index 0000000..b924902 --- /dev/null +++ b/src/fileio/database.py @@ -0,0 +1,67 @@ +import sqlite3 +import logging +import json +from src.configloader import settings + +logger = logging.getLogger("rcgcdw.fileio.database") + + +def create_schema(): + logger.info("Creating database schema...") + db_cursor.executescript( + """BEGIN TRANSACTION; + CREATE TABLE IF NOT EXISTS "messages" ( + "message_id" TEXT, + "content" TEXT, + PRIMARY KEY("message_id") + ); + CREATE TABLE IF NOT EXISTS "event" ( + "pageid" INTEGER, + "revid" INTEGER, + "logid" INTEGER, + "msg_id" TEXT NOT NULL, + PRIMARY KEY("msg_id"), + FOREIGN KEY("msg_id") REFERENCES "messages"("message_id") ON DELETE CASCADE + ); + COMMIT;""") + logger.info("Database schema has been recreated.") + + +def create_connection() -> (sqlite3.Connection, sqlite3.Cursor): + _db_connection = sqlite3.connect(settings['auto_suppression'].get("db_location", ':memory:')) + _db_connection.row_factory = sqlite3.Row + _db_cursor = _db_connection.cursor() + logger.debug("Database connection created") + return _db_connection, _db_cursor + + +def check_tables(): + """Check if tables exist, if not, create schema""" + rep = db_cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='messages';") + if not rep.fetchone(): + logger.debug("No schema detected, creating schema!") + create_schema() + + +def add_entry(pageid: int, revid: int, logid: int, message, message_id: str): + """Add an edit or log entry to the DB + :param message_id: + """ + db_cursor.execute("INSERT INTO messages (message_id, content) VALUES (?, ?)", (message_id, message)) + db_cursor.execute("INSERT INTO event (pageid, revid, logid, msg_id) VALUES (?, ?, ?, ?)", (pageid, revid, logid, message_id)) + logger.debug("Adding an entry to the database (pageid: {}, revid: {}, logid: {}, message: {})".format(pageid, revid, logid, message)) + db_connection.commit() + +def clean_entries(): + """Cleans entries that are 50+""" + cleanup = db_cursor.execute( + "SELECT message_id FROM messages WHERE message_id NOT IN (SELECT message_id FROM messages ORDER BY message_id desc LIMIT 50);") + for row in cleanup: + db_cursor.execute("DELETE FROM messages WHERE message_id = ?", (row[0],)) + cleanup = db_cursor.execute("SELECT msg_id FROM event WHERE msg_id NOT IN (SELECT msg_id FROM event ORDER BY msg_id desc LIMIT 50);") + for row in cleanup: + db_cursor.execute("DELETE FROM event WHERE msg_id = ?", (row[0],)) + db_connection.commit() + +db_connection, db_cursor = create_connection() +check_tables() diff --git a/src/i18n.py b/src/i18n.py index ec08ca8..1f43c4c 100644 --- a/src/i18n.py +++ b/src/i18n.py @@ -11,8 +11,9 @@ try: rc = gettext.translation('rc', localedir='locale', languages=[settings["lang"]]) rc_formatters = gettext.translation('rc_formatters', localedir='locale', languages=[settings["lang"]]) misc = gettext.translation('misc', localedir='locale', languages=[settings["lang"]]) + redaction = gettext.translation('redaction', localedir='locale', languages=[settings["lang"]]) else: - rcgcdw, discussion_formatters, rc, rc_formatters, misc = gettext.NullTranslations(), gettext.NullTranslations(), gettext.NullTranslations(), gettext.NullTranslations(), gettext.NullTranslations() + rcgcdw, discussion_formatters, rc, rc_formatters, misc, redaction = gettext.NullTranslations(), gettext.NullTranslations(), gettext.NullTranslations(), gettext.NullTranslations(), gettext.NullTranslations(), gettext.NullTranslations() except FileNotFoundError: logger.critical("No language files have been found. Make sure locale folder is located in the directory.") sys.exit(1) diff --git a/src/misc.py b/src/misc.py index 5b88130..40ac615 100644 --- a/src/misc.py +++ b/src/misc.py @@ -16,21 +16,24 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . import base64 -import json, logging, sys, re, time, random, math +import json, logging, sys, re from html.parser import HTMLParser -from urllib.parse import urlparse, urlunparse +from urllib.parse import urlparse, urlunparse, quote import requests -from collections import defaultdict from src.configloader import settings +from src.discord.message import DiscordMessage, DiscordMessageMetadata +from src.discord.queue import messagequeue, send_to_discord from src.i18n import misc +AUTO_SUPPRESSION_ENABLED = settings.get("auto_suppression", {"enabled": False}).get("enabled") + _ = misc.gettext # Create a custom logger misc_logger = logging.getLogger("rcgcdw.misc") -data_template = {"rcid": 99999999999, "discussion_id": 0, +data_template = {"rcid": None, "discussion_id": 0, "abuse_log_id": None, "daily_overview": {"edits": None, "new_files": None, "admin_actions": None, "bytes_changed": None, "new_articles": None, "unique_editors": None, "day_score": None, "days_tracked": 0}} @@ -45,6 +48,7 @@ class DataFile: """Data class which instance of is shared by multiple modules to remain consistent and do not cause too many IO operations.""" def __init__(self): self.data = self.load_datafile() + self.changed = False @staticmethod def generate_datafile(): @@ -70,61 +74,32 @@ class DataFile: def save_datafile(self): """Overwrites the data.json file with given dictionary""" + if self.changed is False: # don't cause unnecessary write operations + return try: with open("data.json", "w") as data_file: data_file.write(json.dumps(self.data, indent=4)) + self.changed = False except PermissionError: misc_logger.critical("Could not modify a data file (no permissions). No way to store last edit.") sys.exit(1) + def __setitem__(self, instance, value): + self.data[instance] = value + self.changed = True -class MessageQueue: - """Message queue class for undelivered messages""" - def __init__(self): - self._queue = [] + def __getitem__(self, item): + try: + return self.data[item] + except KeyError: # if such value doesn't exist, set to and return none + self.__setitem__(item, None) + self.save_datafile() + return None - def __repr__(self): - return self._queue - def __len__(self): - return len(self._queue) - - def __iter__(self): - return iter(self._queue) - - def clear(self): - self._queue.clear() - - def add_message(self, message): - self._queue.append(message) - - def cut_messages(self, item_num): - self._queue = self._queue[item_num:] - - def resend_msgs(self): - if self._queue: - misc_logger.info( - "{} messages waiting to be delivered to Discord due to Discord throwing errors/no connection to Discord servers.".format( - len(self._queue))) - for num, item in enumerate(self._queue): - misc_logger.debug( - "Trying to send a message to Discord from the queue with id of {} and content {}".format(str(num), - str(item))) - if send_to_discord_webhook(item) < 2: - misc_logger.debug("Sending message succeeded") - time.sleep(2.5) - else: - misc_logger.debug("Sending message failed") - break - else: - self.clear() - misc_logger.debug("Queue emptied, all messages delivered") - self.cut_messages(num) - misc_logger.debug(self._queue) - -messagequeue = MessageQueue() datafile = DataFile() + def weighted_average(value, weight, new_value): """Calculates weighted average of value number with weight weight and new_value with weight 1""" return round(((value * weight) + new_value) / (weight + 1), 2) @@ -132,79 +107,82 @@ def weighted_average(value, weight, new_value): def link_formatter(link): """Formats a link to not embed it""" - return "<" + re.sub(r"([)])", "\\\\\\1", link).replace(" ", "_") + ">" + return "<" + quote(link.replace(" ", "_"), "/:?") + ">" + def escape_formatting(data): """Escape Discord formatting""" return re.sub(r"([`_*~<>{}@/|\\])", "\\\\\\1", data, 0) + class ContentParser(HTMLParser): more = _("\n__And more__") current_tag = "" + last_ins = None + last_del = None + empty = False small_prev_ins = "" small_prev_del = "" ins_length = len(more) del_length = len(more) - added = False def handle_starttag(self, tagname, attribs): if tagname == "ins" or tagname == "del": self.current_tag = tagname - if tagname == "td" and 'diff-addedline' in attribs[0]: - self.current_tag = tagname + "a" - if tagname == "td" and 'diff-deletedline' in attribs[0]: - self.current_tag = tagname + "d" - if tagname == "td" and 'diff-marker' in attribs[0]: - self.added = True + if tagname == "td" and "diff-addedline" in attribs[0] and self.ins_length <= 1000: + self.current_tag = "tda" + self.last_ins = "" + if tagname == "td" and "diff-deletedline" in attribs[0] and self.del_length <= 1000: + self.current_tag = "tdd" + self.last_del = "" + if tagname == "td" and "diff-empty" in attribs[0]: + self.empty = True def handle_data(self, data): - data = re.sub(r"([`_*~<>{}@/|\\])", "\\\\\\1", data, 0) + data = escape_formatting(data) if self.current_tag == "ins" and self.ins_length <= 1000: - self.ins_length += len("**" + data + '**') + self.ins_length += len("**" + data + "**") if self.ins_length <= 1000: - self.small_prev_ins = self.small_prev_ins + "**" + data + '**' - else: - self.small_prev_ins = self.small_prev_ins + self.more + self.last_ins = self.last_ins + "**" + data + "**" if self.current_tag == "del" and self.del_length <= 1000: - self.del_length += len("~~" + data + '~~') + self.del_length += len("~~" + data + "~~") if self.del_length <= 1000: - self.small_prev_del = self.small_prev_del + "~~" + data + '~~' - else: - self.small_prev_del = self.small_prev_del + self.more - if (self.current_tag == "afterins" or self.current_tag == "tda") and self.ins_length <= 1000: + self.last_del = self.last_del + "~~" + data + "~~" + if self.current_tag == "tda" and self.ins_length <= 1000: self.ins_length += len(data) if self.ins_length <= 1000: - self.small_prev_ins = self.small_prev_ins + data - else: - self.small_prev_ins = self.small_prev_ins + self.more - if (self.current_tag == "afterdel" or self.current_tag == "tdd") and self.del_length <= 1000: + self.last_ins = self.last_ins + data + if self.current_tag == "tdd" and self.del_length <= 1000: self.del_length += len(data) if self.del_length <= 1000: - self.small_prev_del = self.small_prev_del + data - else: - self.small_prev_del = self.small_prev_del + self.more - if self.added: - if data == '+' and self.ins_length <= 1000: - self.ins_length += 1 - if self.ins_length <= 1000: - self.small_prev_ins = self.small_prev_ins + '\n' - else: - self.small_prev_ins = self.small_prev_ins + self.more - if data == '−' and self.del_length <= 1000: - self.del_length += 1 - if self.del_length <= 1000: - self.small_prev_del = self.small_prev_del + '\n' - else: - self.small_prev_del = self.small_prev_del + self.more - self.added = False + self.last_del = self.last_del + data def handle_endtag(self, tagname): + self.current_tag = "" if tagname == "ins": - self.current_tag = "afterins" + self.current_tag = "tda" elif tagname == "del": - self.current_tag = "afterdel" - else: - self.current_tag = "" + self.current_tag = "tdd" + elif tagname == "tr": + if self.last_ins is not None: + self.ins_length += 1 + if self.empty and not self.last_ins.isspace() and "**" not in self.last_ins: + self.ins_length += 4 + self.last_ins = "**" + self.last_ins + "**" + self.small_prev_ins = self.small_prev_ins + "\n" + self.last_ins + if self.ins_length > 1000: + self.small_prev_ins = self.small_prev_ins + self.more + self.last_ins = None + if self.last_del is not None: + self.del_length += 1 + if self.empty and not self.last_del.isspace() and "~~" not in self.last_del: + self.del_length += 4 + self.last_del = "~~" + self.last_del + "~~" + self.small_prev_del = self.small_prev_del + "\n" + self.last_del + if self.del_length > 1000: + self.small_prev_del = self.small_prev_del + self.more + self.last_del = None + self.empty = False def safe_read(request, *keys): @@ -224,28 +202,6 @@ def safe_read(request, *keys): return request -def handle_discord_http(code, formatted_embed, result): - if 300 > code > 199: # message went through - return 0 - elif code == 400: # HTTP BAD REQUEST result.status_code, data, result, header - misc_logger.error( - "Following message has been rejected by Discord, please submit a bug on our bugtracker adding it:") - misc_logger.error(formatted_embed) - misc_logger.error(result.text) - return 1 - elif code == 401 or code == 404: # HTTP UNAUTHORIZED AND NOT FOUND - misc_logger.error("Webhook URL is invalid or no longer in use, please replace it with proper one.") - sys.exit(1) - elif code == 429: - misc_logger.error("We are sending too many requests to the Discord, slowing down...") - return 2 - elif 499 < code < 600: - misc_logger.error( - "Discord have trouble processing the event, and because the HTTP code returned is {} it means we blame them.".format( - code)) - return 3 - - def add_to_dict(dictionary, key): if key in dictionary: dictionary[key] += 1 @@ -309,113 +265,7 @@ def send_simple(msgtype, message, name, avatar): discord_msg.set_avatar(avatar) discord_msg.set_name(name) messagequeue.resend_msgs() - send_to_discord(discord_msg) - - -def send_to_discord_webhook(data): - header = settings["header"] - header['Content-Type'] = 'application/json' - try: - result = requests.post(data.webhook_url, data=repr(data), - headers=header, timeout=10) - except requests.exceptions.Timeout: - misc_logger.warning("Timeouted while sending data to the webhook.") - return 3 - except requests.exceptions.ConnectionError: - misc_logger.warning("Connection error while sending the data to a webhook") - return 3 - else: - return handle_discord_http(result.status_code, data, result) - - -def send_to_discord(data): - for regex in settings["disallow_regexes"]: - if data.webhook_object.get("content", None): - if re.search(re.compile(regex), data.webhook_object["content"]): - misc_logger.info("Message {} has been rejected due to matching filter ({}).".format(data.webhook_object["content"], regex)) - return # discard the message without anything - else: - for to_check in [data.webhook_object.get("description", ""), data.webhook_object.get("title", ""), *[x["value"] for x in data["fields"]], data.webhook_object.get("author", {"name": ""}).get("name", "")]: - if re.search(re.compile(regex), to_check): - misc_logger.info("Message \"{}\" has been rejected due to matching filter ({}).".format( - to_check, regex)) - return # discard the message without anything - if messagequeue: - messagequeue.add_message(data) - else: - code = send_to_discord_webhook(data) - if code == 3: - messagequeue.add_message(data) - elif code == 2: - time.sleep(5.0) - messagequeue.add_message(data) - elif code < 2: - time.sleep(2.0) - pass - -class DiscordMessage(): - """A class defining a typical Discord JSON representation of webhook payload.""" - def __init__(self, message_type: str, event_type: str, webhook_url: str, content=None): - self.webhook_object = dict(allowed_mentions={"parse": []}, avatar_url=settings["avatars"].get(message_type, "")) - self.webhook_url = webhook_url - - if message_type == "embed": - self.__setup_embed() - elif message_type == "compact": - self.webhook_object["content"] = content - - self.event_type = event_type - - def __setitem__(self, key, value): - """Set item is used only in embeds.""" - try: - self.embed[key] = value - except NameError: - raise TypeError("Tried to assign a value when message type is plain message!") - - def __getitem__(self, item): - return self.embed[item] - - def __repr__(self): - """Return the Discord webhook object ready to be sent""" - return json.dumps(self.webhook_object) - - def __setup_embed(self): - self.embed = defaultdict(dict) - if "embeds" not in self.webhook_object: - self.webhook_object["embeds"] = [self.embed] - else: - self.webhook_object["embeds"].append(self.embed) - self.embed["color"] = None - - def add_embed(self): - self.finish_embed() - self.__setup_embed() - - def finish_embed(self): - if self.embed["color"] is None: - if settings["appearance"]["embed"].get(self.event_type, {"color": None})["color"] is None: - self.embed["color"] = random.randrange(1, 16777215) - else: - self.embed["color"] = settings["appearance"]["embed"][self.event_type]["color"] - else: - self.embed["color"] = math.floor(self.embed["color"]) - - def set_author(self, name, url, icon_url=""): - self.embed["author"]["name"] = name - self.embed["author"]["url"] = url - self.embed["author"]["icon_url"] = icon_url - - def add_field(self, name, value, inline=False): - if "fields" not in self.embed: - self.embed["fields"] = [] - self.embed["fields"].append(dict(name=name, value=value, inline=inline)) - - def set_avatar(self, url): - self.webhook_object["avatar_url"] = url - - def set_name(self, name): - self.webhook_object["username"] = name + send_to_discord(discord_msg, meta=DiscordMessageMetadata("POST")) def profile_field_name(name, embed): @@ -457,4 +307,4 @@ class LinkParser(HTMLParser): self.new_string = self.new_string + data.replace("//", "/\\/") def handle_endtag(self, tag): - misc_logger.debug(self.new_string) \ No newline at end of file + misc_logger.debug(self.new_string) diff --git a/src/rc.py b/src/rc.py index 6cd39b7..3e6e72c 100644 --- a/src/rc.py +++ b/src/rc.py @@ -6,25 +6,42 @@ import requests from bs4 import BeautifulSoup from src.configloader import settings -from src.misc import WIKI_SCRIPT_PATH, WIKI_API_PATH, messagequeue, datafile, send_simple, safe_read, LinkParser +from src.misc import WIKI_SCRIPT_PATH, WIKI_API_PATH, datafile, send_simple, safe_read, LinkParser, AUTO_SUPPRESSION_ENABLED +from src.discord.queue import messagequeue from src.exceptions import MWError from src.session import session -from src.rc_formatters import compact_formatter, embed_formatter +from src.rc_formatters import compact_formatter, embed_formatter, compact_abuselog_formatter, embed_abuselog_formatter from src.i18n import rc +from collections import OrderedDict _ = rc.gettext -storage = datafile.data +storage = datafile logger = logging.getLogger("rcgcdw.rc") -supported_logs = ["protect/protect", "protect/modify", "protect/unprotect", "upload/overwrite", "upload/upload", "delete/delete", "delete/delete_redir", "delete/restore", "delete/revision", "delete/event", "import/upload", "import/interwiki", "merge/merge", "move/move", "move/move_redir", "protect/move_prot", "block/block", "block/unblock", "block/reblock", "rights/rights", "rights/autopromote", "abusefilter/modify", "abusefilter/create", "interwiki/iw_add", "interwiki/iw_edit", "interwiki/iw_delete", "curseprofile/comment-created", "curseprofile/comment-edited", "curseprofile/comment-deleted", "curseprofile/comment-purged", "curseprofile/profile-edited", "curseprofile/comment-replied", "contentmodel/change", "sprite/sprite", "sprite/sheet", "sprite/slice", "managetags/create", "managetags/delete", "managetags/activate", "managetags/deactivate", "tag/update", "cargo/createtable", "cargo/deletetable", "cargo/recreatetable", "cargo/replacetable", "upload/revert", "newusers/create", "newusers/autocreate", "newusers/create2", "newusers/byemail", "newusers/newusers"] +supported_logs = {"protect/protect", "protect/modify", "protect/unprotect", "upload/overwrite", "upload/upload", + "delete/delete", "delete/delete_redir", "delete/restore", "delete/revision", "delete/event", + "import/upload", "import/interwiki", "merge/merge", "move/move", "move/move_redir", + "protect/move_prot", "block/block", "block/unblock", "block/reblock", "rights/rights", + "rights/autopromote", "abusefilter/modify", "abusefilter/create", "interwiki/iw_add", + "interwiki/iw_edit", "interwiki/iw_delete", "curseprofile/comment-created", + "curseprofile/comment-edited", "curseprofile/comment-deleted", "curseprofile/comment-purged", + "curseprofile/profile-edited", "curseprofile/comment-replied", "contentmodel/change", "sprite/sprite", + "sprite/sheet", "sprite/slice", "managetags/create", "managetags/delete", "managetags/activate", + "managetags/deactivate", "tag/update", "cargo/createtable", "cargo/deletetable", + "cargo/recreatetable", "cargo/replacetable", "upload/revert", "newusers/create", + "newusers/autocreate", "newusers/create2", "newusers/byemail", "newusers/newusers", + "managewiki/settings", "managewiki/delete", "managewiki/lock", "managewiki/unlock", + "managewiki/namespaces", "managewiki/namespaces-delete", "managewiki/rights", "managewiki/undelete"} # Set the proper formatter if settings["appearance"]["mode"] == "embed": appearance_mode = embed_formatter + abuselog_appearance_mode = embed_abuselog_formatter elif settings["appearance"]["mode"] == "compact": appearance_mode = compact_formatter + abuselog_appearance_mode = compact_abuselog_formatter else: logger.critical("Unknown formatter!") sys.exit(1) @@ -35,9 +52,7 @@ LinkParser = LinkParser() class Recent_Changes_Class(object): """Store verious data and functions related to wiki and fetching of Recent Changes""" def __init__(self): - self.ids = [] self.map_ips = {} - self.recent_id = 0 self.downtimecredibility = 0 self.last_downtime = 0 self.tags = {} @@ -47,10 +62,7 @@ class Recent_Changes_Class(object): self.namespaces = None self.session = session self.logged_in = False - if settings["limitrefetch"] != -1: - self.file_id = storage["rcid"] - else: - self.file_id = 999999999 # such value won't cause trouble, and it will make sure no refetch happen + self.initial_run_complete = False @staticmethod def handle_mw_errors(request): @@ -98,131 +110,174 @@ class Recent_Changes_Class(object): except: logger.error("Logging in have not succeeded") - def add_cache(self, change): - self.ids.append(change["rcid"]) - # self.recent_id = change["rcid"] - if len(self.ids) > settings["limitrefetch"] + 5: - self.ids.pop(0) - def fetch(self, amount=settings["limit"]): messagequeue.resend_msgs() last_check = self.fetch_changes(amount=amount) - # If the request succeeds the last_check will be the last rcid from recentchanges query if last_check is not None: - self.recent_id = last_check - # Assigns self.recent_id the last rcid if request succeeded, otherwise set the id from the file - if settings["limitrefetch"] != -1 and self.recent_id != self.file_id and self.recent_id != 0: # if saving to database is disabled, don't save the recent_id - self.file_id = self.recent_id - storage["rcid"] = self.recent_id - datafile.save_datafile() - logger.debug("Most recent rcid is: {}".format(self.recent_id)) - return self.recent_id + storage["rcid"] = last_check[0] if last_check[0] else storage["rcid"] + storage["abuse_log_id"] = last_check[1] if last_check[1] else storage["abuse_log_id"] + storage.save_datafile() + self.initial_run_complete = True - def fetch_changes(self, amount, clean=False): + def fetch_recentchanges_request(self, amount): + """Make a typical MW request for rc/abuselog + + If succeeds return the .json() of request and if not raises ConnectionError""" + request = self.safe_request(WIKI_API_PATH, params=self.construct_params(amount)) + if request is not None: + try: + request = request.json() + except ValueError: + logger.warning("ValueError in fetching changes") + logger.warning("Changes URL:" + request.url) + self.downtime_controller(True) + raise ConnectionError + return request + raise ConnectionError + + def construct_params(self, amount): + """Constructs GET parameters for recentchanges/abuselog fetching feature""" + params = OrderedDict(action="query", format="json") + params["list"] = "recentchanges|abuselog" if settings.get("show_abuselog", False) else "recentchanges" + params["rcshow"] = "" if settings.get("show_bots", False) else "!bot" + params["rcprop"] = "title|redirect|timestamp|ids|loginfo|parsedcomment|sizes|flags|tags|user" + params["rclimit"] = amount + params["rctype"] = "edit|new|log|external|categorize" if settings.get("show_added_categories", True) else "edit|new|log|external" + if settings.get("show_abuselog", False): + params["afllimit"] = amount + params["aflprop"] = "ids|user|title|action|result|timestamp|hidden|revid|filter" + return params + + def prepare_rc(self, changes: list, amount: int): + """Processes recent changes messages""" + if not changes: + return None + categorize_events = {} + new_events = 0 + changes.reverse() + highest_id = recent_id = storage["rcid"] + dry_run = True if recent_id is None else False + for change in changes: + if not dry_run and not (change["rcid"] <= recent_id): + new_events += 1 + logger.debug( + "New event: {}".format(change["rcid"])) + if new_events == settings["limit"] and not (amount == settings["limitrefetch"] and self.initial_run_complete is False): + if amount < 500: + # call the function again with max limit for more results, ignore the ones in this request + logger.debug("There were too many new events, requesting max amount of events from the wiki.") + return self.fetch(amount=5000 if self.logged_in else 500) + else: + logger.debug( + "There were too many new events, but the limit was high enough we don't care anymore about fetching them all.") + if change["type"] == "categorize": + if "commenthidden" not in change: + if len(recent_changes.mw_messages.keys()) > 0: + cat_title = change["title"].split(':', 1)[1] + # I so much hate this, blame Markus for making me do this + if change["revid"] not in categorize_events: + categorize_events[change["revid"]] = {"new": set(), "removed": set()} + comment_to_match = re.sub(r'<.*?a>', '', change["parsedcomment"]) + if recent_changes.mw_messages["recentchanges-page-added-to-category"] in comment_to_match or \ + recent_changes.mw_messages[ + "recentchanges-page-added-to-category-bundled"] in comment_to_match: + categorize_events[change["revid"]]["new"].add(cat_title) + logger.debug("Matched {} to added category for {}".format(cat_title, change["revid"])) + elif recent_changes.mw_messages[ + "recentchanges-page-removed-from-category"] in comment_to_match or \ + recent_changes.mw_messages[ + "recentchanges-page-removed-from-category-bundled"] in comment_to_match: + categorize_events[change["revid"]]["removed"].add(cat_title) + logger.debug("Matched {} to removed category for {}".format(cat_title, change["revid"])) + else: + logger.debug( + "Unknown match for category change with messages {}, {}, {}, {} and comment_to_match {}".format( + recent_changes.mw_messages["recentchanges-page-added-to-category"], + recent_changes.mw_messages["recentchanges-page-removed-from-category"], + recent_changes.mw_messages["recentchanges-page-removed-from-category-bundled"], + recent_changes.mw_messages["recentchanges-page-added-to-category-bundled"], + comment_to_match)) + else: + logger.warning( + "Init information not available, could not read category information. Please restart the bot.") + else: + logger.debug("Log entry got suppressed, ignoring entry.") + if highest_id is None or change["rcid"] > highest_id: + highest_id = change["rcid"] + if not dry_run: + for change in changes: + if change["rcid"] <= recent_id: + logger.debug("Change ({}) is lower or equal to recent_id {}".format(change["rcid"], recent_id)) + continue + logger.debug(recent_id) + essential_info(change, categorize_events.get(change.get("revid"), None)) + return highest_id + + def prepare_abuse_log(self, abuse_log: list): + if not abuse_log: + return None + abuse_log.reverse() + recent_id = storage["abuse_log_id"] + dryrun = True if recent_id is None else False + for entry in abuse_log: + if dryrun: + continue + if entry["id"] <= recent_id: + continue + abuselog_processing(entry, self) + return entry["id"] + + def fetch_changes(self, amount): """Fetches the :amount: of changes from the wiki. Returns None on error and int of rcid of latest change if succeeded""" global logged_in - if len(self.ids) == 0: - logger.debug("ids is empty, triggering clean fetch") - clean = True - changes = self.safe_request( - "{wiki}?action=query&format=json&list=recentchanges{show_bots}&rcprop=title%7Credirect%7Ctimestamp%7Cids%7Cloginfo%7Cparsedcomment%7Csizes%7Cflags%7Ctags%7Cuser&rclimit={amount}&rctype=edit%7Cnew%7Clog%7Cexternal{categorize}".format( - wiki=WIKI_API_PATH, amount=amount, categorize="%7Ccategorize" if settings["show_added_categories"] else "", show_bots="&rcshow=!bot" if settings["show_bots"] is False else "")) - if changes: - try: - changes = changes.json()['query']['recentchanges'] - changes.reverse() - except ValueError: - logger.warning("ValueError in fetching changes") - logger.warning("Changes URL:" + changes.url) - self.downtime_controller() - return None - except KeyError: - logger.warning("Wiki returned %s" % (changes.json())) - return None - else: - if self.downtimecredibility > 0: - self.downtimecredibility -= 1 - if self.streak > -1: - self.streak += 1 - if self.streak > 8: - self.streak = -1 - send_simple("down_detector", _("Connection to {wiki} seems to be stable now.").format(wiki=settings["wikiname"]), - _("Connection status"), settings["avatars"]["connection_restored"]) - # In the first for loop we analize the categorize events and figure if we will need more changes to fetch - # in order to cover all of the edits - categorize_events = {} - new_events = 0 - for change in changes: - if not (change["rcid"] in self.ids or change["rcid"] < self.recent_id) and not clean: - new_events += 1 - logger.debug( - "New event: {}".format(change["rcid"])) - if new_events == settings["limit"]: - if amount < 500: - # call the function again with max limit for more results, ignore the ones in this request - logger.debug("There were too many new events, requesting max amount of events from the wiki.") - return self.fetch(amount=5000 if self.logged_in else 500) - else: - logger.debug( - "There were too many new events, but the limit was high enough we don't care anymore about fetching them all.") - if change["type"] == "categorize": - if "commenthidden" not in change: - if len(recent_changes.mw_messages.keys()) > 0: - cat_title = change["title"].split(':', 1)[1] - # I so much hate this, blame Markus for making me do this - if change["revid"] not in categorize_events: - categorize_events[change["revid"]] = {"new": set(), "removed": set()} - comment_to_match = re.sub(r'<.*?a>', '', change["parsedcomment"]) - if recent_changes.mw_messages["recentchanges-page-added-to-category"] in comment_to_match or recent_changes.mw_messages["recentchanges-page-added-to-category-bundled"] in comment_to_match: - categorize_events[change["revid"]]["new"].add(cat_title) - logger.debug("Matched {} to added category for {}".format(cat_title, change["revid"])) - elif recent_changes.mw_messages["recentchanges-page-removed-from-category"] in comment_to_match or recent_changes.mw_messages["recentchanges-page-removed-from-category-bundled"] in comment_to_match: - categorize_events[change["revid"]]["removed"].add(cat_title) - logger.debug("Matched {} to removed category for {}".format(cat_title, change["revid"])) - else: - logger.debug("Unknown match for category change with messages {}, {}, {}, {} and comment_to_match {}".format(recent_changes.mw_messages["recentchanges-page-added-to-category"], recent_changes.mw_messages["recentchanges-page-removed-from-category"], recent_changes.mw_messages["recentchanges-page-removed-from-category-bundled"], recent_changes.mw_messages["recentchanges-page-added-to-category-bundled"], comment_to_match)) - else: - logger.warning("Init information not available, could not read category information. Please restart the bot.") - else: - logger.debug("Log entry got suppressed, ignoring entry.") - # if change["revid"] in categorize_events: - # categorize_events[change["revid"]].append(cat_title) - # else: - # logger.debug("New category '{}' for {}".format(cat_title, change["revid"])) - # categorize_events[change["revid"]] = {cat_title: } - for change in changes: - if change["rcid"] in self.ids or change["rcid"] < self.recent_id: - logger.debug("Change ({}) is in ids or is lower than recent_id {}".format(change["rcid"], - self.recent_id)) - continue - logger.debug(self.ids) - logger.debug(self.recent_id) - self.add_cache(change) - if clean and not (self.recent_id == 0 and change["rcid"] > self.file_id): - logger.debug("Rejected {val}".format(val=change["rcid"])) - continue - essential_info(change, categorize_events.get(change.get("revid"), None)) - return change["rcid"] - - def safe_request(self, url): + rc_last_id = None + abuselog_last_id = None try: - request = self.session.get(url, timeout=10, allow_redirects=False) + request_json = self.fetch_recentchanges_request(amount) + except ConnectionError: + return + try: + rc = request_json["query"]['recentchanges'] + except KeyError: + logger.warning("Path query.recentchanges not found inside request body. Skipping...") + return + else: + rc_last_id = self.prepare_rc(rc, amount) + if settings.get("show_abuselog", False): + try: + abuselog = request_json["query"]["abuselog"] # While LYBL approach would be more performant when abuselog is not in request body, I prefer this approach for its clarity + except KeyError: + if "warnings" in request_json: + warnings = request_json.get("warnings", {"query": {"*": ""}}) + if "Unrecognized value for parameter \"list\": abuselog." in warnings["query"]["*"]: + settings["show_abuselog"] = False + logger.warning("AbuseLog extension is not enabled on the wiki. Disabling the function...") + else: + abuselog_last_id = self.prepare_abuse_log(abuselog) + return rc_last_id, abuselog_last_id + + def safe_request(self, url, params=None): + try: + if params: + request = self.session.get(url, params=params, timeout=10, allow_redirects=False) + else: + request = self.session.get(url, timeout=10, allow_redirects=False) except requests.exceptions.Timeout: logger.warning("Reached timeout error for request on link {url}".format(url=url)) - self.downtime_controller() + self.downtime_controller(True) return None except requests.exceptions.ConnectionError: logger.warning("Reached connection error for request on link {url}".format(url=url)) - self.downtime_controller() + self.downtime_controller(True) return None except requests.exceptions.ChunkedEncodingError: logger.warning("Detected faulty response from the web server for request on link {url}".format(url=url)) - self.downtime_controller() + self.downtime_controller(True) return None else: if 499 < request.status_code < 600: - self.downtime_controller() + self.downtime_controller(True) return None elif request.status_code == 302: logger.critical("Redirect detected! Either the wiki given in the script settings (wiki field) is incorrect/the wiki got removed or Gamepedia is giving us the false value. Please provide the real URL to the wiki, current URL redirects to {}".format(request.next.url)) @@ -252,23 +307,37 @@ class Recent_Changes_Class(object): return False return True - def downtime_controller(self): + def downtime_controller(self, down): if not settings["show_updown_messages"]: return - if self.streak > -1: # reset the streak of successful connections when bad one happens - self.streak = 0 - if self.downtimecredibility < 60: - self.downtimecredibility += 15 - else: - if ( - time.time() - self.last_downtime) > 1800 and self.check_connection(): # check if last downtime happened within 30 minutes, if yes, don't send a message - send_simple("down_detector", _("{wiki} seems to be down or unreachable.").format(wiki=settings["wikiname"]), - _("Connection status"), settings["avatars"]["connection_failed"]) - self.last_downtime = time.time() + if down: + if self.streak > -1: # reset the streak of successful connections when bad one happens self.streak = 0 + if self.downtimecredibility < 60: + self.downtimecredibility += 15 + else: + if ( + time.time() - self.last_downtime) > 1800 and self.check_connection(): # check if last downtime happened within 30 minutes, if yes, don't send a message + send_simple("down_detector", _("{wiki} seems to be down or unreachable.").format(wiki=settings["wikiname"]), + _("Connection status"), settings["avatars"]["connection_failed"]) + self.last_downtime = time.time() + self.streak = 0 + else: + if self.downtimecredibility > 0: + self.downtimecredibility -= 1 + if self.streak > -1: + self.streak += 1 + if self.streak > 8: + self.streak = -1 + send_simple("down_detector", _("Connection to {wiki} seems to be stable now.").format( + wiki=settings["wikiname"]), + _("Connection status"), settings["avatars"]["connection_restored"]) def clear_cache(self): self.map_ips = {} + if AUTO_SUPPRESSION_ENABLED: + from src.fileio.database import clean_entries + clean_entries() def init_info(self): startup_info = safe_read(self.safe_request( @@ -334,10 +403,12 @@ def essential_info(change, changed_categories): parsed_comment = _("~~hidden~~") if not parsed_comment: parsed_comment = None + if "userhidden" in change: + change["user"] = _("hidden") + if change.get("ns", -1) in settings.get("ignored_namespaces", ()): + return if change["type"] in ["edit", "new"]: logger.debug("List of categories in essential_info: {}".format(changed_categories)) - if "userhidden" in change: - change["user"] = _("hidden") identification_string = change["type"] elif change["type"] == "log": identification_string = "{logtype}/{logaction}".format(logtype=change["logtype"], logaction=change["logaction"]) @@ -354,3 +425,6 @@ def essential_info(change, changed_categories): if identification_string in settings["ignored"]: return appearance_mode(identification_string, change, parsed_comment, changed_categories, recent_changes) + +def abuselog_processing(entry, recent_changes): + abuselog_appearance_mode(entry, recent_changes) \ No newline at end of file diff --git a/src/rc_formatters.py b/src/rc_formatters.py index e44481a..182e112 100644 --- a/src/rc_formatters.py +++ b/src/rc_formatters.py @@ -5,13 +5,19 @@ import time import logging import datetime import json -from urllib.parse import quote_plus +from urllib.parse import quote_plus, quote from bs4 import BeautifulSoup from src.configloader import settings -from src.misc import link_formatter, create_article_path, WIKI_SCRIPT_PATH, send_to_discord, DiscordMessage, safe_read, \ - WIKI_API_PATH, ContentParser, profile_field_name, LinkParser +from src.misc import link_formatter, create_article_path, WIKI_SCRIPT_PATH, safe_read, \ + WIKI_API_PATH, ContentParser, profile_field_name, LinkParser, AUTO_SUPPRESSION_ENABLED +from src.discord.queue import send_to_discord +from src.discord.message import DiscordMessage, DiscordMessageMetadata + +if AUTO_SUPPRESSION_ENABLED: + from src.discord.redaction import delete_messages, redact_messages + from src.i18n import rc_formatters #from src.rc import recent_changes, pull_comment _ = rc_formatters.gettext @@ -19,65 +25,138 @@ ngettext = rc_formatters.ngettext logger = logging.getLogger("rcgcdw.rc_formatters") #from src.rcgcdw import recent_changes, ngettext, logger, profile_field_name, LinkParser, pull_comment +abusefilter_results = {"": _("None"), "warn": _("Warning issued"), "block": _("**Blocked user**"), "tag": _("Tagged the edit"), "disallow": _("Disallowed the action"), "rangeblock": _("**IP range blocked**"), "throttle": _("Throttled actions"), "blockautopromote": _("Removed autoconfirmed group"), "degroup": _("**Removed from privileged groups**")} +abusefilter_actions = {"edit": _("Edit"), "upload": _("Upload"), "move": _("Move"), "stashupload": _("Stash upload"), "delete": _("Deletion"), "createaccount": _("Account creation"), "autocreateaccount": _("Auto account creation")} LinkParser = LinkParser() +def format_user(change, recent_changes, action): + if "anon" in change: + author_url = create_article_path("Special:Contributions/{user}".format( + user=change["user"].replace(" ", "_"))) # Replace here needed in case of #75 + logger.debug("current user: {} with cache of IPs: {}".format(change["user"], recent_changes.map_ips.keys())) + if change["user"] not in list(recent_changes.map_ips.keys()): + contibs = safe_read(recent_changes.safe_request( + "{wiki}?action=query&format=json&list=usercontribs&uclimit=max&ucuser={user}&ucstart={timestamp}&ucprop=".format( + wiki=WIKI_API_PATH, user=change["user"], timestamp=change["timestamp"])), "query", "usercontribs") + if contibs is None: + logger.warning( + "WARNING: Something went wrong when checking amount of contributions for given IP address") + if settings.get("hide_ips", False): + change["user"] = _("Unregistered user") + change["user"] = change["user"] + "(?)" + else: + recent_changes.map_ips[change["user"]] = len(contibs) + logger.debug( + "Current params user {} and state of map_ips {}".format(change["user"], recent_changes.map_ips)) + if settings.get("hide_ips", False): + change["user"] = _("Unregistered user") + change["user"] = "{author} ({contribs})".format(author=change["user"], contribs=len(contibs)) + else: + logger.debug( + "Current params user {} and state of map_ips {}".format(change["user"], recent_changes.map_ips)) + if action in ("edit", "new"): + recent_changes.map_ips[change["user"]] += 1 + change["user"] = "{author} ({amount})".format(author=change["user"] if settings.get("hide_ips", False) is False else _("Unregistered user"), + amount=recent_changes.map_ips[change["user"]]) + else: + author_url = create_article_path("User:{}".format(change["user"].replace(" ", "_"))) + return change["user"], author_url + + +def abuse_filter_format_user(change): + author = change["user"] + if settings.get("hide_ips", False): + try: + ipaddress.ip_address(change["user"]) + except ValueError: + pass + else: + author = _("Unregistered user") + return author + + +def compact_abuselog_formatter(change, recent_changes): + action = "abuselog/{}".format(change["result"]) + author_url = link_formatter(create_article_path("User:{user}".format(user=change["user"]))) + author = abuse_filter_format_user(change) + message = _("[{author}]({author_url}) triggered *{abuse_filter}*, performing the action \"{action}\" on *[{target}]({target_url})* - action taken: {result}.").format( + author=author, author_url=author_url, abuse_filter=change["filter"], + action=abusefilter_actions.get(change["action"], _("Unknown")), target=change.get("title", _("Unknown")), + target_url=link_formatter(create_article_path(change.get("title", _("Unknown")))), + result=abusefilter_results.get(change["result"], _("Unknown"))) + send_to_discord(DiscordMessage("compact", action, settings["webhookURL"], content=message), meta=DiscordMessageMetadata("POST")) + + def compact_formatter(action, change, parsed_comment, categories, recent_changes): + request_metadata = DiscordMessageMetadata("POST", rev_id=change.get("revid", None), log_id=change.get("logid", None), page_id=change.get("pageid", None)) if action != "suppressed": author_url = link_formatter(create_article_path("User:{user}".format(user=change["user"]))) - author = change["user"] + if "anon" in change: + change["user"] = _("Unregistered user") + author = change["user"] + else: + author = change["user"] parsed_comment = "" if parsed_comment is None else " *("+parsed_comment+")*" if action in ["edit", "new"]: edit_link = link_formatter("{wiki}index.php?title={article}&curid={pageid}&diff={diff}&oldid={oldrev}".format( wiki=WIKI_SCRIPT_PATH, pageid=change["pageid"], diff=change["revid"], oldrev=change["old_revid"], article=change["title"])) + logger.debug(edit_link) edit_size = change["newlen"] - change["oldlen"] if edit_size > 0: sign = "+" else: sign = "" + bold = "" + if abs(edit_size) > 500: + bold = "**" if change["title"].startswith("MediaWiki:Tag-"): pass if action == "edit": - content = _("[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({sign}{edit_size})").format(author=author, author_url=author_url, article=change["title"], edit_link=edit_link, comment=parsed_comment, edit_size=edit_size, sign=sign) + content = "📝 "+_("[{author}]({author_url}) edited [{article}]({edit_link}){comment} ({bold}{sign}{edit_size}{bold})").format(author=author, author_url=author_url, article=change["title"], edit_link=edit_link, comment=parsed_comment, edit_size=edit_size, sign=sign, bold=bold) else: - content = _("[{author}]({author_url}) created [{article}]({edit_link}){comment} ({sign}{edit_size})").format(author=author, author_url=author_url, article=change["title"], edit_link=edit_link, comment=parsed_comment, edit_size=edit_size, sign=sign) + content = "🆕 "+_("[{author}]({author_url}) created [{article}]({edit_link}){comment} ({bold}{sign}{edit_size}{bold})").format(author=author, author_url=author_url, article=change["title"], edit_link=edit_link, comment=parsed_comment, edit_size=edit_size, sign=sign, bold=bold) elif action =="upload/upload": file_link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) uploaded [{file}]({file_link}){comment}").format(author=author, + content = "🖼️ "+_("[{author}]({author_url}) uploaded [{file}]({file_link}){comment}").format(author=author, author_url=author_url, file=change["title"], file_link=file_link, comment=parsed_comment) elif action == "upload/revert": file_link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}").format( + content = "⏮️ "+_("[{author}]({author_url}) reverted a version of [{file}]({file_link}){comment}").format( author=author, author_url=author_url, file=change["title"], file_link=file_link, comment=parsed_comment) elif action == "upload/overwrite": file_link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) uploaded a new version of [{file}]({file_link}){comment}").format(author=author, author_url=author_url, file=change["title"], file_link=file_link, comment=parsed_comment) + content = "🖼️ "+_("[{author}]({author_url}) uploaded a new version of [{file}]({file_link}){comment}").format(author=author, author_url=author_url, file=change["title"], file_link=file_link, comment=parsed_comment) elif action == "delete/delete": page_link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) deleted [{page}]({page_link}){comment}").format(author=author, author_url=author_url, page=change["title"], page_link=page_link, + content = "🗑️ "+_("[{author}]({author_url}) deleted [{page}]({page_link}){comment}").format(author=author, author_url=author_url, page=change["title"], page_link=page_link, comment=parsed_comment) + if AUTO_SUPPRESSION_ENABLED: + delete_messages(dict(pageid=change.get("pageid"))) elif action == "delete/delete_redir": page_link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) deleted redirect by overwriting [{page}]({page_link}){comment}").format(author=author, author_url=author_url, page=change["title"], page_link=page_link, + content = "🗑️ "+_("[{author}]({author_url}) deleted redirect by overwriting [{page}]({page_link}){comment}").format(author=author, author_url=author_url, page=change["title"], page_link=page_link, comment=parsed_comment) + if AUTO_SUPPRESSION_ENABLED: + delete_messages(dict(pageid=change.get("pageid"))) elif action == "move/move": link = link_formatter(create_article_path(change["logparams"]['target_title'])) redirect_status = _("without making a redirect") if "suppressredirect" in change["logparams"] else _("with a redirect") - content = _("[{author}]({author_url}) moved {redirect}*{article}* to [{target}]({target_url}) {made_a_redirect}{comment}").format(author=author, author_url=author_url, redirect="⤷ " if "redirect" in change else "", article=change["title"], + content = "📨 "+_("[{author}]({author_url}) moved {redirect}*{article}* to [{target}]({target_url}) {made_a_redirect}{comment}").format(author=author, author_url=author_url, redirect="⤷ " if "redirect" in change else "", article=change["title"], target=change["logparams"]['target_title'], target_url=link, comment=parsed_comment, made_a_redirect=redirect_status) elif action == "move/move_redir": link = link_formatter(create_article_path(change["logparams"]["target_title"])) redirect_status = _("without making a redirect") if "suppressredirect" in change["logparams"] else _( "with a redirect") - content = _("[{author}]({author_url}) moved {redirect}*{article}* over redirect to [{target}]({target_url}) {made_a_redirect}{comment}").format(author=author, author_url=author_url, redirect="⤷ " if "redirect" in change else "", article=change["title"], + content = "📨 "+_("[{author}]({author_url}) moved {redirect}*{article}* over redirect to [{target}]({target_url}) {made_a_redirect}{comment}").format(author=author, author_url=author_url, redirect="⤷ " if "redirect" in change else "", article=change["title"], target=change["logparams"]['target_title'], target_url=link, comment=parsed_comment, made_a_redirect=redirect_status) elif action == "protect/move_prot": link = link_formatter(create_article_path(change["logparams"]["oldtitle_title"])) - content = _( + content = "🔏 "+_( "[{author}]({author_url}) moved protection settings from {redirect}*{article}* to [{target}]({target_url}){comment}").format(author=author, author_url=author_url, redirect="⤷ " if "redirect" in change else "", article=change["logparams"]["oldtitle_title"], target=change["title"], target_url=link, comment=parsed_comment) elif action == "block/block": @@ -88,7 +167,7 @@ def compact_formatter(action, change, parsed_comment, categories, recent_changes link = link_formatter(create_article_path("Special:Contributions/{user}".format(user=user))) except ValueError: link = link_formatter(create_article_path(change["title"])) - if change["logparams"]["duration"] in ["infinite", "infinity"]: + if change["logparams"]["duration"] in ["infinite", "infinity", "indefinite", "never"]: block_time = _("for infinity and beyond") else: english_length = re.sub(r"(\d+)", "", change["logparams"][ @@ -106,77 +185,102 @@ def compact_formatter(action, change, parsed_comment, categories, recent_changes date_time_obj = datetime.datetime.strptime(change["logparams"]["expiry"], '%Y-%m-%dT%H:%M:%SZ') block_time = _("until {}").format(date_time_obj.strftime("%Y-%m-%d %H:%M:%S UTC")) if "sitewide" not in change["logparams"]: - restriction_description = "" - if "pages" in change["logparams"]["restrictions"] and change["logparams"]["restrictions"]["pages"]: - restriction_description = _(" on pages: ") - for page in change["logparams"]["restrictions"]["pages"]: - restricted_pages = ["*{page}*".format(page=i["page_title"]) for i in change["logparams"]["restrictions"]["pages"]] - restriction_description = restriction_description + ", ".join(restricted_pages) - if "namespaces" in change["logparams"]["restrictions"] and change["logparams"]["restrictions"]["namespaces"]: - namespaces = [] - if restriction_description: - restriction_description = restriction_description + _(" and namespaces: ") - else: - restriction_description = _(" on namespaces: ") - for namespace in change["logparams"]["restrictions"]["namespaces"]: - if str(namespace) in recent_changes.namespaces: # if we have cached namespace name for given namespace number, add its name to the list - namespaces.append("*{ns}*".format(ns=recent_changes.namespaces[str(namespace)]["*"])) + if "restrictions" in change["logparams"]: + if "pages" in change["logparams"]["restrictions"] and change["logparams"]["restrictions"]["pages"]: + restriction_description = _(" on pages: ") + for page in change["logparams"]["restrictions"]["pages"]: + restricted_pages = ["*{page}*".format(page=i["page_title"]) for i in change["logparams"]["restrictions"]["pages"]] + restriction_description = restriction_description + ", ".join(restricted_pages) + if "namespaces" in change["logparams"]["restrictions"] and change["logparams"]["restrictions"]["namespaces"]: + namespaces = [] + if restriction_description: + restriction_description = restriction_description + _(" and namespaces: ") else: - namespaces.append("*{ns}*".format(ns=namespace)) - restriction_description = restriction_description + ", ".join(namespaces) - restriction_description = restriction_description + "." - if len(restriction_description) > 1020: - logger.debug(restriction_description) - restriction_description = restriction_description[:1020] + "…" - content = _( + restriction_description = _(" on namespaces: ") + for namespace in change["logparams"]["restrictions"]["namespaces"]: + if str(namespace) in recent_changes.namespaces: # if we have cached namespace name for given namespace number, add its name to the list + namespaces.append("*{ns}*".format(ns=recent_changes.namespaces[str(namespace)]["*"])) + else: + namespaces.append("*{ns}*".format(ns=namespace)) + restriction_description = restriction_description + ", ".join(namespaces) + restriction_description = restriction_description + "." + if len(restriction_description) > 1020: + logger.debug(restriction_description) + restriction_description = restriction_description[:1020] + "…" + content = "🚫 "+_( "[{author}]({author_url}) blocked [{user}]({user_url}) {time}{restriction_desc}{comment}").format(author=author, author_url=author_url, user=user, time=block_time, user_url=link, restriction_desc=restriction_description, comment=parsed_comment) elif action == "block/reblock": link = link_formatter(create_article_path(change["title"])) user = change["title"].split(':', 1)[1] - content = _("[{author}]({author_url}) changed block settings for [{blocked_user}]({user_url}){comment}").format(author=author, author_url=author_url, blocked_user=user, user_url=link, comment=parsed_comment) + content = "🚫 "+_("[{author}]({author_url}) changed block settings for [{blocked_user}]({user_url}){comment}").format(author=author, author_url=author_url, blocked_user=user, user_url=link, comment=parsed_comment) elif action == "block/unblock": link = link_formatter(create_article_path(change["title"])) user = change["title"].split(':', 1)[1] - content = _("[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}").format(author=author, author_url=author_url, blocked_user=user, user_url=link, comment=parsed_comment) + content = "✅ "+_("[{author}]({author_url}) unblocked [{blocked_user}]({user_url}){comment}").format(author=author, author_url=author_url, blocked_user=user, user_url=link, comment=parsed_comment) elif action == "curseprofile/comment-created": link = link_formatter(create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]))) - content = _("[{author}]({author_url}) left a [comment]({comment}) on {target} profile").format(author=author, author_url=author_url, comment=link, target=change["title"].split(':')[1]+"'s" if change["title"].split(':')[1] != change["user"] else _("their own profile")) + target_user = change["title"].split(':')[1] + if target_user != author: + content = "✉️ "+ _("[{author}]({author_url}) left a [comment]({comment}) on {target}'s profile".format(author=author, author_url=author_url, comment=link, target=target_user)) + else: + content = "✉️ "+ _("[{author}]({author_url}) left a [comment]({comment}) on their own profile".format(author=author, comment=link, author_url=author_url)) elif action == "curseprofile/comment-replied": link = link_formatter(create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]))) - content = _("[{author}]({author_url}) replied to a [comment]({comment}) on {target} profile").format(author=author, - author_url=author_url, - comment=link, - target=change["title"].split(':')[1] if change["title"].split(':')[1] !=change["user"] else _("their own")) + target_user = change["title"].split(':')[1] + if target_user != author: + content = "📩 "+ _( + "[{author}]({author_url}) replied to a [comment]({comment}) on {target}'s profile".format(author=author, + author_url=author_url, + comment=link, + target=target_user)) + else: + content = "📩 "+ _( + "[{author}]({author_url}) replied to a [comment]({comment}) on their own profile".format(author=author, + comment=link, + author_url=author_url)) elif action == "curseprofile/comment-edited": link = link_formatter(create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]))) - content = _("[{author}]({author_url}) edited a [comment]({comment}) on {target} profile").format(author=author, - author_url=author_url, - comment=link, - target=change["title"].split(':')[1] if change["title"].split(':')[1] !=change["user"] else _("their own")) + target_user = change["title"].split(':')[1] + if target_user != author: + content = "📧 "+ _( + "[{author}]({author_url}) edited a [comment]({comment}) on {target}'s profile".format(author=author, + author_url=author_url, + comment=link, + target=target_user)) + else: + content = "📧 "+ _( + "[{author}]({author_url}) edited a [comment]({comment}) on their own profile".format(author=author, + comment=link, + author_url=author_url)) elif action == "curseprofile/comment-purged": link = link_formatter(create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]))) - content = _("[{author}]({author_url}) purged a comment on {target} profile").format(author=author, - author_url=author_url, - target= - change["title"].split(':')[ - 1] if - change["title"].split(':')[ - 1] != change[ - "user"] else _( - "their own")) + target_user = change["title"].split(':')[1] + if target_user != author: + content = "👁️ " + _("[{author}]({author_url}) purged a comment on {target}'s profile".format(author=author, author_url=author_url,target=target_user)) + else: + content = "👁️ " + _("[{author}]({author_url}) purged a comment on their own profile".format(author=author, author_url=author_url)) elif action == "curseprofile/comment-deleted": - content = _("[{author}]({author_url}) deleted a comment on {target} profile").format(author=author, - author_url=author_url, - target=change["title"].split(':')[1] if change["title"].split(':')[1] !=change["user"] else _("their own")) + target_user = change["title"].split(':')[1] + if target_user != author: + content = "🗑️ "+ _("[{author}]({author_url}) deleted a comment on {target}'s profile".format(author=author,author_url=author_url, target=target_user)) + else: + content = "🗑️ "+ _("[{author}]({author_url}) deleted a comment on their own profile".format(author=author, author_url=author_url)) elif action == "curseprofile/profile-edited": link = link_formatter(create_article_path("UserProfile:{user}".format(user=change["title"].split(":")[1]))) - target = _("[{target}]({target_url})'s").format(target=change["title"].split(':')[1], target_url=link) if change["title"].split(':')[1] != author else _("[their own]({target_url})").format(target_url=link) - content = _("[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*").format(author=author, + target_user = change["title"].split(':')[1] + if target_user != author: + content = "📌 "+_("[{author}]({author_url}) edited the {field} on {target}'s profile. *({desc})*").format(author=author, author_url=author_url, - target=target, + target=target_user, field=profile_field_name(change["logparams"]['4:section'], False), desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text()) + else: + content = "📌 " + _("[{author}]({author_url}) edited the {field} on their own profile. *({desc})*").format( + author=author, + author_url=author_url, + field=profile_field_name(change["logparams"]['4:section'], False), + desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text()) elif action in ("rights/rights", "rights/autopromote"): link = link_formatter(create_article_path("User:{user}".format(user=change["title"].split(":")[1]))) old_groups = [] @@ -191,21 +295,21 @@ def compact_formatter(action, change, parsed_comment, categories, recent_changes new_groups = [_("none")] if action == "rights/rights": - content = "[{author}]({author_url}) changed group membership for [{target}]({target_url}) from {old_groups} to {new_groups}{comment}".format(author=author, author_url=author_url, target=change["title"].split(":")[1], target_url=link, old_groups=", ".join(old_groups), new_groups=', '.join(new_groups), comment=parsed_comment) + content = "🏅 "+_("[{author}]({author_url}) changed group membership for [{target}]({target_url}) from {old_groups} to {new_groups}{comment}").format(author=author, author_url=author_url, target=change["title"].split(":")[1], target_url=link, old_groups=", ".join(old_groups), new_groups=', '.join(new_groups), comment=parsed_comment) else: - content = "{author} autopromoted [{target}]({target_url}) from {old_groups} to {new_groups}{comment}".format( + content = "🏅 "+_("{author} autopromoted [{target}]({target_url}) from {old_groups} to {new_groups}{comment}").format( author=_("System"), author_url=author_url, target=change["title"].split(":")[1], target_url=link, old_groups=", ".join(old_groups), new_groups=', '.join(new_groups), comment=parsed_comment) elif action == "protect/protect": link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) protected [{article}]({article_url}) with the following settings: {settings}{comment}").format(author=author, author_url=author_url, + content = "🔒 "+_("[{author}]({author_url}) protected [{article}]({article_url}) with the following settings: {settings}{comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, - settings=change["logparams"]["description"]+_(" [cascading]") if "cascade" in change["logparams"] else "", + settings=change["logparams"]["description"]+(_(" [cascading]") if "cascade" in change["logparams"] else ""), comment=parsed_comment) elif action == "protect/modify": link = link_formatter(create_article_path(change["title"])) - content = _( + content = "🔐 "+_( "[{author}]({author_url}) modified protection settings of [{article}]({article_url}) to: {settings}{comment}").format( author=author, author_url=author_url, article=change["title"], article_url=link, @@ -213,153 +317,189 @@ def compact_formatter(action, change, parsed_comment, categories, recent_changes comment=parsed_comment) elif action == "protect/unprotect": link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) removed protection from [{article}]({article_url}){comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, comment=parsed_comment) + content = "🔓 "+_("[{author}]({author_url}) removed protection from [{article}]({article_url}){comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, comment=parsed_comment) elif action == "delete/revision": amount = len(change["logparams"]["ids"]) link = link_formatter(create_article_path(change["title"])) - content = ngettext("[{author}]({author_url}) changed visibility of revision on page [{article}]({article_url}){comment}", + content = "👁️ "+ngettext("[{author}]({author_url}) changed visibility of revision on page [{article}]({article_url}){comment}", "[{author}]({author_url}) changed visibility of {amount} revisions on page [{article}]({article_url}){comment}", amount).format(author=author, author_url=author_url, article=change["title"], article_url=link, amount=amount, comment=parsed_comment) + if AUTO_SUPPRESSION_ENABLED: + try: + logparams = change["logparams"] + pageid = change["pageid"] + except KeyError: + pass + else: + delete_messages(dict(pageid=pageid)) elif action == "import/upload": link = link_formatter(create_article_path(change["title"])) - content = ngettext("[{author}]({author_url}) imported [{article}]({article_url}) with {count} revision{comment}", + content = "📥 "+ngettext("[{author}]({author_url}) imported [{article}]({article_url}) with {count} revision{comment}", "[{author}]({author_url}) imported [{article}]({article_url}) with {count} revisions{comment}", change["logparams"]["count"]).format( author=author, author_url=author_url, article=change["title"], article_url=link, count=change["logparams"]["count"], comment=parsed_comment) elif action == "delete/restore": link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) restored [{article}]({article_url}){comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, comment=parsed_comment) + content = "♻️ "+_("[{author}]({author_url}) restored [{article}]({article_url}){comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, comment=parsed_comment) elif action == "delete/event": - content = _("[{author}]({author_url}) changed visibility of log events{comment}").format(author=author, author_url=author_url, comment=parsed_comment) + content = "👁️ "+_("[{author}]({author_url}) changed visibility of log events{comment}").format(author=author, author_url=author_url, comment=parsed_comment) + if AUTO_SUPPRESSION_ENABLED: + try: + logparams = change["logparams"] + except KeyError: + pass + else: + for revid in logparams.get("ids", []): + delete_messages(dict(revid=revid)) elif action == "import/interwiki": - content = _("[{author}]({author_url}) imported interwiki{comment}").format(author=author, author_url=author_url, comment=parsed_comment) + content = "📥 "+_("[{author}]({author_url}) imported interwiki{comment}").format(author=author, author_url=author_url, comment=parsed_comment) elif action == "abusefilter/modify": link = link_formatter(create_article_path("Special:AbuseFilter/history/{number}/diff/prev/{historyid}".format(number=change["logparams"]['newId'], historyid=change["logparams"]["historyId"]))) - content = _("[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})").format(author=author, author_url=author_url, number=change["logparams"]['newId'], filter_url=link) + content = "🔍 "+_("[{author}]({author_url}) edited abuse filter [number {number}]({filter_url})").format(author=author, author_url=author_url, number=change["logparams"]['newId'], filter_url=link) elif action == "abusefilter/create": link = link_formatter( create_article_path("Special:AbuseFilter/{number}".format(number=change["logparams"]['newId']))) - content = _("[{author}]({author_url}) created abuse filter [number {number}]({filter_url})").format(author=author, author_url=author_url, number=change["logparams"]['newId'], filter_url=link) + content = "🔍 "+_("[{author}]({author_url}) created abuse filter [number {number}]({filter_url})").format(author=author, author_url=author_url, number=change["logparams"]['newId'], filter_url=link) elif action == "merge/merge": link = link_formatter(create_article_path(change["title"])) link_dest = link_formatter(create_article_path(change["logparams"]["dest_title"])) - content = _("[{author}]({author_url}) merged revision histories of [{article}]({article_url}) into [{dest}]({dest_url}){comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, dest_url=link_dest, + content = "🖇️ "+_("[{author}]({author_url}) merged revision histories of [{article}]({article_url}) into [{dest}]({dest_url}){comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, dest_url=link_dest, dest=change["logparams"]["dest_title"], comment=parsed_comment) elif action == "newusers/autocreate": link = link_formatter(create_article_path(change["title"])) - content = _("Account [{author}]({author_url}) was created automatically").format(author=author, author_url=author_url) + content = "🗿 "+_("Account [{author}]({author_url}) was created automatically").format(author=author, author_url=author_url) elif action == "newusers/create": link = link_formatter(create_article_path(change["title"])) - content = _("Account [{author}]({author_url}) was created").format(author=author, author_url=author_url) + content = "🗿 "+_("Account [{author}]({author_url}) was created").format(author=author, author_url=author_url) elif action == "newusers/create2": link = link_formatter(create_article_path(change["title"])) - content = _("Account [{article}]({article_url}) was created by [{author}]({author_url}){comment}").format(article=change["title"], article_url=link, author=author, author_url=author_url, comment=parsed_comment) + content = "🗿 "+_("Account [{article}]({article_url}) was created by [{author}]({author_url}){comment}").format(article=change["title"], article_url=link, author=author, author_url=author_url, comment=parsed_comment) elif action == "newusers/byemail": link = link_formatter(create_article_path(change["title"])) - content = _("Account [{article}]({article_url}) was created by [{author}]({author_url}) and password was sent by email{comment}").format(article=change["title"], article_url=link, author=author, author_url=author_url, comment=parsed_comment) + content = "🗿 "+_("Account [{article}]({article_url}) was created by [{author}]({author_url}) and password was sent by email{comment}").format(article=change["title"], article_url=link, author=author, author_url=author_url, comment=parsed_comment) elif action == "newusers/newusers": link = author_url - content = _("Account [{author}]({author_url}) was created").format(author=author, author_url=author_url) + content = "🗿 "+_("Account [{author}]({author_url}) was created").format(author=author, author_url=author_url) elif action == "interwiki/iw_add": link = link_formatter(create_article_path("Special:Interwiki")) - content = _("[{author}]({author_url}) added an entry to the [interwiki table]({table_url}) pointing to {website} with {prefix} prefix").format(author=author, author_url=author_url, desc=parsed_comment, + content = "🔗 "+_("[{author}]({author_url}) added an entry to the [interwiki table]({table_url}) pointing to {website} with {prefix} prefix").format(author=author, author_url=author_url, desc=parsed_comment, prefix=change["logparams"]['0'], website=change["logparams"]['1'], table_url=link) elif action == "interwiki/iw_edit": link = link_formatter(create_article_path("Special:Interwiki")) - content = _("[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) pointing to {website} with {prefix} prefix").format(author=author, author_url=author_url, desc=parsed_comment, + content = "🔗 "+_("[{author}]({author_url}) edited an entry in [interwiki table]({table_url}) pointing to {website} with {prefix} prefix").format(author=author, author_url=author_url, desc=parsed_comment, prefix=change["logparams"]['0'], website=change["logparams"]['1'], table_url=link) elif action == "interwiki/iw_delete": link = link_formatter(create_article_path("Special:Interwiki")) - content = _("[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})").format(author=author, author_url=author_url, table_url=link) + content = "🔗 "+_("[{author}]({author_url}) deleted an entry in [interwiki table]({table_url})").format(author=author, author_url=author_url, table_url=link) elif action == "contentmodel/change": link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) changed the content model of the page [{article}]({article_url}) from {old} to {new}{comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, old=change["logparams"]["oldmodel"], + content = "📋 "+_("[{author}]({author_url}) changed the content model of the page [{article}]({article_url}) from {old} to {new}{comment}").format(author=author, author_url=author_url, article=change["title"], article_url=link, old=change["logparams"]["oldmodel"], new=change["logparams"]["newmodel"], comment=parsed_comment) elif action == "sprite/sprite": link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) edited the sprite for [{article}]({article_url})").format(author=author, author_url=author_url, article=change["title"], article_url=link) + content = "🪟 "+_("[{author}]({author_url}) edited the sprite for [{article}]({article_url})").format(author=author, author_url=author_url, article=change["title"], article_url=link) elif action == "sprite/sheet": link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) created the sprite sheet for [{article}]({article_url})").format(author=author, author_url=author_url, article=change["title"], article_url=link) + content = "🪟 "+_("[{author}]({author_url}) created the sprite sheet for [{article}]({article_url})").format(author=author, author_url=author_url, article=change["title"], article_url=link) elif action == "sprite/slice": link = link_formatter(create_article_path(change["title"])) - content = _("[{author}]({author_url}) edited the slice for [{article}]({article_url})").format(author=author, author_url=author_url, article=change["title"], article_url=link) + content = "🪟 "+_("[{author}]({author_url}) edited the slice for [{article}]({article_url})").format(author=author, author_url=author_url, article=change["title"], article_url=link) elif action == "cargo/createtable": LinkParser.feed(change["logparams"]["0"]) table = LinkParser.new_string LinkParser.new_string = "" - content = _("[{author}]({author_url}) created the Cargo table \"{table}\"").format(author=author, author_url=author_url, table=table) + content = "📦 "+_("[{author}]({author_url}) created the Cargo table \"{table}\"").format(author=author, author_url=author_url, table=table) elif action == "cargo/deletetable": - content = _("[{author}]({author_url}) deleted the Cargo table \"{table}\"").format(author=author, author_url=author_url, table=change["logparams"]["0"]) + content = "📦 "+_("[{author}]({author_url}) deleted the Cargo table \"{table}\"").format(author=author, author_url=author_url, table=change["logparams"]["0"]) elif action == "cargo/recreatetable": LinkParser.feed(change["logparams"]["0"]) table = LinkParser.new_string LinkParser.new_string = "" - content = _("[{author}]({author_url}) recreated the Cargo table \"{table}\"").format(author=author, author_url=author_url, table=table) + content = "📦 "+_("[{author}]({author_url}) recreated the Cargo table \"{table}\"").format(author=author, author_url=author_url, table=table) elif action == "cargo/replacetable": LinkParser.feed(change["logparams"]["0"]) table = LinkParser.new_string LinkParser.new_string = "" - content = _("[{author}]({author_url}) replaced the Cargo table \"{table}\"").format(author=author, author_url=author_url, table=table) + content = "📦 "+_("[{author}]({author_url}) replaced the Cargo table \"{table}\"").format(author=author, author_url=author_url, table=table) elif action == "managetags/create": link = link_formatter(create_article_path("Special:Tags")) - content = _("[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) + content = "🏷️ "+_("[{author}]({author_url}) created a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) recent_changes.init_info() elif action == "managetags/delete": link = link_formatter(create_article_path("Special:Tags")) - content = _("[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) + content = "🏷️ "+_("[{author}]({author_url}) deleted a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) recent_changes.init_info() elif action == "managetags/activate": link = link_formatter(create_article_path("Special:Tags")) - content = _("[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) + content = "🏷️ "+_("[{author}]({author_url}) activated a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) elif action == "managetags/deactivate": link = link_formatter(create_article_path("Special:Tags")) - content = _("[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) + content = "🏷️ "+_("[{author}]({author_url}) deactivated a [tag]({tag_url}) \"{tag}\"").format(author=author, author_url=author_url, tag=change["logparams"]["tag"], tag_url=link) + elif action == "managewiki/settings": # Miraheze's ManageWiki extension https://github.com/miraheze/ManageWiki + content = "⚙️ "+_("[{author}]({author_url}) changed wiki settings ({reason})".format(author=author, author_url=author_url, reason=parsed_comment)) + elif action == "managewiki/delete": + content = "🗑️ "+_("[{author}]({author_url}) deleted a wiki *{wiki_name}* ({comment})").format(author=author, author_url=author_url, + wiki_name=change["logparams"].get("wiki", _("Unknown")), comment=parsed_comment) + elif action == "managewiki/lock": + content = "🔒 "+_("[{author}]({author_url}) locked a wiki *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, wiki_name=change["logparams"].get("wiki", _("Unknown")), comment=parsed_comment) + elif action == "managewiki/namespaces": + content = "📦 "+_("[{author}]({author_url}) modified a namespace *{namespace_name}* on *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, namespace_name=change["logparams"].get("namespace", _("Unknown")), + wiki_name=change["logparams"].get("wiki", _("Unknown")), comment=parsed_comment) + elif action == "managewiki/namespaces-delete": + content = "🗑️ " + _( + "[{author}]({author_url}) deleted a namespace *{namespace_name}* on *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, + namespace_name=change["logparams"].get("namespace", _("Unknown")), + wiki_name=change["logparams"].get("wiki", _("Unknown")), comment=parsed_comment) + elif action == "managewiki/rights": + content = "🏅 " + _("[{author}]({author_url}) modified user group *{group_name}* ({comment})").format( + author=author, author_url=author_url, group_name=change["title"][32:], comment=parsed_comment + ) + elif action == "managewiki/undelete": + content = "🏅 " + _("[{author}]({author_url}) restored a wiki *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, wiki_name=change["logparams"].get("wiki", _("Unknown")), comment=parsed_comment + ) + elif action == "managewiki/unlock": + content = "🏅 " + _("[{author}]({author_url}) unlocked a wiki *{wiki_name}* ({comment})").format( + author=author, author_url=author_url, wiki_name=change["logparams"].get("wiki", _("Unknown")), + comment=parsed_comment + ) elif action == "suppressed": - content = _("An action has been hidden by administration.") + content = "👁️ "+_("An action has been hidden by administration.") else: logger.warning("No entry for {event} with params: {params}".format(event=action, params=change)) if not settings.get("support", None): return else: - content = _( + content = "❓ "+_( "Unknown event `{event}` by [{author}]({author_url}), report it on the [support server](<{support}>).").format( event=action, author=author, author_url=author_url, support=settings["support"]) - send_to_discord(DiscordMessage("compact", action, settings["webhookURL"], content=content)) + send_to_discord(DiscordMessage("compact", action, settings["webhookURL"], content=content), meta=request_metadata) + +def embed_abuselog_formatter(change, recent_changes): + action = "abuselog/{}".format(change["result"]) + embed = DiscordMessage("embed", action, settings["webhookURL"]) + author = abuse_filter_format_user(change) + embed["title"] = _("{user} triggered \"{abuse_filter}\"").format(user=author, abuse_filter=change["filter"]) + embed.add_field(_("Performed"), abusefilter_actions.get(change["action"], _("Unknown"))) + embed.add_field(_("Action taken"), abusefilter_results.get(change["result"], _("Unknown"))) + embed.add_field(_("Title"), change.get("title", _("Unknown"))) + embed.finish_embed() + send_to_discord(embed, meta=DiscordMessageMetadata("POST")) def embed_formatter(action, change, parsed_comment, categories, recent_changes): embed = DiscordMessage("embed", action, settings["webhookURL"]) + request_metadata = DiscordMessageMetadata("POST", rev_id=change.get("revid", None), log_id=change.get("logid", None), page_id=change.get("pageid", None)) if parsed_comment is None: parsed_comment = _("No description provided") if action != "suppressed": - if "anon" in change: - author_url = create_article_path("Special:Contributions/{user}".format(user=change["user"].replace(" ", "_"))) # Replace here needed in case of #75 - logger.debug("current user: {} with cache of IPs: {}".format(change["user"], recent_changes.map_ips.keys())) - if change["user"] not in list(recent_changes.map_ips.keys()): - contibs = safe_read(recent_changes.safe_request( - "{wiki}?action=query&format=json&list=usercontribs&uclimit=max&ucuser={user}&ucstart={timestamp}&ucprop=".format( - wiki=WIKI_API_PATH, user=change["user"], timestamp=change["timestamp"])), "query", "usercontribs") - if contibs is None: - logger.warning( - "WARNING: Something went wrong when checking amount of contributions for given IP address") - change["user"] = change["user"] + "(?)" - else: - recent_changes.map_ips[change["user"]] = len(contibs) - logger.debug("Current params user {} and state of map_ips {}".format(change["user"], recent_changes.map_ips)) - change["user"] = "{author} ({contribs})".format(author=change["user"], contribs=len(contibs)) - else: - logger.debug( - "Current params user {} and state of map_ips {}".format(change["user"], recent_changes.map_ips)) - if action in ("edit", "new"): - recent_changes.map_ips[change["user"]] += 1 - change["user"] = "{author} ({amount})".format(author=change["user"], - amount=recent_changes.map_ips[change["user"]]) - else: - author_url = create_article_path("User:{}".format(change["user"].replace(" ", "_"))) + change["user"], author_url = format_user(change, recent_changes, action) embed.set_author(change["user"], author_url) if action in ("edit", "new"): # edit or new page editsize = change["newlen"] - change["oldlen"] @@ -379,7 +519,7 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): recent_changes.init_info() link = "{wiki}index.php?title={article}&curid={pageid}&diff={diff}&oldid={oldrev}".format( wiki=WIKI_SCRIPT_PATH, pageid=change["pageid"], diff=change["revid"], oldrev=change["old_revid"], - article=change["title"].replace(" ", "_")) + article=change["title"]) embed["title"] = "{redirect}{article} ({new}{minor}{bot}{space}{editsize})".format(redirect="⤷ " if "redirect" in change else "", article=change["title"], editsize="+" + str( editsize) if editsize > 0 else editsize, new=_("(N!) ") if action == "new" else "", minor=_("m") if action == "edit" and "minor" in change else "", bot=_('b') if "bot" in change else "", space=" " if "bot" in change or (action == "edit" and "minor" in change) or action == "new" else "") @@ -419,7 +559,7 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): urls = safe_read(recent_changes.safe_request( "{wiki}?action=query&format=json&prop=imageinfo&list=&meta=&titles={filename}&iiprop=timestamp%7Curl%7Carchivename&iilimit=5".format( wiki=WIKI_API_PATH, filename=change["title"])), "query", "pages") - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) additional_info_retrieved = False if urls is not None: logger.debug(urls) @@ -488,23 +628,27 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): if settings["appearance"]["embed"]["embed_images"]: embed["image"]["url"] = image_direct_url elif action == "delete/delete": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Deleted page {article}").format(article=change["title"]) + if AUTO_SUPPRESSION_ENABLED: + delete_messages(dict(pageid=change.get("pageid"))) elif action == "delete/delete_redir": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Deleted redirect {article} by overwriting").format(article=change["title"]) + if AUTO_SUPPRESSION_ENABLED: + delete_messages(dict(pageid=change.get("pageid"))) elif action == "move/move": - link = create_article_path(change["logparams"]['target_title'].replace(" ", "_")) + link = create_article_path(change["logparams"]['target_title']) parsed_comment = "{supress}. {desc}".format(desc=parsed_comment, supress=_("No redirect has been made") if "suppressredirect" in change["logparams"] else _( "A redirect has been made")) embed["title"] = _("Moved {redirect}{article} to {target}").format(redirect="⤷ " if "redirect" in change else "", article=change["title"], target=change["logparams"]['target_title']) elif action == "move/move_redir": - link = create_article_path(change["logparams"]["target_title"].replace(" ", "_")) + link = create_article_path(change["logparams"]["target_title"]) embed["title"] = _("Moved {redirect}{article} to {title} over redirect").format(redirect="⤷ " if "redirect" in change else "", article=change["title"], title=change["logparams"]["target_title"]) elif action == "protect/move_prot": - link = create_article_path(change["logparams"]["oldtitle_title"].replace(" ", "_")) + link = create_article_path(change["logparams"]["oldtitle_title"]) embed["title"] = _("Moved protection settings from {redirect}{article} to {title}").format(redirect="⤷ " if "redirect" in change else "", article=change["logparams"]["oldtitle_title"], title=change["title"]) elif action == "block/block": @@ -513,7 +657,7 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): ipaddress.ip_address(user) link = create_article_path("Special:Contributions/{user}".format(user=user)) except ValueError: - link = create_article_path(change["title"].replace(" ", "_").replace(')', '\)')) + link = create_article_path(change["title"].replace(')', '\)')) if change["logparams"]["duration"] in ["infinite", "infinity"]: block_time = _("for infinity and beyond") else: @@ -532,35 +676,36 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): block_time = _("unknown expiry time") # THIS IS HERE JUST TEMPORARY AS A HOT FIX TO #157, will be changed with release of 1.13 if "sitewide" not in change["logparams"]: restriction_description = "" - if "pages" in change["logparams"]["restrictions"] and change["logparams"]["restrictions"]["pages"]: - restriction_description = _("Blocked from editing the following pages: ") - for page in change["logparams"]["restrictions"]["pages"]: - restricted_pages = ["*"+i["page_title"]+"*" for i in change["logparams"]["restrictions"]["pages"]] - restriction_description = restriction_description + ", ".join(restricted_pages) - if "namespaces" in change["logparams"]["restrictions"] and change["logparams"]["restrictions"]["namespaces"]: - namespaces = [] - if restriction_description: - restriction_description = restriction_description + _(" and namespaces: ") - else: - restriction_description = _("Blocked from editing pages on following namespaces: ") - for namespace in change["logparams"]["restrictions"]["namespaces"]: - if str(namespace) in recent_changes.namespaces: # if we have cached namespace name for given namespace number, add its name to the list - namespaces.append("*{ns}*".format(ns=recent_changes.namespaces[str(namespace)]["*"])) + if "restrictions" in change["logparams"]: + if "pages" in change["logparams"]["restrictions"] and change["logparams"]["restrictions"]["pages"]: + restriction_description = _("Blocked from editing the following pages: ") + for page in change["logparams"]["restrictions"]["pages"]: + restricted_pages = ["*"+i["page_title"]+"*" for i in change["logparams"]["restrictions"]["pages"]] + restriction_description = restriction_description + ", ".join(restricted_pages) + if "namespaces" in change["logparams"]["restrictions"] and change["logparams"]["restrictions"]["namespaces"]: + namespaces = [] + if restriction_description: + restriction_description = restriction_description + _(" and namespaces: ") else: - namespaces.append("*{ns}*".format(ns=namespace)) - restriction_description = restriction_description + ", ".join(namespaces) - restriction_description = restriction_description + "." - if len(restriction_description) > 1020: - logger.debug(restriction_description) - restriction_description = restriction_description[:1020]+"…" - embed.add_field(_("Partial block details"), restriction_description, inline=True) + restriction_description = _("Blocked from editing pages on following namespaces: ") + for namespace in change["logparams"]["restrictions"]["namespaces"]: + if str(namespace) in recent_changes.namespaces: # if we have cached namespace name for given namespace number, add its name to the list + namespaces.append("*{ns}*".format(ns=recent_changes.namespaces[str(namespace)]["*"])) + else: + namespaces.append("*{ns}*".format(ns=namespace)) + restriction_description = restriction_description + ", ".join(namespaces) + restriction_description = restriction_description + "." + if len(restriction_description) > 1020: + logger.debug(restriction_description) + restriction_description = restriction_description[:1020]+"…" + embed.add_field(_("Partial block details"), restriction_description, inline=True) embed["title"] = _("Blocked {blocked_user} {time}").format(blocked_user=user, time=block_time) elif action == "block/reblock": - link = create_article_path(change["title"].replace(" ", "_").replace(')', '\)')) + link = create_article_path(change["title"].replace(')', '\)')) user = change["title"].split(':', 1)[1] embed["title"] = _("Changed block settings for {blocked_user}").format(blocked_user=user) elif action == "block/unblock": - link = create_article_path(change["title"].replace(" ", "_").replace(')', '\)')) + link = create_article_path(change["title"].replace(')', '\)')) user = change["title"].split(':', 1)[1] embed["title"] = _("Unblocked {blocked_user}").format(blocked_user=user) elif action == "curseprofile/comment-created": @@ -585,7 +730,7 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): change["user"] else _( "Edited a comment on their own profile") elif action == "curseprofile/profile-edited": - link = create_article_path("UserProfile:{target}".format(target=change["title"].split(':')[1].replace(" ", "_").replace(')', '\)'))) + link = create_article_path("UserProfile:{target}".format(target=change["title"].split(':')[1].replace(')', '\)'))) embed["title"] = _("Edited {target}'s profile").format(target=change["title"].split(':')[1]) if change["user"] != change["title"].split(':')[1] else _("Edited their own profile") if not change["parsedcomment"]: # If the field is empty parsed_comment = _("Cleared the {field} field").format(field=profile_field_name(change["logparams"]['4:section'], True)) @@ -601,11 +746,11 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): link = create_article_path(change["title"]) embed["title"] = _("Deleted a comment on {target}'s profile").format(target=change["title"].split(':')[1]) elif action in ("rights/rights", "rights/autopromote"): - link = create_article_path("User:{}".format(change["title"].split(":")[1].replace(" ", "_"))) + link = create_article_path("User:{}".format(change["title"].split(":")[1])) if action == "rights/rights": embed["title"] = _("Changed group membership for {target}").format(target=change["title"].split(":")[1]) else: - change["user"] = _("System") + embed.set_author(_("System"), author_url) author_url = "" embed["title"] = _("{target} got autopromoted to a new usergroup").format( target=change["title"].split(":")[1]) @@ -625,37 +770,51 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): parsed_comment = _("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 = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Protected {target}").format(target=change["title"]) parsed_comment = "{settings}{cascade} | {reason}".format(settings=change["logparams"]["description"], cascade=_(" [cascading]") if "cascade" in change["logparams"] else "", reason=parsed_comment) elif action == "protect/modify": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Changed protection level for {article}").format(article=change["title"]) parsed_comment = "{settings}{cascade} | {reason}".format(settings=change["logparams"]["description"], cascade=_(" [cascading]") if "cascade" in change["logparams"] else "", reason=parsed_comment) elif action == "protect/unprotect": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Removed protection from {article}").format(article=change["title"]) elif action == "delete/revision": amount = len(change["logparams"]["ids"]) - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = ngettext("Changed visibility of revision on page {article} ", "Changed visibility of {amount} revisions on page {article} ", amount).format( article=change["title"], amount=amount) + if AUTO_SUPPRESSION_ENABLED: + try: + logparams = change["logparams"] + except KeyError: + pass + else: + redact_messages(logparams.get("ids", []), 0, logparams.get("new", {})) elif action == "import/upload": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = ngettext("Imported {article} with {count} revision", "Imported {article} with {count} revisions", change["logparams"]["count"]).format( article=change["title"], count=change["logparams"]["count"]) elif action == "delete/restore": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Restored {article}").format(article=change["title"]) elif action == "delete/event": link = create_article_path("Special:RecentChanges") embed["title"] = _("Changed visibility of log events") + if AUTO_SUPPRESSION_ENABLED: + try: + logparams = change["logparams"] + except KeyError: + pass + else: + redact_messages(logparams.get("ids", []), 1, logparams.get("new", {})) elif action == "import/interwiki": link = create_article_path("Special:RecentChanges") embed["title"] = _("Imported interwiki") @@ -666,20 +825,20 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): link = create_article_path("Special:AbuseFilter/{number}".format(number=change["logparams"]['newId'])) embed["title"] = _("Created abuse filter number {number}").format(number=change["logparams"]['newId']) elif action == "merge/merge": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Merged revision histories of {article} into {dest}").format(article=change["title"], dest=change["logparams"]["dest_title"]) elif action == "newusers/autocreate": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Created account automatically") elif action == "newusers/create": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Created account") elif action == "newusers/create2": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Created account {article}").format(article=change["title"]) elif action == "newusers/byemail": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Created account {article} and password was sent by email").format(article=change["title"]) elif action == "newusers/newusers": link = author_url @@ -701,19 +860,19 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): embed["title"] = _("Deleted an entry in interwiki table") parsed_comment = _("Prefix: {prefix} | {desc}").format(desc=parsed_comment, prefix=change["logparams"]['0']) elif action == "contentmodel/change": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Changed the content model of the page {article}").format(article=change["title"]) parsed_comment = _("Model changed from {old} to {new}: {reason}").format(old=change["logparams"]["oldmodel"], new=change["logparams"]["newmodel"], reason=parsed_comment) elif action == "sprite/sprite": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Edited the sprite for {article}").format(article=change["title"]) elif action == "sprite/sheet": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Created the sprite sheet for {article}").format(article=change["title"]) elif action == "sprite/slice": - link = create_article_path(change["title"].replace(" ", "_")) + link = create_article_path(change["title"]) embed["title"] = _("Edited the slice for {article}").format(article=change["title"]) elif action == "cargo/createtable": LinkParser.feed(change["logparams"]["0"]) @@ -754,6 +913,35 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): elif action == "managetags/deactivate": link = create_article_path("Special:Tags") embed["title"] = _("Deactivated a tag \"{tag}\"").format(tag=change["logparams"]["tag"]) + elif action == "managewiki/settings": # Miraheze's ManageWiki extension https://github.com/miraheze/ManageWiki + link = create_article_path("") + embed["title"] = _("Changed wiki settings") + if change["logparams"].get("changes", ""): + embed.add_field("Setting", change["logparams"].get("changes")) + elif action == "managewiki/delete": + embed["title"] = _("Deleted a \"{wiki}\" wiki").format(wiki=change["logparams"].get("wiki", _("Unknown"))) + link = create_article_path("") + elif action == "managewiki/lock": + embed["title"] = _("Locked a \"{wiki}\" wiki").format(wiki=change["logparams"].get("wiki", _("Unknown"))) + link = create_article_path("") + elif action == "managewiki/namespaces": + embed["title"] = _("Modified a \"{namespace_name}\" namespace").format(namespace_name=change["logparams"].get("namespace", _("Unknown"))) + link = create_article_path("") + embed.add_field(_('Wiki'), change["logparams"].get("wiki", _("Unknown"))) + elif action == "managewiki/namespaces-delete": + embed["title"] = _("Deleted a \"{namespace_name}\" namespace").format( + namespace_name=change["logparams"].get("namespace", _("Unknown"))) + link = create_article_path("") + embed.add_field(_('Wiki'), change["logparams"].get("wiki", _("Unknown"))) + elif action == "managewiki/rights": + embed["title"] = _("Modified \"{usergroup_name}\" usergroup").format(usergroup_name=change["title"][32:]) + link = create_article_path("") + elif action == "managewiki/undelete": + embed["title"] = _("Restored a \"{wiki}\" wiki").format(wiki=change["logparams"].get("wiki", _("Unknown"))) + link = create_article_path("") + elif action == "managewiki/unlock": + embed["title"] = _("Unlocked a \"{wiki}\" wiki").format(wiki=change["logparams"].get("wiki", _("Unknown"))) + link = create_article_path("") elif action == "suppressed": link = create_article_path("") embed["title"] = _("Action has been hidden by administration") @@ -771,7 +959,7 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): else: embed.add_field(_("Report this on the support server"), change_params) embed["author"]["icon_url"] = settings["appearance"]["embed"][action]["icon"] - embed["url"] = link + embed["url"] = quote(link.replace(" ", "_"), "/:?=&") if parsed_comment is not None: embed["description"] = parsed_comment if settings["appearance"]["embed"]["show_footer"]: @@ -787,10 +975,12 @@ def embed_formatter(action, change, parsed_comment, categories, recent_changes): else: tag_displayname.append(tag) embed.add_field(_("Tags"), ", ".join(tag_displayname)) + if len(embed["title"]) > 254: + embed["title"] = embed["title"][0:253]+"…" logger.debug("Current params in edit action: {}".format(change)) if categories is not None and not (len(categories["new"]) == 0 and len(categories["removed"]) == 0): new_cat = (_("**Added**: ") + ", ".join(list(categories["new"])[0:16]) + ("\n" if len(categories["new"])<=15 else _(" and {} more\n").format(len(categories["new"])-15))) if categories["new"] else "" del_cat = (_("**Removed**: ") + ", ".join(list(categories["removed"])[0:16]) + ("" if len(categories["removed"])<=15 else _(" and {} more").format(len(categories["removed"])-15))) if categories["removed"] else "" embed.add_field(_("Changed categories"), new_cat + del_cat) embed.finish_embed() - send_to_discord(embed) \ No newline at end of file + send_to_discord(embed, meta=request_metadata) diff --git a/src/rcgcdw.py b/src/rcgcdw.py index 64536ee..e19622a 100644 --- a/src/rcgcdw.py +++ b/src/rcgcdw.py @@ -26,8 +26,9 @@ import src.misc from collections import defaultdict, Counter from src.configloader import settings from src.misc import add_to_dict, datafile, \ - WIKI_API_PATH, create_article_path, send_to_discord, \ - DiscordMessage + WIKI_API_PATH, create_article_path +from src.discord.queue import send_to_discord +from src.discord.message import DiscordMessage, DiscordMessageMetadata from src.rc import recent_changes from src.exceptions import MWError from src.i18n import rcgcdw @@ -46,7 +47,7 @@ logging.config.dictConfig(settings["logging"]) logger = logging.getLogger("rcgcdw") logger.debug("Current settings: {settings}".format(settings=settings)) -storage = datafile.data +storage = datafile # Remove previous data holding file if exists and limitfetch allows @@ -78,7 +79,7 @@ def day_overview_request(): continuearg = request["continue"]["rccontinue"] if "continue" in request else None except ValueError: logger.warning("ValueError in fetching changes") - recent_changes.downtime_controller() + recent_changes.downtime_controller(True) complete = 2 except KeyError: logger.warning("Wiki returned %s" % (request)) @@ -161,10 +162,10 @@ def day_overview(): if item["type"] == "edit": edits += 1 changed_bytes += item["newlen"] - item["oldlen"] - if "content" in recent_changes.namespaces.get(str(item["ns"]), {}) or not item["ns"]: + if (recent_changes.namespaces is not None and "content" in recent_changes.namespaces.get(str(item["ns"]), {})) or item["ns"] == 0: articles = add_to_dict(articles, item["title"]) elif item["type"] == "new": - if "content" in recent_changes.namespaces.get(str(item["ns"]), {}) or not item["ns"]: + if "content" in (recent_changes.namespaces is not None and recent_changes.namespaces.get(str(item["ns"]), {})) or item["ns"] == 0: new_articles += 1 changed_bytes += item["newlen"] elif item["type"] == "log": @@ -202,7 +203,7 @@ def day_overview(): for name, value in fields: embed.add_field(name, value, inline=True) embed.finish_embed() - send_to_discord(embed) + send_to_discord(embed, meta=DiscordMessageMetadata("POST")) else: logger.debug("function requesting changes for day overview returned with error code") @@ -247,9 +248,7 @@ if 1 == 2: # additional translation strings in unreachable code if TESTING: logger.debug("DEBUGGING ") - recent_changes.recent_id -= 5 - recent_changes.file_id -= 5 - recent_changes.ids = [1] + storage["rcid"] = 1 recent_changes.fetch(amount=5) day_overview() import src.discussions