Files
VRCT/src-ui/logics/main/useLanguageSettings.js
2024-12-10 20:09:04 +09:00

148 lines
5.2 KiB
JavaScript

import { useStore_SelectedPresetTabNumber, useStore_EnableMultiTranslation, useStore_SelectedYourLanguages, useStore_SelectedTargetLanguages, useStore_TranslationEngines, useStore_SelectedTranslationEngines } from "@store";
import { useStdoutToPython } from "@logics/useStdoutToPython";
export const useLanguageSettings = () => {
const { asyncStdoutToPython } = useStdoutToPython();
const {
currentEnableMultiTranslation,
updateEnableMultiTranslation,
pendingEnableMultiTranslation,
} = useStore_EnableMultiTranslation();
const {
currentSelectedYourLanguages,
updateSelectedYourLanguages,
pendingSelectedYourLanguages,
} = useStore_SelectedYourLanguages();
const {
currentSelectedTargetLanguages,
updateSelectedTargetLanguages,
pendingSelectedTargetLanguages,
} = useStore_SelectedTargetLanguages();
const {
currentSelectedPresetTabNumber,
updateSelectedPresetTabNumber,
pendingSelectedPresetTabNumber,
} = useStore_SelectedPresetTabNumber();
const {
currentTranslationEngines,
updateTranslationEngines,
pendingTranslationEngines,
} = useStore_TranslationEngines();
const {
currentSelectedTranslationEngines,
updateSelectedTranslationEngines,
pendingSelectedTranslationEngines,
} = useStore_SelectedTranslationEngines();
const getEnableMultiTranslation = () => {
pendingEnableMultiTranslation();
asyncStdoutToPython("/get/data/multi_language_translation");
};
const getSelectedPresetTabNumber = () => {
pendingSelectedPresetTabNumber();
asyncStdoutToPython("/get/data/selected_tab_no");
};
const setSelectedPresetTabNumber = (preset_number) => {
pendingSelectedPresetTabNumber();
asyncStdoutToPython("/set/data/selected_tab_no", preset_number);
};
const getSelectedYourLanguages = () => {
pendingSelectedPresetTabNumber();
asyncStdoutToPython("/get/data/selected_your_languages");
};
const setSelectedYourLanguages = (selected_language_data) => {
pendingSelectedYourLanguages();
const send_obj = {
...currentSelectedYourLanguages.data,
[currentSelectedPresetTabNumber.data]: {
1: {
language: selected_language_data.language,
country: selected_language_data.country,
enable: selected_language_data.enable,
}
}
};
asyncStdoutToPython("/set/data/selected_your_languages", send_obj);
};
const getSelectedTargetLanguages = () => {
pendingSelectedTargetLanguages();
asyncStdoutToPython("/get/data/selected_target_languages");
};
const setSelectedTargetLanguages = (selected_language_data) => {
pendingSelectedTargetLanguages();
let send_obj = currentSelectedTargetLanguages.data;
send_obj[currentSelectedPresetTabNumber.data][1].language = selected_language_data.language,
send_obj[currentSelectedPresetTabNumber.data][1].country = selected_language_data.country,
send_obj[currentSelectedPresetTabNumber.data][1].enable = selected_language_data.enable,
asyncStdoutToPython("/set/data/selected_target_languages", send_obj);
};
const getTranslationEngines = () => {
pendingTranslationEngines();
asyncStdoutToPython("/get/data/translation_engines");
};
const getSelectedTranslationEngines = () => {
pendingSelectedTranslationEngines();
asyncStdoutToPython("/get/data/selected_translation_engines");
};
const setSelectedTranslationEngines = (selected_translator) => {
pendingSelectedTranslationEngines();
let send_obj = currentSelectedTranslationEngines.data;
send_obj[currentSelectedPresetTabNumber.data] = selected_translator;
asyncStdoutToPython("/set/data/selected_translation_engines", send_obj);
};
const runLanguageSwap = () => {
pendingSelectedYourLanguages();
pendingSelectedTargetLanguages();
asyncStdoutToPython("/run/swap_your_language_and_target_language");
};
return {
currentSelectedPresetTabNumber,
getSelectedPresetTabNumber,
updateSelectedPresetTabNumber,
setSelectedPresetTabNumber,
currentEnableMultiTranslation,
getEnableMultiTranslation,
updateEnableMultiTranslation,
// setEnableMultiTranslation,
currentSelectedYourLanguages,
getSelectedYourLanguages,
updateSelectedYourLanguages,
setSelectedYourLanguages,
currentSelectedTargetLanguages,
getSelectedTargetLanguages,
updateSelectedTargetLanguages,
setSelectedTargetLanguages,
currentTranslationEngines,
getTranslationEngines,
updateTranslationEngines,
currentSelectedTranslationEngines,
getSelectedTranslationEngines,
updateSelectedTranslationEngines,
setSelectedTranslationEngines,
runLanguageSwap,
};
};