Fixed some bugs in preparation for language compatibility

This commit is contained in:
Frisk 2024-02-24 19:16:00 +01:00
parent 1e5743b867
commit 21497c301e
15 changed files with 32 additions and 21 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -1,27 +1,34 @@
cd .. cd ..
xgettext -L Python --package-name=RcGcDb -o locale/templates/discussion_formatters.pot src/formatters/discussions.py # Formatters
xgettext -L Python --package-name=RcGcDb -o locale/templates/rc_formatters.pot src/formatters/rc.py #find extensions/ -name '*.py' -print | xargs xgettext -L Python --package-name=RcGcDb --keyword=pgettext:1c,2 --keyword=npgettext:1c,2,3 -o "locale/templates/formatters.pot" src/api/util.py
for language in de pl pt-br hi ru uk zh-hans zh-hant fr es it
do
msgmerge -U locale/$language/LC_MESSAGES/formatters.po ~/Projects/RcGcDw/locale/$language/LC_MESSAGES/formatters.po
# msgmerge -U locale/$language/LC_MESSAGES/formatters.po locale/templates/formatters.pot
done
xgettext -L Python --package-name=RcGcDb -o locale/templates/wiki.pot src/wiki.py xgettext -L Python --package-name=RcGcDb -o locale/templates/wiki.pot src/wiki.py
xgettext -L Python --package-name=RcGcDb -o locale/templates/discord.pot src/discord.py
xgettext -L Python --package-name=RcGcDb -o locale/templates/misc.pot src/misc.py xgettext -L Python --package-name=RcGcDb -o locale/templates/misc.pot src/misc.py
declare -a StringArray=("discussion_formatters" "rc_formatters" "discord" "wiki" "misc") declare -a StringArray=("wiki" "misc")
for language in de pl pt-br hi ru uk zh-hans zh-hant for language in de pl pt-br hi ru uk zh-hans zh-hant fr es it
do do
for file in ${StringArray[@]}; do for file in ${StringArray[@]}; do
msgmerge -U locale/$language/LC_MESSAGES/$file.po locale/templates/$file.pot msgmerge -U locale/$language/LC_MESSAGES/$file.po locale/templates/$file.pot
done done
msgmerge -o locale/$language/LC_MESSAGES/discussion_formatters.po ~/PycharmProjects/RcGcDw/locale/$language/LC_MESSAGES/discussion_formatters.po locale/$language/LC_MESSAGES/discussion_formatters.po msgmerge -o locale/$language/LC_MESSAGES/wiki.po ~/Projects/RcGcDw/locale/$language/LC_MESSAGES/rc.po locale/$language/LC_MESSAGES/wiki.po
msgmerge -o locale/$language/LC_MESSAGES/rc_formatters.po ~/PycharmProjects/RcGcDw/locale/$language/LC_MESSAGES/rc_formatters.po locale/$language/LC_MESSAGES/rc_formatters.po msgmerge -o locale/$language/LC_MESSAGES/wiki.po ~/Projects/RcGcDw/locale/$language/LC_MESSAGES/rcgcdw.po locale/$language/LC_MESSAGES/wiki.po
msgmerge -o locale/$language/LC_MESSAGES/wiki.po ~/PycharmProjects/RcGcDw/locale/$language/LC_MESSAGES/rc.po locale/$language/LC_MESSAGES/wiki.po msgmerge -o locale/$language/LC_MESSAGES/misc.po ~/Projects/RcGcDw/locale/$language/LC_MESSAGES/misc.po locale/$language/LC_MESSAGES/misc.po
msgmerge -o locale/$language/LC_MESSAGES/misc.po ~/PycharmProjects/RcGcDw/locale/$language/LC_MESSAGES/misc.po locale/$language/LC_MESSAGES/misc.po for file in wiki misc formatters
for file in ${StringArray[@]}; do do
msgfmt -o locale/$language/LC_MESSAGES/$file.mo locale/$language/LC_MESSAGES/$file.po msgfmt -o locale/$language/LC_MESSAGES/$file.mo locale/$language/LC_MESSAGES/$file.po
done done
done done
for language in locale/*/LC_MESSAGES # for language in locale/*/LC_MESSAGES
for language in de pl pt-br hi ru uk zh-hans zh-hant fr es it
do do
wget https://weblate.frisk.space/widgets/rcgcdw/$(basename ${language//\/LC_MESSAGES/})/-/svg-badge.svg wget https://translate.wikibot.de/widgets/rcgcdw/$(basename ${language//\/LC_MESSAGES/})/-/svg-badge.svg
convert -background none svg-badge.svg locale/widgets/$(basename ${language//\/LC_MESSAGES/}).png convert -background none svg-badge.svg locale/widgets/$(basename ${language//\/LC_MESSAGES/}).png
rm svg-badge.svg rm svg-badge.svg
done done

View file

@ -3,11 +3,15 @@ from collections import defaultdict
logger = logging.getLogger("rcgcdb.i18n") logger = logging.getLogger("rcgcdb.i18n")
supported_languages = ('de', 'hi', 'pl', 'pt-br', 'ru', 'zh-hans', 'zh-hant', 'es') supported_languages = ('de', 'hi', 'pl', 'pt-br', 'ru', 'zh-hans', 'zh-hant', 'es')
translated_files = ('redaction', 'misc', 'formatters') translated_files = ('wiki', 'misc', 'formatters')
langs = defaultdict(dict) langs = defaultdict(dict)
for lang in supported_languages: for lang in supported_languages:
for file in translated_files: for file in translated_files:
try:
langs[lang][file] = gettext.translation(file, localedir='locale', languages=[lang]) langs[lang][file] = gettext.translation(file, localedir='locale', languages=[lang])
except FileNotFoundError:
logger.error(f"Language: {lang}")
raise
for file in translated_files: for file in translated_files:
langs["en"][file] = gettext.NullTranslations() langs["en"][file] = gettext.NullTranslations()

View file

@ -160,19 +160,19 @@ class ContentParser(HTMLParser):
if self.current_tag == "ins" and self.ins_length <= 1000: if self.current_tag == "ins" and self.ins_length <= 1000:
self.ins_length += len("**" + data + "**") self.ins_length += len("**" + data + "**")
if self.ins_length <= 1000: if self.ins_length <= 1000:
self.last_ins = self.last_ins + "**" + data + "**" self.last_ins = self.last_ins or "" + "**" + data + "**"
if self.current_tag == "del" and self.del_length <= 1000: if self.current_tag == "del" and self.del_length <= 1000:
self.del_length += len("~~" + data + "~~") self.del_length += len("~~" + data + "~~")
if self.del_length <= 1000: if self.del_length <= 1000:
self.last_del = self.last_del + "~~" + data + "~~" self.last_del = self.last_del or "" + "~~" + data + "~~"
if self.current_tag == "tda" and self.ins_length <= 1000: if self.current_tag == "tda" and self.ins_length <= 1000:
self.ins_length += len(data) self.ins_length += len(data)
if self.ins_length <= 1000: if self.ins_length <= 1000:
self.last_ins = self.last_ins + data self.last_ins = self.last_ins or "" + data
if self.current_tag == "tdd" and self.del_length <= 1000: if self.current_tag == "tdd" and self.del_length <= 1000:
self.del_length += len(data) self.del_length += len(data)
if self.del_length <= 1000: if self.del_length <= 1000:
self.last_del = self.last_del + data self.last_del = self.last_del or "" + data
def handle_endtag(self, tagname): def handle_endtag(self, tagname):
self.current_tag = "" self.current_tag = ""

View file

@ -474,13 +474,13 @@ async def rc_processor(wiki: Wiki, change: dict, changed_categories: dict, displ
LinkParser.feed(change.get("parsedcomment", "")) LinkParser.feed(change.get("parsedcomment", ""))
parsed_comment = LinkParser.new_string parsed_comment = LinkParser.new_string
else: else:
parsed_comment = context._("~~hidden~~") parsed_comment = langs[display_options.lang]["wiki"].gettext("~~hidden~~")
if not parsed_comment and context.message_type == "embed" and settings["appearance"].get("embed", {}).get( if not parsed_comment and context.message_type == "embed" and settings["appearance"].get("embed", {}).get(
"show_no_description_provided", True): "show_no_description_provided", True):
parsed_comment = context._("No description provided") parsed_comment = langs[display_options.lang]["wiki"].gettext("No description provided")
context.set_parsedcomment(parsed_comment) context.set_parsedcomment(parsed_comment)
if "userhidden" in change: if "userhidden" in change:
change["user"] = context._("hidden") change["user"] = langs[display_options.lang]["wiki"].gettext("hidden")
if change.get("ns", -1) in settings.get("ignored_namespaces", ()): if change.get("ns", -1) in settings.get("ignored_namespaces", ()):
return return
if change["type"] in ["edit", "new"]: if change["type"] in ["edit", "new"]: