[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:
64
Tools/ss14_ru/lokalisemodels.py
Normal file
64
Tools/ss14_ru/lokalisemodels.py
Normal file
@@ -0,0 +1,64 @@
|
||||
import typing
|
||||
import os
|
||||
from pydash import py_
|
||||
from project import Project
|
||||
|
||||
class LocalePath:
|
||||
def __init__(self, relative_file_path):
|
||||
self.ru = os.path.join(Project().ru_locale_dir_path, relative_file_path)
|
||||
self.en = os.path.join(Project().en_locale_dir_path, relative_file_path)
|
||||
|
||||
|
||||
class LokaliseTranslation:
|
||||
def __init__(self, data, key_name: typing.AnyStr):
|
||||
self.key_name = key_name,
|
||||
self.data = data
|
||||
|
||||
class LokaliseKey:
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
self.key_name = self.data.key_name['web']
|
||||
self.key_base_name = self.get_key_base_name(self.key_name)
|
||||
self.is_attr = self.check_is_attr()
|
||||
|
||||
def get_file_path(self):
|
||||
|
||||
relative_dir_path = '{relative_file_path}.ftl'.format(
|
||||
relative_file_path='/'.join(self.data.key_name['web'].split('.')[0].split('::')))
|
||||
|
||||
return LocalePath(relative_dir_path)
|
||||
|
||||
def get_key_base_name(self, key_name):
|
||||
splitted_name = key_name.split('.')
|
||||
return splitted_name[0]
|
||||
|
||||
def get_key_last_name(self, key_name):
|
||||
splitted_name = key_name.split('.')
|
||||
return py_.last(splitted_name)
|
||||
|
||||
def get_parent_key(self):
|
||||
if self.is_attr:
|
||||
splitted_name = self.key_name.split('.')[0:-1]
|
||||
return '.'.join(splitted_name)
|
||||
else:
|
||||
return None
|
||||
|
||||
def check_is_attr(self):
|
||||
return len(self.key_name.split('.')) > 2
|
||||
|
||||
def serialize(self):
|
||||
if self.is_attr:
|
||||
return self.serialize_attr()
|
||||
else:
|
||||
return self.serialize_message()
|
||||
|
||||
|
||||
|
||||
def serialize_attr(self):
|
||||
return '.{name} = {value}'.format(name=self.get_key_last_name(self.key_name), value=self.get_translation('ru').data['translation'])
|
||||
|
||||
def serialize_message(self):
|
||||
return '{name} = {value}'.format(name=self.get_key_last_name(self.key_name), value=self.get_translation('ru').data['translation'])
|
||||
|
||||
def get_translation(self, language_iso='ru'):
|
||||
return list(map(lambda data: LokaliseTranslation(key_name=self.data.key_name['web'], data=data), py_.filter(self.data.translations, {'language_iso': language_iso})))[0]
|
||||
Reference in New Issue
Block a user