[Feat] Translates + translate tools (#260)

* autotranslate python script

* 8/52 translated

* autotranslate finished

* updated autotranslate script

* fixes

* updated tool

* once more updated tool

* more translates

* more translates

* fixes
This commit is contained in:
HitPanda
2023-08-03 18:21:59 +03:00
committed by Aviu00
parent 312b3dcf1f
commit 50abbcee11
154 changed files with 4706 additions and 31 deletions

View File

@@ -0,0 +1,48 @@
from fluent.syntax import ast
from fluentast import FluentAstMessage
from fluentastcomparer import FluentAstComparer
from fluentastmanager import FluentAstManager
class LokaliseFluentAstComparerManager:
def __init__(self, sourse_parsed: ast.Resource, target_parsed: ast.Resource):
self.sourse_parsed = sourse_parsed
self.target_parsed = target_parsed
self.comparer = FluentAstComparer(sourse_parsed, target_parsed)
self.ast_manager = FluentAstManager(sourse_parsed, target_parsed)
def for_update(self):
for_update = self.comparer.get_not_equal_exist_values_with_attrs()
if not len(for_update):
return []
return for_update
def update(self, for_update):
for update in for_update:
idx = self.comparer.sourse_parsed.body.index(update.element)
update_mess: FluentAstMessage = self.comparer.find_message_by_id_name(update.get_id_name(),
self.comparer.target_elements)
self.ast_manager.update_by_index(idx, update_mess.element)
return self.ast_manager.sourse_parsed
def for_delete(self):
for_delete = self.comparer.get_not_exist_id_names()
if len(for_delete):
keys = list(map(lambda el: el.get_id_name(), for_delete))
print(f'Следующие ключи есть в lokalise, но нет в файле. Возможно, их нужно удалить из lokalise: {keys}')
return for_delete
def for_create(self):
for_create = self.comparer.get_not_equal_id_names()
if len(for_create):
keys = list(map(lambda el: el.get_id_name(), for_create))
print(f'Следующих ключей файла нет в lokalise. Необходимо добавить: {keys}')
return for_create