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 ""
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:25+0200\n"
"Language-Team: \n"
"POT-Creation-Date: 2020-08-08 14:00+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"
"X-Generator: Poedit 2.2.1\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: de\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"
#: 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 ""
"\n"
"__And more__"
msgstr ""
"\n"
"__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.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Project-Id-Version: RcGcDw\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-20 17:18+0200\n"
"PO-Revision-Date: 2019-05-20 17:23+0200\n"
"POT-Creation-Date: 2020-08-08 14:00+0200\n"
"PO-Revision-Date: 2020-08-10 01:55+0200\n"
"Last-Translator: Frisk <piotrex43@protonmail.ch>\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.2.1\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
"Language: pl\n"
"Generated-By: pygettext.py 1.5\n"
"X-Generator: Poedit 2.3.1\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| 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 ""
"\n"
"__And more__"
msgstr ""
"\n"
"__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 ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-05-20 17:18+0200\n"
"PO-Revision-Date: 2019-05-21 01:22+0200\n"
"Language-Team: \n"
"POT-Creation-Date: 2020-08-08 14:00+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"
"X-Generator: Poedit 2.2.1\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Poedit 2.3.1\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 ""
"\n"
"__And more__"
msgstr ""
"\n"
"__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:
pass
try:
current_domain = self[domain]
current_domain: dict = self[domain]
if not db_wiki["ROWID"] < current_domain["last_rowid"]:
current_domain["query"].append(QueuedWiki(db_wiki["wiki"], 20))
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,)):
def _(string: str) -> str:
"""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"),
402: _("wiki becoming inaccessible"), 403: _("wiki becoming inaccessible")}
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.discord import DiscordMessage
from src.msgqueue import send_to_discord
from src.i18n import langs
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."""
_ = langs[message_target[0][0]]["discussion_formatters"].gettext
message = None
if post_type == "FORUM":
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))
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."""
_ = langs[message_target[0][0]]["discussion_formatters"].gettext
embed = DiscordMessage("embed", "discussion", message_target[1], wiki=wiki)
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"])

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.discord import DiscordMessage
from src.msgqueue import send_to_discord
from src.i18n import langs
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"),
_("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):
"""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:
additional_data = {"namespaces": {}, "tags": {}}
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,
author_url=author_url,
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())
elif action in ("rights/rights", "rights/autopromote"):
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))
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"""
_ = langs[message_target[0][0]]["rc_formatters"].gettext
ngettext = langs[message_target[0][0]]["rc_formatters"].ngettext
if additional_data is None:
additional_data = {"namespaces": {}, "tags": {}}
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"]
), rate_limiter, "compare", "*")
if changed_content:
EditDiff = ContentParser(_)
EditDiff = ContentParser(message_target[0][0])
EditDiff.feed(changed_content)
if EditDiff.small_prev_del:
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)
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, _))
parsed_comment = _("Cleared the {field} field").format(field=profile_field_name(change["logparams"]['4:section'], True, message_target[0][0]))
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":
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])

View file

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

View file

@ -3,6 +3,7 @@ import base64, re
import logging
from urllib.parse import urlparse, urlunparse
from src.i18n import langs
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)
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-link-google": _("Google link"), "profile-link-facebook": _("Facebook link"),
"profile-link-twitter": _("Twitter link"), "profile-link-reddit": _("Reddit link"),
@ -114,9 +116,9 @@ class ContentParser(HTMLParser):
small_prev_del = ""
added = False
def __init__(self, _):
def __init__(self, lang):
super().__init__()
self.more = _("\n__And more__")
self.more = langs[lang]["misc"].gettext("\n__And more__")
self.ins_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,
rate_limiter: RateLimiter):
"""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]]
ngettext = lang.ngettext
_ = langs[target[0][0]]["wiki"].gettext
# recent_changes = RecentChangesClass() # TODO Look into replacing RecentChangesClass with local_wiki
changed_categories = changed_categories.get(change["revid"], None)
logger.debug("List of categories in essential_info: {}".format(changed_categories))
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
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
if "commenthidden" not in change:
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()
except KeyError:
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):
"""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
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"])