70 lines
1.7 KiB
Python
70 lines
1.7 KiB
Python
![]() |
import re
|
||
|
import sys
|
||
|
from itertools import chain, zip_longest
|
||
|
from pathlib import Path
|
||
|
|
||
|
import polib
|
||
|
|
||
|
file = Path(__file__).resolve().parent / "c3nav" / "locale" / "en_UW" / "LC_MESSAGES" / "django.po"
|
||
|
if not file.exists():
|
||
|
print('Run makemessages -l en_UW first!')
|
||
|
sys.exit(1)
|
||
|
|
||
|
po = polib.pofile(file)
|
||
|
|
||
|
from uwuipy import Uwuipy
|
||
|
uwu = Uwuipy(
|
||
|
seed=1337,
|
||
|
stutter_chance=0,
|
||
|
face_chance=0,
|
||
|
action_chance=0,
|
||
|
exclamation_chance=0,
|
||
|
nsfw_actions=False,
|
||
|
power=4,
|
||
|
)
|
||
|
uwu_more = Uwuipy(
|
||
|
seed=1337,
|
||
|
stutter_chance=0,
|
||
|
action_chance=0,
|
||
|
exclamation_chance=0,
|
||
|
power=4,
|
||
|
)
|
||
|
uwu_most = Uwuipy(
|
||
|
seed=1337,
|
||
|
stutter_chance=0,
|
||
|
action_chance=0.05,
|
||
|
face_chance=0.1,
|
||
|
nsfw_actions=False,
|
||
|
power=4,
|
||
|
)
|
||
|
|
||
|
special_pattern = r'(%%|%(\([^)]*\))?[^a-z]*[a-z]|<[^>]*>|\{[^}]*\})'
|
||
|
|
||
|
|
||
|
def uwuify(owiginal):
|
||
|
stripped_owiginal = re.sub(special_pattern, '{}', owiginal)
|
||
|
specials = [item[0] for item in re.findall(special_pattern, owiginal)]
|
||
|
num_wowds = len(stripped_owiginal.split("(")[0].split())
|
||
|
if num_wowds >= 8:
|
||
|
twanslated = uwu_most.uwuify(stripped_owiginal)
|
||
|
elif num_wowds >= 3:
|
||
|
twanslated = uwu_more.uwuify(stripped_owiginal)
|
||
|
else:
|
||
|
twanslated = uwu.uwuify(stripped_owiginal)
|
||
|
twanslated = twanslated.replace('***', '*').replace(r'\<', '<').replace(r'\>', '>')
|
||
|
if specials:
|
||
|
twanslated = ''.join(chain(*zip(twanslated.split('{}'), specials+[""])))
|
||
|
return twanslated
|
||
|
|
||
|
|
||
|
po.metadata["Plural-Forms"] = "nplurals=2; plural=(n != 1);"
|
||
|
for entry in po:
|
||
|
if entry.msgid_plural:
|
||
|
entry.msgstr_plural[0] = uwuify(entry.msgid)
|
||
|
entry.msgstr_plural[1] = uwuify(entry.msgid_plural)
|
||
|
else:
|
||
|
entry.msgstr = uwuify(entry.msgid)
|
||
|
|
||
|
po.save(file)
|
||
|
|