Русский перевод интерфейса и схемы, падежи, выкладка через релиз
Словарь схемы 0.16.25 (7250 строк), ru.json, ручные правки падежей, перевод ключа name только в меню, release.sh для выкладки в релиз current. Claude-Session: https://claude.ai/code/session_01BFaqS6mH9sa99RWghq2j46
Этот коммит содержится в:
@@ -0,0 +1,23 @@
|
||||
import json,glob,re
|
||||
d=json.load(open('../part3.json'))
|
||||
tr={}
|
||||
for f in sorted(glob.glob('[a-d].tsv')):
|
||||
for l in open(f,encoding='utf-8').read().split('\n'):
|
||||
if not l.strip(): continue
|
||||
i,t=l.split('\t',1); tr[int(i)]=t.replace('\\n','\n')
|
||||
out={s:tr.get(i,s) for i,s in enumerate(d)}
|
||||
json.dump(out,open('../part3.ru.json','w'),ensure_ascii=False,indent=1)
|
||||
# checks
|
||||
assert len(out)==len(d)==len(set(d))
|
||||
pat=re.compile(r'%\{[^}]*\}|\{\{[^}]*\}\}|\{[^{}]*\}|\$\w+')
|
||||
bad=0
|
||||
for k,v in out.items():
|
||||
if '—' in v or '–' in v: print('DASH',k);bad+=1
|
||||
for m in pat.findall(k):
|
||||
if m not in v: print('PH',k,'|',v);bad+=1
|
||||
kept=sum(1 for k,v in out.items() if k==v)
|
||||
print(len(out),'kept',kept,'bad',bad)
|
||||
# Latin/Cyrillic mixed words
|
||||
for k,v in out.items():
|
||||
for w in re.findall(r'\w+',v):
|
||||
if re.search('[а-яё]',w,re.I) and re.search('[a-z]',w,re.I): print('MIX',w,v)
|
||||
Ссылка в новой задаче
Block a user