[Update] Main Page: Language Settings. Translation Engines. To selectable.

This commit is contained in:
Sakamoto Shiina
2024-09-22 12:02:50 +09:00
parent 8e8eeeb239
commit 586aaf0091
7 changed files with 116 additions and 39 deletions

View File

@@ -1,4 +1,4 @@
import { useStore_SelectedPresetTabNumber, useStore_EnableMultiTranslation, useStore_SelectedYourLanguages, useStore_SelectedTargetLanguages } from "@store";
import { useStore_SelectedPresetTabNumber, useStore_EnableMultiTranslation, useStore_SelectedYourLanguages, useStore_SelectedTargetLanguages, useStore_TranslationEngines, useStore_SelectedTranslationEngines } from "@store";
import { useStdoutToPython } from "@logics/useStdoutToPython";
export const useLanguageSettings = () => {
@@ -7,6 +7,8 @@ export const useLanguageSettings = () => {
const { currentSelectedYourLanguages, updateSelectedYourLanguages } = useStore_SelectedYourLanguages();
const { currentSelectedTargetLanguages, updateSelectedTargetLanguages } = useStore_SelectedTargetLanguages();
const { currentSelectedPresetTabNumber, updateSelectedPresetTabNumber } = useStore_SelectedPresetTabNumber();
const { currentTranslationEngines, updateTranslationEngines } = useStore_TranslationEngines();
const { currentSelectedTranslationEngines, updateSelectedTranslationEngines } = useStore_SelectedTranslationEngines();
const getEnableMultiTranslation = () => {
updateEnableMultiTranslation(() => new Promise(() => {}));
@@ -60,6 +62,27 @@ export const useLanguageSettings = () => {
asyncStdoutToPython("/set/selected_target_languages", send_obj);
};
const getTranslationEngines = () => {
updateTranslationEngines(() => new Promise(() => {}));
asyncStdoutToPython("/get/list_translation_engines");
};
const getSelectedTranslationEngines = () => {
updateSelectedTranslationEngines(() => new Promise(() => {}));
asyncStdoutToPython("/get/selected_translator_engines");
};
const setSelectedTranslationEngines = (selected_translator) => {
// updateSelectedTranslationEngines(() => new Promise(() => {}));
let send_obj = currentSelectedTranslationEngines;
send_obj[currentSelectedPresetTabNumber.data] = selected_translator;
asyncStdoutToPython("/set/selected_translator_engines", send_obj);
};
return {
currentSelectedPresetTabNumber,
getSelectedPresetTabNumber,
@@ -80,5 +103,14 @@ export const useLanguageSettings = () => {
getSelectedTargetLanguages,
updateSelectedTargetLanguages,
setSelectedTargetLanguages,
currentTranslationEngines,
getTranslationEngines,
updateTranslationEngines,
currentSelectedTranslationEngines,
getSelectedTranslationEngines,
updateSelectedTranslationEngines,
setSelectedTranslationEngines,
};
};

View File

@@ -1,3 +1,5 @@
import { translator_status } from "@data";
import { arrayToObject } from "@utils/arrayToObject";
import { useMainFunction } from "@logics_main/useMainFunction";
import { useMessage } from "@logics_common/useMessage";
@@ -31,7 +33,9 @@ export const useReceiveRoutes = () => {
updateSelectedPresetTabNumber,
updateEnableMultiTranslation,
updateSelectedYourLanguages,
updateSelectedTargetLanguages
updateSelectedTargetLanguages,
updateTranslationEngines,
updateSelectedTranslationEngines,
} = useLanguageSettings();
const { updateSelectableLanguageList } = useSelectableLanguageList();
const {
@@ -78,6 +82,21 @@ export const useReceiveRoutes = () => {
"/set/selected_your_languages": updateSelectedYourLanguages,
"/get/selected_target_languages": updateSelectedTargetLanguages,
"/set/selected_target_languages": updateSelectedTargetLanguages,
"/get/list_translation_engines": (payload) => {
const updateTranslatorAvailability = (keys) => {
return translator_status.map(translator => ({
...translator,
is_available: keys.includes(translator.translator_id),
}));
};
const updated_list = updateTranslatorAvailability(payload);
updateTranslationEngines(updated_list);
},
"/get/selected_translator_engines": updateSelectedTranslationEngines,
"/set/selected_translator_engines": updateSelectedTranslationEngines,
// Language Selector
"/get/list_languages": updateSelectableLanguageList,
@@ -155,7 +174,7 @@ export const useReceiveRoutes = () => {
break;
case 348:
console.log(`from backend: %c ${JSON.stringify(parsed_data)}`, style_348);
// console.log(`from backend: %c ${JSON.stringify(parsed_data)}`, style_348);
break;
default: