[Update/Refactor] Main Page: Translation Engines. Apply Localization.

This commit is contained in:
Sakamoto Shiina
2024-11-13 06:54:28 +09:00
parent f835a3be80
commit dd21623b59
3 changed files with 25 additions and 8 deletions

View File

@@ -1,5 +1,5 @@
import { useTranslation } from "react-i18next"; import { useTranslation } from "react-i18next";
import { updateLabelsById } from "@utils/updateLabelsById";
import styles from "./TranslatorSelectorOpenButton.module.scss"; import styles from "./TranslatorSelectorOpenButton.module.scss";
import { TranslatorSelector } from "./translator_selector/TranslatorSelector"; import { TranslatorSelector } from "./translator_selector/TranslatorSelector";
import { useStore_IsOpenedTranslatorSelector } from "@store"; import { useStore_IsOpenedTranslatorSelector } from "@store";
@@ -13,11 +13,22 @@ export const TranslatorSelectorOpenButton = () => {
currentSelectedTranslationEngines, currentSelectedTranslationEngines,
} = useLanguageSettings(); } = useLanguageSettings();
const selected_label = (currentTranslationEngines.state === "pending") const new_labels = [
? "Loading..." {id: "CTranslate2", label: t("main_page.translator_ctranslate2")}
: currentTranslationEngines.data.find( ];
translator_data => translator_data.id === currentSelectedTranslationEngines.data[currentSelectedPresetTabNumber.data]
)?.label; const translation_engines = updateLabelsById(currentTranslationEngines.data, new_labels);
const getSelectedLabel = () => {
const selected_engine_id = currentSelectedTranslationEngines.data[currentSelectedPresetTabNumber.data];
const selected_engine = translation_engines.find(
d => d.id === selected_engine_id
);
return selected_engine?.label;
};
const is_loading = currentTranslationEngines.state === "pending";
const selected_label = is_loading ? "Loading..." : getSelectedLabel();
const { currentIsOpenedTranslatorSelector, updateIsOpenedTranslatorSelector} = useStore_IsOpenedTranslatorSelector(); const { currentIsOpenedTranslatorSelector, updateIsOpenedTranslatorSelector} = useStore_IsOpenedTranslatorSelector();
@@ -35,7 +46,7 @@ export const TranslatorSelectorOpenButton = () => {
{currentIsOpenedTranslatorSelector.data && {currentIsOpenedTranslatorSelector.data &&
<TranslatorSelector <TranslatorSelector
selected_id={currentSelectedTranslationEngines} selected_id={currentSelectedTranslationEngines}
translation_engines={currentTranslationEngines} translation_engines={translation_engines}
/> />
} }
</div> </div>

View File

@@ -6,7 +6,7 @@ import { useStore_IsOpenedTranslatorSelector } from "@store";
import { useLanguageSettings } from "@logics_main"; import { useLanguageSettings } from "@logics_main";
export const TranslatorSelector = ({selected_id, translation_engines}) => { export const TranslatorSelector = ({selected_id, translation_engines}) => {
const columns = (translation_engines.data !== undefined) ? chunkArray(translation_engines.data, 2) : []; const columns = chunkArray(translation_engines, 2);
return ( return (
<div className={styles.container}> <div className={styles.container}>

View File

@@ -0,0 +1,6 @@
export const updateLabelsById = (data_array, updates) => {
return data_array.map(item => {
const update = updates.find(update_item => update_item.id === item.id);
return update ? { ...item, label: update.label } : item;
});
};