Add UI locale selector

This commit is contained in:
Cohee
2023-08-15 21:32:17 +03:00
parent 5ccbbe23d6
commit eb81c4807a
2 changed files with 55 additions and 1 deletions

View File

@ -200,6 +200,7 @@ let movingUIPresets = [];
let instruct_presets = [];
const storage_keys = {
ui_language: "language",
fast_ui_mode: "TavernAI_fast_ui_mode",
avatar_style: "TavernAI_avatar_style",
chat_display: "TavernAI_chat_display",
@ -1301,8 +1302,25 @@ function doResetPanels() {
$("#movingUIreset").trigger('click');
}
function addLanguagesToDropdown() {
$.getJSON('i18n.json', function (data) {
if (!Array.isArray(data?.lang)) {
return;
}
for (const lang of data.lang) {
const option = document.createElement('option');
option.value = lang;
option.innerText = lang;
$('#ui_language_select').append(option);
}
const selectedLanguage = localStorage.getItem(storage_keys.ui_language);
if (selectedLanguage) {
$('#ui_language_select').val(selectedLanguage);
}
});
}
function setAvgBG() {
const bgimg = new Image();
@ -2040,6 +2058,28 @@ $(document).ready(() => {
saveSettingsDebounced();
});
$('#lazy_load').on('input', function () {
power_user.lazy_load = Number($(this).val());
saveSettingsDebounced();
});
$('#ui_language_select').on('change', async function () {
const language = $(this).val();
if (language) {
localStorage.setItem(storage_keys.ui_language, language);
window["applyLocale"]();
} else {
const result = confirm("Are you sure you want to reset the language to default? This will reload the page.")
if (result) {
localStorage.removeItem(storage_keys.ui_language);
location.reload();
} else {
$(this).val(localStorage.getItem(storage_keys.ui_language));
}
}
})
$(window).on('focus', function () {
browser_has_focus = true;
});
@ -2055,4 +2095,5 @@ $(document).ready(() => {
registerSlashCommand('cut', doMesCut, [], ' <span class="monospace">(requred number)</span> cuts the specified message from the chat', true, true);
registerSlashCommand('resetpanels', doResetPanels, ['resetui'], ' resets UI panels to original state.', true, true);
registerSlashCommand('bgcol', setAvgBG, [], ' WIP test of auto-bg avg coloring', true, true);
addLanguagesToDropdown();
});