Added translation work

This commit is contained in:
Frisk 2020-08-10 01:57:14 +02:00
parent e2077a7ca1
commit ed131fb6da
No known key found for this signature in database
GPG key ID: 213F7C15068AF8AC
39 changed files with 2035 additions and 2921 deletions

View file

@ -0,0 +1,132 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-08 22:56+0200\n"
"PO-Revision-Date: 2020-08-10 01:54+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: src/discussion_formatters.py:38
#, fuzzy, 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}](<{url}f/u/{creatorId}>) erstellte eine [Antwork](<{url}f/p/"
"{threadId}/r/{postId}>) zu [{title}](<{url}f/p/{threadId}>) in {forumName}"
#: src/discussion_formatters.py:40 src/discussion_formatters.py:49
#: src/discussion_formatters.py:104 src/discussion_formatters.py:117
msgid "unknown"
msgstr "Unbekannt"
#: src/discussion_formatters.py:44
#, fuzzy, 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}](<{url}f/u/{creatorId}>) erstellte [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}>) auf der Nachrichtenseite von "
"{user}"
#: src/discussion_formatters.py:46
#, fuzzy, 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}](<{url}f/u/{creatorId}>) antwortete auf [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}#{replyId}>) auf der "
"Nachrichtenseite von {user}"
#: src/discussion_formatters.py:51
#, 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:53
#, 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 ""
#: src/discussion_formatters.py:82
#, python-brace-format
msgid "Created \"{title}\""
msgstr "Erstellte „{title}“"
#: src/discussion_formatters.py:87
#, fuzzy, python-brace-format
msgid "Created a poll \"{title}\""
msgstr "Erstellte eine Umfrage „{title}“"
#: src/discussion_formatters.py:92
msgid "Option {}"
msgstr "Option {}"
#: src/discussion_formatters.py:93
#, python-brace-format
msgid "__[View image]({image_url})__"
msgstr "__[Bild öffnen]({image_url})__"
#: src/discussion_formatters.py:101
#, python-brace-format
msgid "Replied to \"{title}\""
msgstr "Antwortete auf „{title}“"
#: src/discussion_formatters.py:110
#, python-brace-format
msgid "Created \"{title}\" on {user}'s Message Wall"
msgstr "Erstellte „{title}“ auf der Nachrichtenseite von {user}"
#: src/discussion_formatters.py:114
#, 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:121
#, fuzzy, python-brace-format
msgid "Commented on {article}"
msgstr "Erstellte „{title}“"
#: src/discussion_formatters.py:125
#, fuzzy, python-brace-format
msgid "Replied to a comment on {article}"
msgstr "Antwortete auf „{title}“"
#, python-brace-format
#~ msgid ""
#~ "[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}"
#~ ">) in {forumName}"
#~ msgstr ""
#~ "[{author}](<{url}f/u/{creatorId}>) erstellte [{title}](<{url}f/p/"
#~ "{threadId}>) in {forumName}"
#, python-brace-format
#~ msgid ""
#~ "[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/"
#~ "{threadId}>) in {forumName}"
#~ msgstr ""
#~ "[{author}](<{url}f/u/{creatorId}>) erstellte eine Umfrage [{title}](<{url}"
#~ "f/p/{threadId}>) in {forumName}"

Binary file not shown.

View file

@ -1,105 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-04 00:58+0200\n"
"PO-Revision-Date: 2020-07-04 01:04+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: discussions.py:56
#, python-brace-format
msgid "Replied to \"{title}\""
msgstr "Antwortete auf „{title}“"
#: discussions.py:63 discussions.py:79 discussions.py:127 discussions.py:143
msgid "unknown"
msgstr "Unbekannt"
#: discussions.py:68
#, python-brace-format
msgid "Replied to \"{title}\" on {user}'s Message Wall"
msgstr "Antwortete auf „{title}“ auf der Nachrichtenseite von {user}"
#: discussions.py:72
#, python-brace-format
msgid "Created \"{title}\""
msgstr "Erstellte „{title}“"
#: discussions.py:86
#, python-brace-format
msgid "Created \"{title}\" on {user}'s Message Wall"
msgstr "Erstellte „{title}“ auf der Nachrichtenseite von {user}"
#: discussions.py:99
#, python-brace-format
msgid "Created a poll titled \"{title}\""
msgstr "Erstellte eine Umfrage „{title}“"
#: discussions.py:104
msgid "Option {}"
msgstr "Option {}"
#: discussions.py:105
#, python-brace-format
msgid "__[View image]({image_url})__"
msgstr "__[Bild öffnen]({image_url})__"
#: discussions.py:121
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}>) "
"in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) erstellte [{title}](<{url}f/p/{threadId}"
">) in {forumName}"
#: discussions.py:130
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}>) on {user}'s Message Wall"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) erstellte [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}>) auf der Nachrichtenseite von "
"{user}"
#: discussions.py:136
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created a [reply](<{url}f/p/{threadId}/r/"
"{postId}>) to [{title}](<{url}f/p/{threadId}>) in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) erstellte eine [Antwork](<{url}f/p/"
"{threadId}/r/{postId}>) zu [{title}](<{url}f/p/{threadId}>) in {forumName}"
#: discussions.py:147
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) replied to [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}#{replyId}>) on {user}'s Message "
"Wall"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) antwortete auf [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}#{replyId}>) auf der "
"Nachrichtenseite von {user}"
#: discussions.py:153
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/"
"{threadId}>) in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) erstellte eine Umfrage [{title}](<{url}f/"
"p/{threadId}>) in {forumName}"

Binary file not shown.

View file

@ -1,27 +1,86 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-20 17:18+0200\n" "POT-Creation-Date: 2020-08-08 14:00+0200\n"
"PO-Revision-Date: 2019-05-20 17:25+0200\n" "PO-Revision-Date: 2020-08-10 01:54+0200\n"
"Language-Team: \n" "Last-Translator: MarkusRost <sukramxro@gmail.com>\n"
"Language-Team: German <https://weblate.frisk.space/projects/rcgcdw/main/de/"
">\n"
"Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"Last-Translator: \n" "X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Loco-Source-Locale: de_DE\n"
"Language: de\n" "Generated-By: pygettext.py 1.5\n"
"X-Loco-Parser: loco_parse_po\n"
#: misc.py:76 #: src/misc.py:42
msgid "Location"
msgstr "Wohnort"
#: src/misc.py:42
msgid "About me"
msgstr "„Über mich“-Abschnitt"
#: src/misc.py:42
msgid "Google link"
msgstr "Google-Link"
#: src/misc.py:42
msgid "Facebook link"
msgstr "Facebook-Link"
#: src/misc.py:42
msgid "Twitter link"
msgstr "Twitter-Link"
#: src/misc.py:42
msgid "Reddit link"
msgstr "Reddit-Link"
#: src/misc.py:42
msgid "Twitch link"
msgstr "Twitch-Link"
#: src/misc.py:42
msgid "PSN link"
msgstr "PSN-Link"
#: src/misc.py:42
msgid "VK link"
msgstr "VK-Link"
#: src/misc.py:42
msgid "XBL link"
msgstr "Xbox-Live-Link"
#: src/misc.py:42
msgid "Steam link"
msgstr "Steam-Link"
#: src/misc.py:42
msgid "Discord handle"
msgstr "Discord-Link"
#: src/misc.py:42
msgid "Battle.net handle"
msgstr "Battle.net-Link"
#: src/misc.py:142
msgid "" msgid ""
"\n" "\n"
"__And more__" "__And more__"
msgstr "" msgstr ""
"\n" "\n"
"__Und mehr__" "__Und mehr__"
#: src/misc.py:423
msgid "Unknown"
msgstr "Unbekannt"
#: src/misc.py:425
msgid "unknown"
msgstr "unbekannt"

Binary file not shown.

View file

@ -0,0 +1,40 @@
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-08 17:22+0200\n"
"PO-Revision-Date: 2020-08-10 01:54+0200\n"
"Last-Translator: MarkusRost <sukramxro@gmail.com>\n"
"Language-Team: German <https://weblate.frisk.space/projects/rcgcdw/main/de/"
">\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: Poedit 2.3.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.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
#, python-brace-format
msgid "{wiki} seems to be down or unreachable."
msgstr "Das {wiki} scheint unerreichbar zu sein."
#: src/rc.py:334
msgid "~~hidden~~"
msgstr "~~versteckt~~"
#: src/rc.py:340
msgid "hidden"
msgstr "versteckt"

Binary file not shown.

View file

@ -1,90 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-06-23 14:54+0200\n"
"PO-Revision-Date: 2020-06-23 14:57+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: discussions.py:56
#, python-brace-format
msgid "Replied to \"{title}\""
msgstr "Replied to \"{title}\""
#: discussions.py:63 discussions.py:79
msgid "unknown"
msgstr "unknown"
#: discussions.py:68
#, python-brace-format
msgid "Replied to \"{title}\" on {user}'s Message Wall"
msgstr "Replied to \"{title}\" on {user}'s Message Wall"
#: discussions.py:72
#, python-brace-format
msgid "Created \"{title}\""
msgstr "Created \"{title}\""
#: discussions.py:86
#, python-brace-format
msgid "Created \"{title}\" on {user}'s Message Wall"
msgstr "Created \"{title}\" on {user}'s Message Wall"
#: discussions.py:99
#, python-brace-format
msgid "Created a poll titled \"{title}\""
msgstr "Created a poll titled \"{title}\""
#: discussions.py:104
msgid "Option {}"
msgstr "Option {}"
#: discussions.py:105
#, python-brace-format
msgid "__[View image]({image_url})__"
msgstr "__[View image]({image_url})__"
#: discussions.py:118
#, python-brace-format
#| msgid ""
#| "[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}"
#| ">) in ${forumName}"
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}>) "
"in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}>) "
"in {forumName}"
#: discussions.py:121
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created a [reply](<{url}f/p/{threadId}/r/"
"{postId}>) to [{title}](<{url}f/p/{threadId}>) in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) created a [reply](<{url}f/p/{threadId}/r/"
"{postId}>) to [{title}](<{url}f/p/{threadId}>) in {forumName}"
#: discussions.py:126
#, python-brace-format
#| msgid ""
#| "[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}"
#| ">) in ${forumName}"
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/"
"{threadId}>) in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/"
"{threadId}>) in {forumName}"

Binary file not shown.

View file

@ -1,27 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-20 17:18+0200\n"
"PO-Revision-Date: 2019-05-20 17:32+0200\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.2.1\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: en\n"
#: misc.py:76
msgid ""
"\n"
"__And more__"
msgstr ""
"\n"
"__And more__"

Binary file not shown.

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,137 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-08 22:56+0200\n"
"PO-Revision-Date: 2020-08-10 01:55+0200\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.3.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/discussion_formatters.py:38
#, fuzzy, 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}](<{url}f/u/{creatorId}>) utworzył(a) [odpowiedź](<{url}f/p/"
"{threadId}/r/{postId}>) pod tematem [{title}](<{url}f/p/{threadId}>) w "
"{forumName}"
#: src/discussion_formatters.py:40 src/discussion_formatters.py:49
#: src/discussion_formatters.py:104 src/discussion_formatters.py:117
msgid "unknown"
msgstr "nieznany"
#: src/discussion_formatters.py:44
#, fuzzy, 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}](<{url}f/u/{creatorId}>) utworzył(a) [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}>) na tablicy wiadomości "
"użytkownika/użytkowniczki {user}"
#: src/discussion_formatters.py:46
#, fuzzy, 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}](<{url}f/u/{creatorId}>) odpowiedział(a) na[{title}](<{wikiurl}"
"wiki/Message_Wall:{user_wall}?threadId={threadid}#{replyId}>) na tablicy "
"wiadomości użytkownika/użytkowniczki {user}"
#: src/discussion_formatters.py:51
#, 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:53
#, 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 ""
#: src/discussion_formatters.py:82
#, python-brace-format
msgid "Created \"{title}\""
msgstr "Utworzył(a) „{title}”"
#: src/discussion_formatters.py:87
#, fuzzy, python-brace-format
msgid "Created a poll \"{title}\""
msgstr "Utworzył(a) ankietę zatytułowaną „{title}”"
#: src/discussion_formatters.py:92
msgid "Option {}"
msgstr "Opcja {}"
#: src/discussion_formatters.py:93
#, python-brace-format
msgid "__[View image]({image_url})__"
msgstr "__[Zobacz zdjęcie]({image_url})__"
#: src/discussion_formatters.py:101
#, python-brace-format
msgid "Replied to \"{title}\""
msgstr "Odpowiedział(a) w „{title}”"
#: src/discussion_formatters.py:110
#, python-brace-format
msgid "Created \"{title}\" on {user}'s Message Wall"
msgstr ""
"Utworzył(a) „{title}” na tablicy wiadomości użytkownika/użytkowniczki {user}"
#: src/discussion_formatters.py:114
#, python-brace-format
msgid "Replied to \"{title}\" on {user}'s Message Wall"
msgstr ""
"Odpowiedział(a) na „{title}” z tablicy wiadomości użytkownika/użytkowniczki "
"{user}"
#: src/discussion_formatters.py:121
#, fuzzy, python-brace-format
msgid "Commented on {article}"
msgstr "Utworzył(a) „{title}”"
#: src/discussion_formatters.py:125
#, fuzzy, python-brace-format
msgid "Replied to a comment on {article}"
msgstr "Odpowiedział(a) w „{title}”"
#, python-brace-format
#~ msgid ""
#~ "[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}"
#~ ">) in {forumName}"
#~ msgstr ""
#~ "[{author}](<{url}f/u/{creatorId}>) utworzył(a) [{title}](<{url}f/p/"
#~ "{threadId}>) w {forumName}"
#, python-brace-format
#~ msgid ""
#~ "[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/"
#~ "{threadId}>) in {forumName}"
#~ msgstr ""
#~ "[{author}](<{url}f/u/{creatorId}>) utworzył(a) ankietę [{title}](<{url}f/"
#~ "p/{threadId}>) w {forumName}"

Binary file not shown.

View file

@ -1,110 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-04 00:58+0200\n"
"PO-Revision-Date: 2020-07-04 01:12+0200\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.3\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 "
"|| n%100>14) ? 1 : 2);\n"
#: discussions.py:56
#, python-brace-format
msgid "Replied to \"{title}\""
msgstr "Odpowiedział(a) w „{title}”"
#: discussions.py:63 discussions.py:79 discussions.py:127 discussions.py:143
msgid "unknown"
msgstr "nieznany"
#: discussions.py:68
#, python-brace-format
msgid "Replied to \"{title}\" on {user}'s Message Wall"
msgstr ""
"Odpowiedział(a) na „{title}” z tablicy wiadomości użytkownika/użytkowniczki "
"{user}"
#: discussions.py:72
#, python-brace-format
msgid "Created \"{title}\""
msgstr "Utworzył(a) „{title}”"
#: discussions.py:86
#, python-brace-format
msgid "Created \"{title}\" on {user}'s Message Wall"
msgstr ""
"Utworzył(a) „{title}” na tablicy wiadomości użytkownika/użytkowniczki {user}"
#: discussions.py:99
#, python-brace-format
msgid "Created a poll titled \"{title}\""
msgstr "Utworzył(a) ankietę zatytułowaną „{title}”"
#: discussions.py:104
msgid "Option {}"
msgstr "Opcja {}"
#: discussions.py:105
#, python-brace-format
msgid "__[View image]({image_url})__"
msgstr "__[Zobacz zdjęcie]({image_url})__"
#: discussions.py:121
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}>) "
"in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) utworzył(a) [{title}](<{url}f/p/{threadId}"
">) w {forumName}"
#: discussions.py:130
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}>) on {user}'s Message Wall"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) utworzył(a) [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}>) na tablicy wiadomości "
"użytkownika/użytkowniczki {user}"
#: discussions.py:136
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created a [reply](<{url}f/p/{threadId}/r/"
"{postId}>) to [{title}](<{url}f/p/{threadId}>) in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) utworzył(a) [odpowiedź](<{url}f/p/"
"{threadId}/r/{postId}>) pod tematem [{title}](<{url}f/p/{threadId}>) w "
"{forumName}"
#: discussions.py:147
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) replied to [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}#{replyId}>) on {user}'s Message "
"Wall"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) odpowiedział(a) na[{title}](<{wikiurl}"
"wiki/Message_Wall:{user_wall}?threadId={threadid}#{replyId}>) na tablicy "
"wiadomości użytkownika/użytkowniczki {user}"
#: discussions.py:153
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/"
"{threadId}>) in {forumName}"
msgstr ""
"[{author}](<{url}f/u/{creatorId}>) utworzył(a) ankietę [{title}](<{url}f/p/"
"{threadId}>) w {forumName}"

Binary file not shown.

View file

@ -1,27 +1,88 @@
# SOME DESCRIPTIVE TITLE. # SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Copyright (C) YEAR ORGANIZATION
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: RcGcDw\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-20 17:18+0200\n" "POT-Creation-Date: 2020-08-08 14:00+0200\n"
"PO-Revision-Date: 2019-05-20 17:23+0200\n" "PO-Revision-Date: 2020-08-10 01:55+0200\n"
"Last-Translator: Frisk <piotrex43@protonmail.ch>\n"
"Language-Team: \n" "Language-Team: \n"
"Language: pl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.1\n" "Generated-By: pygettext.py 1.5\n"
"Last-Translator: \n" "X-Generator: Poedit 2.3.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" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"Language: pl\n" "|| n%100>=20) ? 1 : 2);\n"
#: misc.py:76 #: src/misc.py:42
msgid "Location"
msgstr "Lokacja"
#: src/misc.py:42
msgid "About me"
msgstr "O mnie"
#: src/misc.py:42
msgid "Google link"
msgstr "link Google"
#: src/misc.py:42
msgid "Facebook link"
msgstr "link Facebook"
#: src/misc.py:42
msgid "Twitter link"
msgstr "link Twitter"
#: src/misc.py:42
msgid "Reddit link"
msgstr "link Reddit"
#: src/misc.py:42
msgid "Twitch link"
msgstr "link Twitch"
#: src/misc.py:42
msgid "PSN link"
msgstr "link PSN"
#: src/misc.py:42
msgid "VK link"
msgstr "link VK"
#: src/misc.py:42
msgid "XBL link"
msgstr "link XBL"
#: src/misc.py:42
msgid "Steam link"
msgstr "link Steam"
#: src/misc.py:42
msgid "Discord handle"
msgstr "konto Discord"
#: src/misc.py:42
msgid "Battle.net handle"
msgstr "konto Battle.net"
#: src/misc.py:142
msgid "" msgid ""
"\n" "\n"
"__And more__" "__And more__"
msgstr "" msgstr ""
"\n" "\n"
"__Oraz więcej__" "__Oraz więcej__"
#: src/misc.py:423
msgid "Unknown"
msgstr "Nieznana"
#: src/misc.py:425
msgid "unknown"
msgstr "nieznana sekcja"

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,132 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Frisk <piotrex43@protonmail.ch>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-08 22:56+0200\n"
"PO-Revision-Date: 2020-08-10 01:55+0200\n"
"Last-Translator: Eduaddad <duduaddad@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://weblate.frisk.space/projects/"
"rcgcdw/discussions/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: Poedit 2.3.1\n"
#: src/discussion_formatters.py:38
#, fuzzy, 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 ""
"[Responder](<{url}f/p/{threadId}/r/{postId}>) por [{author}](<{url}f/u/"
"{creatorId}>) do [{title}](<{url}f/p/{threadId}>) do {forumName}"
#: src/discussion_formatters.py:40 src/discussion_formatters.py:49
#: src/discussion_formatters.py:104 src/discussion_formatters.py:117
msgid "unknown"
msgstr "desconhecido"
#: src/discussion_formatters.py:44
#, fuzzy, 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}](<{url}f/u/{creatorId}>) criou [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}>) no mural de mensagens de "
"{user}"
#: src/discussion_formatters.py:46
#, fuzzy, 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}](<{url}f/u/{creatorId}>) respondeu [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}#{replyId}>) no mural de "
"mensagens de {user}"
#: src/discussion_formatters.py:51
#, 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:53
#, 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 ""
#: src/discussion_formatters.py:82
#, python-brace-format
msgid "Created \"{title}\""
msgstr "Criado \"{title}\""
#: src/discussion_formatters.py:87
#, fuzzy, python-brace-format
msgid "Created a poll \"{title}\""
msgstr "Criou uma enquete intitulada \"{title}\""
#: src/discussion_formatters.py:92
msgid "Option {}"
msgstr "Option {}"
#: src/discussion_formatters.py:93
#, python-brace-format
msgid "__[View image]({image_url})__"
msgstr "__[Ver imagem]({image_url})__"
#: src/discussion_formatters.py:101
#, python-brace-format
msgid "Replied to \"{title}\""
msgstr "Respondido o \"{title}\""
#: src/discussion_formatters.py:110
#, python-brace-format
msgid "Created \"{title}\" on {user}'s Message Wall"
msgstr "Criado \"{title}\" no mural de mensagem de {user}"
#: src/discussion_formatters.py:114
#, 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:121
#, fuzzy, python-brace-format
msgid "Commented on {article}"
msgstr "Criado \"{title}\""
#: src/discussion_formatters.py:125
#, fuzzy, python-brace-format
msgid "Replied to a comment on {article}"
msgstr "Respondido o \"{title}\""
#, python-brace-format
#~ msgid ""
#~ "[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}"
#~ ">) in {forumName}"
#~ msgstr ""
#~ "Criado [{title}](<{url}f/p/{threadId}>) por [{author}](<{url}f/u/"
#~ "{creatorId}>) no {forumName}"
#, python-brace-format
#~ msgid ""
#~ "[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/"
#~ "{threadId}>) in {forumName}"
#~ msgstr ""
#~ "[{author}](<{url}f/u/{creatorId}>)criou uma enquete [{title}](<{url}f/p/"
#~ "{threadId}>) no {forumName}"

View file

@ -1,106 +0,0 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Frisk <piotrex43@protonmail.ch>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-07-04 00:58+0200\n"
"PO-Revision-Date: 2020-07-04 01:09+0200\n"
"Last-Translator: Frisk <piotrex43@protonmail.ch>\n"
"Language-Team: \n"
"Language: en_US\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: Poedit 2.3\n"
#: discussions.py:56
#, python-brace-format
msgid "Replied to \"{title}\""
msgstr "Respondido o \"{title}\""
#: discussions.py:63 discussions.py:79 discussions.py:127 discussions.py:143
msgid "unknown"
msgstr "desconhecido"
#: discussions.py:68
#, python-brace-format
msgid "Replied to \"{title}\" on {user}'s Message Wall"
msgstr "Respondeu a \"{title}\" no mural de mensagem de {user}"
#: discussions.py:72
#, python-brace-format
msgid "Created \"{title}\""
msgstr "Criado \"{title}\""
#: discussions.py:86
#, python-brace-format
msgid "Created \"{title}\" on {user}'s Message Wall"
msgstr "Criado \"{title}\" no mural de mensagem de {user}"
#: discussions.py:99
#, python-brace-format
msgid "Created a poll titled \"{title}\""
msgstr ""
#: discussions.py:104
msgid "Option {}"
msgstr ""
#: discussions.py:105
#, python-brace-format
msgid "__[View image]({image_url})__"
msgstr ""
#: discussions.py:121
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}>) "
"in {forumName}"
msgstr ""
"Criado [{title}](<{url}f/p/{threadId}>) por [{author}](<{url}f/u/{creatorId}"
">) no {forumName}"
#: discussions.py:130
#, fuzzy, python-brace-format
#| msgid ""
#| "[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}"
#| ">) in {forumName}"
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}>) on {user}'s Message Wall"
msgstr ""
"Criado [{title}](<{url}f/p/{threadId}>) por [{author}](<{url}f/u/{creatorId}"
">) no {forumName}"
#: discussions.py:136
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created a [reply](<{url}f/p/{threadId}/r/"
"{postId}>) to [{title}](<{url}f/p/{threadId}>) in {forumName}"
msgstr ""
"[Responder](<{url}f/p/{threadId}/r/{postId}>) por [{author}](<{url}f/u/"
"{creatorId}>) do [{title}](<{url}f/p/{threadId}>) do {forumName}"
#: discussions.py:147
#, fuzzy, python-brace-format
#| msgid ""
#| "[{author}](<{url}f/u/{creatorId}>) created [{title}](<{url}f/p/{threadId}"
#| ">) in {forumName}"
msgid ""
"[{author}](<{url}f/u/{creatorId}>) replied to [{title}](<{wikiurl}wiki/"
"Message_Wall:{user_wall}?threadId={threadid}#{replyId}>) on {user}'s Message "
"Wall"
msgstr ""
"Criado [{title}](<{url}f/p/{threadId}>) por [{author}](<{url}f/u/{creatorId}"
">) no {forumName}"
#: discussions.py:153
#, python-brace-format
msgid ""
"[{author}](<{url}f/u/{creatorId}>) created a poll [{title}](<{url}f/p/"
"{threadId}>) in {forumName}"
msgstr ""

Binary file not shown.

View file

@ -7,21 +7,82 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-20 17:18+0200\n" "POT-Creation-Date: 2020-08-08 14:00+0200\n"
"PO-Revision-Date: 2019-05-21 01:22+0200\n" "PO-Revision-Date: 2020-08-10 01:55+0200\n"
"Language-Team: \n" "Last-Translator: Eduaddad <duduaddad@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://weblate.frisk.space/projects/"
"rcgcdw/main/pt_BR/>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.2.1\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"Last-Translator: \n" "X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Language: pt\n"
#: misc.py:76 #: src/misc.py:42
msgid "Location"
msgstr "Localização"
#: src/misc.py:42
msgid "About me"
msgstr "Sobre mim"
#: src/misc.py:42
msgid "Google link"
msgstr "Link do Google"
#: src/misc.py:42
msgid "Facebook link"
msgstr "Facebook link"
#: src/misc.py:42
msgid "Twitter link"
msgstr "Link do Twitter"
#: src/misc.py:42
msgid "Reddit link"
msgstr "Link do Reddit"
#: src/misc.py:42
msgid "Twitch link"
msgstr "Link do Twitch"
#: src/misc.py:42
msgid "PSN link"
msgstr "Link do PSN"
#: src/misc.py:42
msgid "VK link"
msgstr "Link do VK"
#: src/misc.py:42
msgid "XBL link"
msgstr "Link do XBL"
#: src/misc.py:42
msgid "Steam link"
msgstr "Link do Steam"
#: src/misc.py:42
msgid "Discord handle"
msgstr "Link do Discord"
#: src/misc.py:42
msgid "Battle.net handle"
msgstr "Link do Battle.net"
#: src/misc.py:142
msgid "" msgid ""
"\n" "\n"
"__And more__" "__And more__"
msgstr "" msgstr ""
"\n" "\n"
"__E mais__" "__E mais__"
#: src/misc.py:423
msgid "Unknown"
msgstr "Desconhecido"
#: src/misc.py:425
msgid "unknown"
msgstr "desconhecido"

Binary file not shown.

View file

@ -0,0 +1,42 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-08 17:22+0200\n"
"PO-Revision-Date: 2020-08-10 01:55+0200\n"
"Last-Translator: Eduaddad <duduaddad@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://weblate.frisk.space/projects/"
"rcgcdw/main/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: Poedit 2.3.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
#, python-brace-format
msgid "{wiki} seems to be down or unreachable."
msgstr "{wiki} parece estar inativo ou inacessível."
#: src/rc.py:334
msgid "~~hidden~~"
msgstr "~~ocultado~~"
#: src/rc.py:340
msgid "hidden"
msgstr "oculto"

View file

@ -116,7 +116,7 @@ class RcQueue:
except ValueError: except ValueError:
pass pass
try: try:
current_domain = self[domain] current_domain: dict = self[domain]
if not db_wiki["ROWID"] < current_domain["last_rowid"]: if not db_wiki["ROWID"] < current_domain["last_rowid"]:
current_domain["query"].append(QueuedWiki(db_wiki["wiki"], 20)) current_domain["query"].append(QueuedWiki(db_wiki["wiki"], 20))
except KeyError: except KeyError:

View file

@ -23,7 +23,7 @@ async def wiki_removal(wiki_url, status):
for observer in db_cursor.execute('SELECT webhook, lang FROM rcgcdw WHERE wiki = ?', (wiki_url,)): for observer in db_cursor.execute('SELECT webhook, lang FROM rcgcdw WHERE wiki = ?', (wiki_url,)):
def _(string: str) -> str: def _(string: str) -> str:
"""Our own translation string to make it compatible with async""" """Our own translation string to make it compatible with async"""
return langs[observer["lang"]].gettext(string) return langs[observer["lang"]]["discord"].gettext(string)
reasons = {410: _("wiki deletion"), 404: _("wiki deletion"), 401: _("wiki becoming inaccessible"), reasons = {410: _("wiki deletion"), 404: _("wiki deletion"), 401: _("wiki becoming inaccessible"),
402: _("wiki becoming inaccessible"), 403: _("wiki becoming inaccessible")} 402: _("wiki becoming inaccessible"), 403: _("wiki becoming inaccessible")}
reason = reasons.get(status, _("unknown error")) reason = reasons.get(status, _("unknown error"))

View file

@ -6,12 +6,14 @@ from src.config import settings
from src.misc import link_formatter, create_article_path, escape_formatting from src.misc import link_formatter, create_article_path, escape_formatting
from src.discord import DiscordMessage from src.discord import DiscordMessage
from src.msgqueue import send_to_discord from src.msgqueue import send_to_discord
from src.i18n import langs
logger = logging.getLogger("rcgcdw.discussion_formatters") logger = logging.getLogger("rcgcdw.discussion_formatters")
async def feeds_compact_formatter(post_type, post, message_target, wiki, _): async def feeds_compact_formatter(post_type, post, message_target, wiki):
"""Compact formatter for Fandom discussions.""" """Compact formatter for Fandom discussions."""
_ = langs[message_target[0][0]]["discussion_formatters"].gettext
message = None message = None
if post_type == "FORUM": if post_type == "FORUM":
if not post["isReply"]: if not post["isReply"]:
@ -47,8 +49,9 @@ async def feeds_compact_formatter(post_type, post, message_target, wiki, _):
await send_to_discord(DiscordMessage("compact", "discussion", message_target[1], content=message, wiki=wiki)) await send_to_discord(DiscordMessage("compact", "discussion", message_target[1], content=message, wiki=wiki))
async def feeds_embed_formatter(post_type, post, message_target, wiki, _): async def feeds_embed_formatter(post_type, post, message_target, wiki):
"""Embed formatter for Fandom discussions.""" """Embed formatter for Fandom discussions."""
_ = langs[message_target[0][0]]["discussion_formatters"].gettext
embed = DiscordMessage("embed", "discussion", message_target[1], wiki=wiki) embed = DiscordMessage("embed", "discussion", message_target[1], wiki=wiki)
if post_type == "FORUM": if post_type == "FORUM":
embed.set_author(post["createdBy"]["name"], "{url}f/u/{creatorId}".format(url=wiki, creatorId=post["creatorId"]), icon_url=post["createdBy"]["avatarUrl"]) embed.set_author(post["createdBy"]["name"], "{url}f/u/{creatorId}".format(url=wiki, creatorId=post["creatorId"]), icon_url=post["createdBy"]["avatarUrl"])

View file

@ -9,6 +9,7 @@ from src.config import settings
from src.misc import link_formatter, create_article_path, parse_link, profile_field_name, ContentParser from src.misc import link_formatter, create_article_path, parse_link, profile_field_name, ContentParser
from src.discord import DiscordMessage from src.discord import DiscordMessage
from src.msgqueue import send_to_discord from src.msgqueue import send_to_discord
from src.i18n import langs
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
@ -18,9 +19,11 @@ if 1 == 2: # additional translation strings in unreachable code
print(_("director"), _("bot"), _("editor"), _("directors"), _("sysop"), _("bureaucrat"), _("reviewer"), print(_("director"), _("bot"), _("editor"), _("directors"), _("sysop"), _("bureaucrat"), _("reviewer"),
_("autoreview"), _("autopatrol"), _("wiki_guardian"), ngettext("second", "seconds", 1), ngettext("minute", "minutes", 1), ngettext("hour", "hours", 1), ngettext("day", "days", 1), ngettext("week", "weeks", 1), ngettext("month", "months",1), ngettext("year", "years", 1), ngettext("millennium", "millennia", 1), ngettext("decade", "decades", 1), ngettext("century", "centuries", 1)) _("autoreview"), _("autopatrol"), _("wiki_guardian"), ngettext("second", "seconds", 1), ngettext("minute", "minutes", 1), ngettext("hour", "hours", 1), ngettext("day", "days", 1), ngettext("week", "weeks", 1), ngettext("month", "months",1), ngettext("year", "years", 1), ngettext("millennium", "millennia", 1), ngettext("decade", "decades", 1), ngettext("century", "centuries", 1))
async def compact_formatter(action, change, parsed_comment, categories, recent_changes, message_target, _, ngettext, paths, rate_limiter, async def compact_formatter(action, change, parsed_comment, categories, recent_changes, message_target, paths, rate_limiter,
additional_data=None): additional_data=None):
"""Recent Changes compact formatter, part of RcGcDw""" """Recent Changes compact formatter, part of RcGcDw"""
_ = langs[message_target[0][0]]["rc_formatters"].gettext
ngettext = langs[message_target[0][0]]["rc_formatters"].ngettext
if additional_data is None: if additional_data is None:
additional_data = {"namespaces": {}, "tags": {}} additional_data = {"namespaces": {}, "tags": {}}
WIKI_API_PATH = paths[0] WIKI_API_PATH = paths[0]
@ -185,7 +188,7 @@ async def compact_formatter(action, change, parsed_comment, categories, recent_c
content = _("[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*").format(author=author, content = _("[{author}]({author_url}) edited the {field} on {target} profile. *({desc})*").format(author=author,
author_url=author_url, author_url=author_url,
target=target, target=target,
field=profile_field_name(change["logparams"]['4:section'], False, _), field=profile_field_name(change["logparams"]['4:section'], False, message_target[0][0]),
desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text()) desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text())
elif action in ("rights/rights", "rights/autopromote"): elif action in ("rights/rights", "rights/autopromote"):
link = link_formatter(create_article_path("User:{user}".format(user=change["title"].split(":")[1]), WIKI_ARTICLE_PATH)) link = link_formatter(create_article_path("User:{user}".format(user=change["title"].split(":")[1]), WIKI_ARTICLE_PATH))
@ -330,8 +333,10 @@ async def compact_formatter(action, change, parsed_comment, categories, recent_c
await send_to_discord(DiscordMessage("compact", action, message_target[1], content=content, wiki=WIKI_SCRIPT_PATH)) await send_to_discord(DiscordMessage("compact", action, message_target[1], content=content, wiki=WIKI_SCRIPT_PATH))
async def embed_formatter(action, change, parsed_comment, categories, recent_changes, message_target, _, ngettext, paths, rate_limiter, additional_data=None): async def embed_formatter(action, change, parsed_comment, categories, recent_changes, message_target, paths, rate_limiter, additional_data=None):
"""Recent Changes embed formatter, part of RcGcDw""" """Recent Changes embed formatter, part of RcGcDw"""
_ = langs[message_target[0][0]]["rc_formatters"].gettext
ngettext = langs[message_target[0][0]]["rc_formatters"].ngettext
if additional_data is None: if additional_data is None:
additional_data = {"namespaces": {}, "tags": {}} additional_data = {"namespaces": {}, "tags": {}}
WIKI_API_PATH = paths[0] WIKI_API_PATH = paths[0]
@ -381,7 +386,7 @@ async def embed_formatter(action, change, parsed_comment, categories, recent_cha
wiki=WIKI_API_PATH, diff=change["revid"],oldrev=change["old_revid"] wiki=WIKI_API_PATH, diff=change["revid"],oldrev=change["old_revid"]
), rate_limiter, "compare", "*") ), rate_limiter, "compare", "*")
if changed_content: if changed_content:
EditDiff = ContentParser(_) EditDiff = ContentParser(message_target[0][0])
EditDiff.feed(changed_content) EditDiff.feed(changed_content)
if EditDiff.small_prev_del: if EditDiff.small_prev_del:
if EditDiff.small_prev_del.replace("~~", "").isspace(): if EditDiff.small_prev_del.replace("~~", "").isspace():
@ -543,9 +548,9 @@ async def embed_formatter(action, change, parsed_comment, categories, recent_cha
link = create_article_path("UserProfile:{target}".format(target=change["title"].split(':')[1]), WIKI_ARTICLE_PATH) link = create_article_path("UserProfile:{target}".format(target=change["title"].split(':')[1]), WIKI_ARTICLE_PATH)
embed["title"] = _("Edited {target}'s profile").format(target=change["title"].split(':')[1]) if change["user"] != change["title"].split(':')[1] else _("Edited their own profile") 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 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, _)) parsed_comment = _("Cleared the {field} field").format(field=profile_field_name(change["logparams"]['4:section'], True, message_target[0][0]))
else: else:
parsed_comment = _("{field} field changed to: {desc}").format(field=profile_field_name(change["logparams"]['4:section'], True, _), desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text()) parsed_comment = _("{field} field changed to: {desc}").format(field=profile_field_name(change["logparams"]['4:section'], True, message_target[0][0]), desc=BeautifulSoup(change["parsedcomment"], "lxml").get_text())
elif action == "curseprofile/comment-purged": elif action == "curseprofile/comment-purged":
link = create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]), WIKI_ARTICLE_PATH) link = create_article_path("Special:CommentPermalink/{commentid}".format(commentid=change["logparams"]["4:comment_id"]), WIKI_ARTICLE_PATH)
embed["title"] = _("Purged a comment on {target}'s profile").format(target=change["title"].split(':')[1]) embed["title"] = _("Purged a comment on {target}'s profile").format(target=change["title"].split(':')[1])

View file

@ -1,19 +1,20 @@
import sys, logging, gettext import sys, logging, gettext
from collections import defaultdict
logger = logging.getLogger("rcgcdb.i18n") logger = logging.getLogger("rcgcdb.i18n")
supported_languages = ('de', 'pl', 'pt-br')
translated_files = ('wiki', 'misc', 'discord', 'rc_formatters', 'discussion_formatters')
try: try:
en = gettext.translation('rcgcdw', localedir='locale', languages=["en"]) langs = defaultdict(dict)
de = gettext.translation('rcgcdw', localedir='locale', languages=["de"]) for lang in supported_languages:
pl = gettext.translation('rcgcdw', localedir='locale', languages=["pl"]) for file in translated_files:
pt = gettext.translation('rcgcdw', localedir='locale', languages=["pt-br"]) langs[lang][file] = gettext.translation(file, localedir='locale', languages=[lang])
#ru = gettext.translation('rcgcdw', localedir='locale', languages=["ru"]) for file in translated_files:
#uk = gettext.translation('rcgcdw', localedir='locale', languages=["uk"]) langs["en"][file] = gettext.NullTranslations()
#fr = gettext.translation('rcgcdw', localedir='locale', languages=["fr"])
langs = {"en": en, "de": de, "pl": pl, "pt": pt}
#langs = {"en": en, "de": de, "pl": pl, "pt": pt, "ru": ru, "uk": uk, "fr": fr}
except FileNotFoundError: except FileNotFoundError:
logger.critical("No language files have been found. Make sure locale folder is located in the directory.") logger.critical("No language files have been found. Make sure locale folder is located in the directory.")
raise
sys.exit(1) sys.exit(1)
#ngettext = en.ngettext #ngettext = en.ngettext

View file

@ -3,6 +3,7 @@ import base64, re
import logging import logging
from urllib.parse import urlparse, urlunparse from urllib.parse import urlparse, urlunparse
from src.i18n import langs
logger = logging.getLogger("rcgcdw.misc") logger = logging.getLogger("rcgcdw.misc")
@ -90,7 +91,8 @@ def create_article_path(article: str, WIKI_ARTICLE_PATH: str) -> str:
return WIKI_ARTICLE_PATH.replace("$1", article) return WIKI_ARTICLE_PATH.replace("$1", article)
def profile_field_name(name, embed, _): def profile_field_name(name, embed, lang):
_ = langs[lang]["misc"].gettext
profile_fields = {"profile-location": _("Location"), "profile-aboutme": _("About me"), profile_fields = {"profile-location": _("Location"), "profile-aboutme": _("About me"),
"profile-link-google": _("Google link"), "profile-link-facebook": _("Facebook link"), "profile-link-google": _("Google link"), "profile-link-facebook": _("Facebook link"),
"profile-link-twitter": _("Twitter link"), "profile-link-reddit": _("Reddit link"), "profile-link-twitter": _("Twitter link"), "profile-link-reddit": _("Reddit link"),
@ -114,9 +116,9 @@ class ContentParser(HTMLParser):
small_prev_del = "" small_prev_del = ""
added = False added = False
def __init__(self, _): def __init__(self, lang):
super().__init__() super().__init__()
self.more = _("\n__And more__") self.more = langs[lang]["misc"].gettext("\n__And more__")
self.ins_length = len(self.more) self.ins_length = len(self.more)
self.del_length = len(self.more) self.del_length = len(self.more)

View file

@ -193,18 +193,13 @@ async def process_mwmsgs(wiki_response: dict, local_wiki: Wiki, mw_msgs: dict):
async def essential_info(change: dict, changed_categories, local_wiki: Wiki, target: tuple, paths: tuple, request: dict, async def essential_info(change: dict, changed_categories, local_wiki: Wiki, target: tuple, paths: tuple, request: dict,
rate_limiter: RateLimiter): rate_limiter: RateLimiter):
"""Prepares essential information for both embed and compact message format.""" """Prepares essential information for both embed and compact message format."""
def _(string: str) -> str: _ = langs[target[0][0]]["wiki"].gettext
"""Our own translation string to make it compatible with async"""
return lang.gettext(string)
lang = langs[target[0][0]]
ngettext = lang.ngettext
# recent_changes = RecentChangesClass() # TODO Look into replacing RecentChangesClass with local_wiki # recent_changes = RecentChangesClass() # TODO Look into replacing RecentChangesClass with local_wiki
changed_categories = changed_categories.get(change["revid"], None) changed_categories = changed_categories.get(change["revid"], None)
logger.debug("List of categories in essential_info: {}".format(changed_categories)) logger.debug("List of categories in essential_info: {}".format(changed_categories))
appearance_mode = embed_formatter if target[0][1] > 0 else compact_formatter appearance_mode = embed_formatter if target[0][1] > 0 else compact_formatter
if "actionhidden" in change or "suppressed" in change: # if event is hidden using suppression if "actionhidden" in change or "suppressed" in change: # if event is hidden using suppression
await appearance_mode("suppressed", change, "", changed_categories, local_wiki, target, _, ngettext, paths, rate_limiter) await appearance_mode("suppressed", change, "", changed_categories, local_wiki, target, paths, rate_limiter)
return return
if "commenthidden" not in change: if "commenthidden" not in change:
parsed_comment = parse_link(paths[3], change["parsedcomment"]) parsed_comment = parse_link(paths[3], change["parsedcomment"])
@ -228,16 +223,11 @@ async def essential_info(change: dict, changed_categories, local_wiki: Wiki, tar
additional_data["tags"][tag["name"]] = (BeautifulSoup(tag["displayname"], "lxml")).get_text() additional_data["tags"][tag["name"]] = (BeautifulSoup(tag["displayname"], "lxml")).get_text()
except KeyError: except KeyError:
additional_data["tags"][tag["name"]] = None # Tags with no displ additional_data["tags"][tag["name"]] = None # Tags with no displ
await appearance_mode(identification_string, change, parsed_comment, changed_categories, local_wiki, target, _, ngettext, paths, rate_limiter, additional_data=additional_data) await appearance_mode(identification_string, change, parsed_comment, changed_categories, local_wiki, target, paths, rate_limiter, additional_data=additional_data)
async def essential_feeds(change: dict, db_wiki: tuple, target: tuple): async def essential_feeds(change: dict, db_wiki: tuple, target: tuple):
"""Prepares essential information for both embed and compact message format.""" """Prepares essential information for both embed and compact message format."""
def _(string: str) -> str:
"""Our own translation string to make it compatible with async"""
return lang.gettext(string)
lang = langs[target[0][0]]
appearance_mode = feeds_embed_formatter if target[0][1] > 0 else feeds_compact_formatter appearance_mode = feeds_embed_formatter if target[0][1] > 0 else feeds_compact_formatter
identification_string = change["_embedded"]["thread"][0]["containerType"] identification_string = change["_embedded"]["thread"][0]["containerType"]
await appearance_mode(identification_string, change, target, db_wiki["wiki"], _) await appearance_mode(identification_string, change, target, db_wiki["wiki"])