Fixed some bugs in preparation for language compatibility
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.6 KiB |
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
langs[lang][file] = gettext.translation(file, localedir='locale', languages=[lang])
|
try:
|
||||||
|
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()
|
||||||
|
|
|
@ -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 = ""
|
||||||
|
|
|
@ -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"]:
|
||||||
|
|