Initial YakPanel commit
This commit is contained in:
81
class/public/translations.py
Normal file
81
class/public/translations.py
Normal file
@@ -0,0 +1,81 @@
|
||||
# Language translations
|
||||
import os
|
||||
import glob
|
||||
import json
|
||||
import public
|
||||
|
||||
translations = {}
|
||||
login_translations = {}
|
||||
|
||||
|
||||
# Load translations
|
||||
def load_translations():
|
||||
# if len(translations.keys()) > 0:
|
||||
# return translations
|
||||
|
||||
# scan_pattern = '{}/YakPanel/static/vite/lang/*/*.json'.format(public.get_panel_path())
|
||||
|
||||
# 获取设置语言 避免配置被覆盖
|
||||
path = "/www/server/panel/YakPanel/languages/language.pl"
|
||||
lang = ""
|
||||
if os.path.exists(path):
|
||||
with open(path, 'r', encoding='utf-8') as data:
|
||||
lang = data.read()
|
||||
|
||||
key = 'en'
|
||||
filename = '/www/server/panel/YakPanel/languages/settings.json'
|
||||
if os.path.exists(filename):
|
||||
try:
|
||||
with open(filename, 'r', encoding='utf-8') as file:
|
||||
data = json.load(file)
|
||||
key = data['default']
|
||||
if lang != '':
|
||||
if key != lang:
|
||||
data['default'] = lang
|
||||
key = lang
|
||||
with open(filename, 'w', encoding='utf-8') as file:
|
||||
file.write(json.dumps(data, indent=4))
|
||||
|
||||
except:
|
||||
pass
|
||||
|
||||
scan_pattern_dir = '{}/YakPanel/static/vite/lang/{}'.format(public.get_panel_path(), key)
|
||||
if not os.path.exists(scan_pattern_dir):
|
||||
key = 'en'
|
||||
|
||||
# 改获取用户设置的语言 没有使用默认英语
|
||||
scan_pattern = '{}/YakPanel/static/vite/lang/{}/*.json'.format(public.get_panel_path(), key)
|
||||
|
||||
|
||||
|
||||
try:
|
||||
for path in glob.glob(scan_pattern):
|
||||
lan = os.path.basename(os.path.dirname(path))
|
||||
if lan not in translations:
|
||||
translations[lan] = {}
|
||||
with open(path, 'r') as fp:
|
||||
translations[lan].update(json.loads(fp.read()))
|
||||
# 只保留最新设置的语言
|
||||
translations2 = {k: v for k, v in translations.items() if k == key or k == translations.get(key)}
|
||||
return translations2
|
||||
except:
|
||||
public.print_log(public.get_error_info())
|
||||
|
||||
# 只返回登录语言包
|
||||
def load_login_translations():
|
||||
# if len(login_translations.keys()) > 0:
|
||||
# return login_translations
|
||||
|
||||
scan_pattern = '{}/YakPanel/static/vite/lang/*/login.json'.format(public.get_panel_path())
|
||||
|
||||
try:
|
||||
for path in glob.glob(scan_pattern):
|
||||
lan = os.path.basename(os.path.dirname(path))
|
||||
if lan not in login_translations:
|
||||
login_translations[lan] = {}
|
||||
with open(path, 'r') as fp:
|
||||
login_translations[lan].update(json.loads(fp.read()))
|
||||
|
||||
return login_translations
|
||||
except:
|
||||
public.print_log(public.get_error_info())
|
||||
Reference in New Issue
Block a user