[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:
48
Tools/ss14_ru/lokalise_fluent_ast_comparer_manager.py
Normal file
48
Tools/ss14_ru/lokalise_fluent_ast_comparer_manager.py
Normal 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
|
||||
Reference in New Issue
Block a user