NeoPy's picture
Upload 4 files
eaa1d55 verified
raw
history blame
2.65 kB
import gradio as gr
import os, sys
import json
import gradio as gr
from assets.i18n.i18n import I18nAuto
import assets.themes.loadThemes as loadThemes
now_dir = os.getcwd()
sys.path.append(now_dir)
i18n = I18nAuto()
config_file = os.path.join(now_dir, "assets", "config.json")
def get_language_settings():
with open(config_file, "r", encoding="utf8") as file:
config = json.load(file)
if config["lang"]["override"] == False:
return "Language automatically detected in the system"
else:
return config["lang"]["selected_lang"]
def save_lang_settings(selected_language):
with open(config_file, "r", encoding="utf8") as file:
config = json.load(file)
if selected_language == "Language automatically detected in the system":
config["lang"]["override"] = False
else:
config["lang"]["override"] = True
config["lang"]["selected_lang"] = selected_language
gr.Info("Language have been saved. Restart Applio to apply the changes.")
with open(config_file, "w", encoding="utf8") as file:
json.dump(config, file, indent=2)
def restart_applio():
if os.name != "nt":
os.system("clear")
else:
os.system("cls")
python = sys.executable
os.execl(python, python, *sys.argv)
def lang_tab():
with gr.Column():
selected_language = gr.Dropdown(
label=i18n("Language"),
info=i18n(
"Select the language you want to use. (Requires restarting Applio)"
),
value=get_language_settings(),
choices=["Language automatically detected in the system"]
+ i18n._get_available_languages(),
interactive=True,
)
selected_language.change(
fn=save_lang_settings,
inputs=[selected_language],
outputs=[],
)
def restart_tab():
with gr.Row():
with gr.Column():
restart_button = gr.Button(i18n("Restart Applio"))
restart_button.click(
fn=restart_applio,
inputs=[],
outputs=[],
)
def select_themes_tab():
with gr.Column():
themes_select = gr.Dropdown(
choices=loadThemes.get_list(),
value=loadThemes.read_json(),
label=i18n("Theme"),
info=i18n(
"Select the theme you want to use. (Requires restarting the App)"
),
visible=True,
)
themes_select.change(
fn=loadThemes.select_theme,
inputs=themes_select,
outputs=[],
)