diff --git a/locales/en.yml b/locales/en.yml index 1faf9639..e96de8fb 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -133,8 +133,10 @@ config_page: desc: "You can choose the translation model when using the {{ctranslate2}} translation engine." small: "Basic Model ({{capacity}})" large: "High Accuracy Model ({{capacity}})" - ctranslate2_compute_device: - label: "Processing device for AI translation {{ctranslate2}}" + ctranslate2_compute_type: + label: "Processing type for AI translation {{ctranslate2}}" + translation_compute_device: + label: "Processing device for AI translation" deepl_auth_key: label: "DeepL Auth Key" desc: "When using it, please change {{translator}} on the main screen to DeepL_API. ※Some languages may not be supported." diff --git a/locales/ja.yml b/locales/ja.yml index d3da554e..a16b6b1d 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -133,8 +133,10 @@ config_page: desc: "翻訳エンジン「{{ctranslate2}}」で翻訳する際に、使用する翻訳モデルを選択できます。" small: "通常モデル ({{capacity}})" large: "高精度モデル ({{capacity}})" - ctranslate2_compute_device: - label: "AI翻訳 {{ctranslate2}} の処理デバイス" + ctranslate2_compute_type: + label: "AI翻訳 {{ctranslate2}} の処理タイプ" + translation_compute_device: + label: "AI翻訳の処理デバイス" deepl_auth_key: label: "DeepL APIキーの登録" desc: "使用の際は、メイン画面にある {{translator}} をDeepL_APIに変更してください。\n※対応していない言語もあります。" diff --git a/locales/ko.yml b/locales/ko.yml index d2e171ac..df188d5f 100644 --- a/locales/ko.yml +++ b/locales/ko.yml @@ -133,8 +133,10 @@ config_page: desc: "오프라인 번역 시의 번역 모델을 변경합니다." small: "일반 모델 ({{capacity}})" large: "정밀 모델 ({{capacity}})" - ctranslate2_compute_device: - label: "AI 번역 {{ctranslate2}} 처리 장치" + ctranslate2_compute_type: + label: + translation_compute_device: + label: "AI 번역 처리 장치" deepl_auth_key: label: "DeepL 인증키" desc: "사용시 메인화면에 있는 {{translator}}를 DeepL_API로 변경해 주세요.\n지원하지 않는 언어도 있습니다." diff --git a/locales/zh-Hans.yml b/locales/zh-Hans.yml index 71a75390..e2bd4a14 100644 --- a/locales/zh-Hans.yml +++ b/locales/zh-Hans.yml @@ -133,7 +133,9 @@ config_page: desc: "可以选择用于离线翻译的翻译模型" small: "普通模型 ({{capacity}})" large: "高精度模型 ({{capacity}})" - ctranslate2_compute_device: + ctranslate2_compute_type: + label: + translation_compute_device: label: deepl_auth_key: label: "DeepL 授权密匙" diff --git a/locales/zh-Hant.yml b/locales/zh-Hant.yml index f091fd03..bc190b25 100644 --- a/locales/zh-Hant.yml +++ b/locales/zh-Hant.yml @@ -133,7 +133,9 @@ config_page: desc: "你可以選擇用於離線翻譯引擎的翻譯模型。" small: "基本模型({{capacity}})" large: "高準確率模型({{capacity}})" - ctranslate2_compute_device: + ctranslate2_compute_type: + label: + translation_compute_device: label: deepl_auth_key: label: "DeepL 授權金鑰" diff --git a/src-ui/app/config_page/setting_section/setting_box/translation/Translation.jsx b/src-ui/app/config_page/setting_section/setting_box/translation/Translation.jsx index 38c5a1e3..cdb8d351 100644 --- a/src-ui/app/config_page/setting_section/setting_box/translation/Translation.jsx +++ b/src-ui/app/config_page/setting_section/setting_box/translation/Translation.jsx @@ -18,7 +18,8 @@ export const Translation = () => { return ( <> - + + ); @@ -62,7 +63,7 @@ const CTranslate2WeightType_Box = () => { "config_page.translation.ctranslate2_weight_type.desc", {ctranslate2: "CTranslate2"} )} - name="ctransalte2_weight_type" + name="ctranslate2_weight_type" options={c_translate2_weight_types} checked_variable={currentSelectedCTranslate2WeightType} selectFunction={selectFunction} @@ -72,47 +73,72 @@ const CTranslate2WeightType_Box = () => { ); }; -// Duplicate -import { useComputeMode } from "@logics_common"; -const CTranslation2ComputeDevice_Box = () => { +const CTranslate2ComputeType_Box = () => { const { t } = useI18n(); - const { currentSelectedCTranslate2ComputeDevice, setSelectedCTranslate2ComputeDevice } = useTranslation(); - const { currentSelectableCTranslate2ComputeDeviceList } = useTranslation(); + const { currentSelectableCTranslate2ComputeTypeList } = useTranslation(); + const { currentSelectedCTranslate2ComputeType, setSelectedCTranslate2ComputeType } = useTranslation(); const selectFunction = (selected_data) => { - const target_obj = currentSelectableCTranslate2ComputeDeviceList.data[selected_data.selected_id]; - setSelectedCTranslate2ComputeDevice(target_obj); + setSelectedCTranslate2ComputeType(selected_data.selected_id); }; - const list_for_ui = transformDeviceArray(currentSelectableCTranslate2ComputeDeviceList.data); + const ctranslate2_compute_type_label = t("config_page.translation.ctranslate2_compute_type.label", { + ctranslate2: "CTranslate2" + }); - const target_index = findKeyByDeviceValue(currentSelectableCTranslate2ComputeDeviceList.data, currentSelectedCTranslate2ComputeDevice.data); + return ( + + ); +}; + +// Duplicate +import { useComputeMode } from "@logics_common"; +const TranslationComputeDevice_Box = () => { + const { t } = useI18n(); + const { currentSelectedTranslationComputeDevice, setSelectedTranslationComputeDevice } = useTranslation(); + const { currentSelectableTranslationComputeDeviceList } = useTranslation(); + + const selectFunction = (selected_data) => { + const target_obj = currentSelectableTranslationComputeDeviceList.data[selected_data.selected_id]; + setSelectedTranslationComputeDevice(target_obj); + }; + + const list_for_ui = transformDeviceArray(currentSelectableTranslationComputeDeviceList.data); + + const target_index = findKeyByDeviceValue(currentSelectableTranslationComputeDeviceList.data, currentSelectedTranslationComputeDevice.data); const { currentComputeMode } = useComputeMode(); - const ctranslate2_compute_device_label = t("config_page.translation.ctranslate2_compute_device.label", { - ctranslate2: "Ctranslate2" + const translation_compute_device_label = t("config_page.translation.translation_compute_device.label", { + ctranslate2: "CTranslate2" }); if (currentComputeMode.data === "cpu") { return ( ) } return ( ); }; diff --git a/src-ui/logics/configs/translation/useTranslation.js b/src-ui/logics/configs/translation/useTranslation.js index b282bf90..28ab10a4 100644 --- a/src-ui/logics/configs/translation/useTranslation.js +++ b/src-ui/logics/configs/translation/useTranslation.js @@ -1,13 +1,15 @@ import { useStore_CTranslate2WeightTypeStatus, useStore_SelectedCTranslate2WeightType, - useStore_SelectableCTranslate2ComputeDeviceList, - useStore_SelectedCTranslate2ComputeDevice, + useStore_SelectableCTranslate2ComputeTypeList, + useStore_SelectedCTranslate2ComputeType, + useStore_SelectableTranslationComputeDeviceList, + useStore_SelectedTranslationComputeDevice, useStore_DeepLAuthKey, } from "@store"; import { useStdoutToPython } from "@useStdoutToPython"; import { useI18n } from "@useI18n"; -import { transformToIndexedArray } from "@utils"; +import { transformToIndexedArray, arrayToObject } from "@utils"; import { useNotificationStatus } from "@logics_common"; export const useTranslation = () => { @@ -17,8 +19,13 @@ export const useTranslation = () => { const { currentCTranslate2WeightTypeStatus, updateCTranslate2WeightTypeStatus, pendingCTranslate2WeightTypeStatus } = useStore_CTranslate2WeightTypeStatus(); const { currentSelectedCTranslate2WeightType, updateSelectedCTranslate2WeightType, pendingSelectedCTranslate2WeightType } = useStore_SelectedCTranslate2WeightType(); - const { currentSelectableCTranslate2ComputeDeviceList, updateSelectableCTranslate2ComputeDeviceList, pendingSelectableCTranslate2ComputeDeviceList } = useStore_SelectableCTranslate2ComputeDeviceList(); - const { currentSelectedCTranslate2ComputeDevice, updateSelectedCTranslate2ComputeDevice, pendingSelectedCTranslate2ComputeDevice } = useStore_SelectedCTranslate2ComputeDevice(); + + const { currentSelectableCTranslate2ComputeTypeList, updateSelectableCTranslate2ComputeTypeList, pendingSelectableCTranslate2ComputeTypeList } = useStore_SelectableCTranslate2ComputeTypeList(); + const { currentSelectedCTranslate2ComputeType, updateSelectedCTranslate2ComputeType, pendingSelectedCTranslate2ComputeType } = useStore_SelectedCTranslate2ComputeType(); + + const { currentSelectableTranslationComputeDeviceList, updateSelectableTranslationComputeDeviceList, pendingSelectableTranslationComputeDeviceList } = useStore_SelectableTranslationComputeDeviceList(); + const { currentSelectedTranslationComputeDevice, updateSelectedTranslationComputeDevice, pendingSelectedTranslationComputeDevice } = useStore_SelectedTranslationComputeDevice(); + const { currentDeepLAuthKey, updateDeepLAuthKey, pendingDeepLAuthKey } = useStore_DeepLAuthKey(); @@ -80,28 +87,56 @@ export const useTranslation = () => { }; - const getSelectableCTranslate2ComputeDeviceList = () => { - pendingSelectableCTranslate2ComputeDeviceList(); + + const getSelectableCTranslate2ComputeTypeList = () => { + pendingSelectableCTranslate2ComputeTypeList(); + asyncStdoutToPython("/get/data/ctranslate2_compute_type_list"); + }; + + const updateSelectableCTranslate2ComputeTypeList_FromBackend = (payload) => { + updateSelectableCTranslate2ComputeTypeList(arrayToObject(payload)); + }; + + + const getSelectedCTranslate2ComputeType = () => { + pendingSelectedCTranslate2ComputeType(); + asyncStdoutToPython("/get/data/ctranslate2_compute_type"); + }; + + const setSelectedCTranslate2ComputeType = (selected_ctranslate2_compute_type) => { + pendingSelectedCTranslate2ComputeType(); + asyncStdoutToPython("/set/data/ctranslate2_compute_type", selected_ctranslate2_compute_type); + }; + + const setSuccessSelectedCTranslate2ComputeType = (selected_ctranslate2_compute_type) => { + updateSelectedCTranslate2ComputeType(selected_ctranslate2_compute_type); + showNotification_SaveSuccess(); + }; + + + + const getSelectableTranslationComputeDeviceList = () => { + pendingSelectableTranslationComputeDeviceList(); asyncStdoutToPython("/get/data/translation_compute_device_list"); }; - const updateSelectableCTranslate2ComputeDeviceList_FromBackend = (payload) => { - updateSelectableCTranslate2ComputeDeviceList(transformToIndexedArray(payload)); + const updateSelectableTranslationComputeDeviceList_FromBackend = (payload) => { + updateSelectableTranslationComputeDeviceList(transformToIndexedArray(payload)); }; - const getSelectedCTranslate2ComputeDevice = () => { - pendingSelectedCTranslate2ComputeDevice(); + const getSelectedTranslationComputeDevice = () => { + pendingSelectedTranslationComputeDevice(); asyncStdoutToPython("/get/data/selected_translation_compute_device"); }; - const setSelectedCTranslate2ComputeDevice = (selected_translation_compute_device) => { - pendingSelectedCTranslate2ComputeDevice(); + const setSelectedTranslationComputeDevice = (selected_translation_compute_device) => { + pendingSelectedTranslationComputeDevice(); asyncStdoutToPython("/set/data/selected_translation_compute_device", selected_translation_compute_device); }; - const setSuccessSelectedCTranslate2ComputeDevice = (selected_translation_compute_device) => { - updateSelectedCTranslate2ComputeDevice(selected_translation_compute_device); + const setSuccessSelectedTranslationComputeDevice = (selected_translation_compute_device) => { + updateSelectedTranslationComputeDevice(selected_translation_compute_device); showNotification_SaveSuccess(); }; @@ -146,16 +181,29 @@ export const useTranslation = () => { setSelectedCTranslate2WeightType, setSuccessSelectedCTranslate2WeightType, - currentSelectableCTranslate2ComputeDeviceList, - getSelectableCTranslate2ComputeDeviceList, - updateSelectableCTranslate2ComputeDeviceList, - updateSelectableCTranslate2ComputeDeviceList_FromBackend, - currentSelectedCTranslate2ComputeDevice, - getSelectedCTranslate2ComputeDevice, - updateSelectedCTranslate2ComputeDevice, - setSelectedCTranslate2ComputeDevice, - setSuccessSelectedCTranslate2ComputeDevice, + currentSelectableCTranslate2ComputeTypeList, + getSelectableCTranslate2ComputeTypeList, + updateSelectableCTranslate2ComputeTypeList, + updateSelectableCTranslate2ComputeTypeList_FromBackend, + + currentSelectedCTranslate2ComputeType, + getSelectedCTranslate2ComputeType, + updateSelectedCTranslate2ComputeType, + setSelectedCTranslate2ComputeType, + setSuccessSelectedCTranslate2ComputeType, + + + currentSelectableTranslationComputeDeviceList, + getSelectableTranslationComputeDeviceList, + updateSelectableTranslationComputeDeviceList, + updateSelectableTranslationComputeDeviceList_FromBackend, + + currentSelectedTranslationComputeDevice, + getSelectedTranslationComputeDevice, + updateSelectedTranslationComputeDevice, + setSelectedTranslationComputeDevice, + setSuccessSelectedTranslationComputeDevice, currentDeepLAuthKey, getDeepLAuthKey, diff --git a/src-ui/logics/useReceiveRoutes.js b/src-ui/logics/useReceiveRoutes.js index c36b5fa7..d3452721 100644 --- a/src-ui/logics/useReceiveRoutes.js +++ b/src-ui/logics/useReceiveRoutes.js @@ -168,19 +168,22 @@ export const ROUTE_META_LIST = [ { endpoint: "/delete/data/deepl_auth_key", ns: configs, hook_name: "useTranslation", method_name: "deleteSuccessDeepLAuthKey" }, // Translation (AI Models) + { endpoint: "/get/data/selectable_ctranslate2_weight_type_dict", ns: configs, hook_name: "useTranslation", method_name: "updateDownloadedCTranslate2WeightTypeStatus" }, { endpoint: "/get/data/ctranslate2_weight_type", ns: configs, hook_name: "useTranslation", method_name: "updateSelectedCTranslate2WeightType" }, { endpoint: "/set/data/ctranslate2_weight_type", ns: configs, hook_name: "useTranslation", method_name: "setSuccessSelectedCTranslate2WeightType" }, - { endpoint: "/get/data/selectable_ctranslate2_weight_type_dict", ns: configs, hook_name: "useTranslation", method_name: "updateDownloadedCTranslate2WeightTypeStatus" }, + { endpoint: "/get/data/ctranslate2_compute_type_list", ns: configs, hook_name: "useTranslation", method_name: "updateSelectableCTranslate2ComputeTypeList_FromBackend" }, + { endpoint: "/get/data/ctranslate2_compute_type", ns: configs, hook_name: "useTranslation", method_name: "updateSelectedCTranslate2ComputeType" }, + { endpoint: "/set/data/ctranslate2_compute_type", ns: configs, hook_name: "useTranslation", method_name: "setSuccessSelectedCTranslate2ComputeType" }, { endpoint: "/run/downloaded_ctranslate2_weight", ns: configs, hook_name: "useTranslation", method_name: "downloadedCTranslate2WeightType" }, { endpoint: "/run/download_ctranslate2_weight", ns: null, hook_name: null, method_name: null }, { endpoint: "/run/download_progress_ctranslate2_weight", ns: configs, hook_name: "useTranslation", method_name: "updateDownloadProgressCTranslate2WeightTypeStatus" }, - { endpoint: "/get/data/translation_compute_device_list", ns: configs, hook_name: "useTranslation", method_name: "updateSelectableCTranslate2ComputeDeviceList_FromBackend" }, + { endpoint: "/get/data/translation_compute_device_list", ns: configs, hook_name: "useTranslation", method_name: "updateSelectableTranslationComputeDeviceList_FromBackend" }, - { endpoint: "/get/data/selected_translation_compute_device", ns: configs, hook_name: "useTranslation", method_name: "updateSelectedCTranslate2ComputeDevice" }, - { endpoint: "/set/data/selected_translation_compute_device", ns: configs, hook_name: "useTranslation", method_name: "setSuccessSelectedCTranslate2ComputeDevice" }, + { endpoint: "/get/data/selected_translation_compute_device", ns: configs, hook_name: "useTranslation", method_name: "updateSelectedTranslationComputeDevice" }, + { endpoint: "/set/data/selected_translation_compute_device", ns: configs, hook_name: "useTranslation", method_name: "setSuccessSelectedTranslationComputeDevice" }, // Transcription diff --git a/src-ui/store.js b/src-ui/store.js index e36aad46..ba00127b 100644 --- a/src-ui/store.js +++ b/src-ui/store.js @@ -218,10 +218,15 @@ export const { atomInstance: Atom_MicWordFilterList, useHook: useStore_MicWordFi // Translation export const { atomInstance: Atom_DeepLAuthKey, useHook: useStore_DeepLAuthKey } = createAtomWithHook(null, "DeepLAuthKey"); export const { atomInstance: Atom_SelectedCTranslate2WeightType, useHook: useStore_SelectedCTranslate2WeightType } = createAtomWithHook("", "SelectedCTranslate2WeightType"); -export const { atomInstance: Atom_SelectableCTranslate2ComputeDeviceList, useHook: useStore_SelectableCTranslate2ComputeDeviceList } = createAtomWithHook({}, "SelectableCTranslate2ComputeDeviceList"); -export const { atomInstance: Atom_SelectedCTranslate2ComputeDevice, useHook: useStore_SelectedCTranslate2ComputeDevice } = createAtomWithHook("", "SelectedCTranslate2ComputeDevice"); export const { atomInstance: Atom_CTranslate2WeightTypeStatus, useHook: useStore_CTranslate2WeightTypeStatus } = createAtomWithHook(ctranslate2_weight_type_status, "CTranslate2WeightTypeStatus"); +export const { atomInstance: Atom_SelectableCTranslate2ComputeTypeList, useHook: useStore_SelectableCTranslate2ComputeTypeList } = createAtomWithHook({}, "SelectableCTranslate2ComputeTypeList"); +export const { atomInstance: Atom_SelectedCTranslate2ComputeType, useHook: useStore_SelectedCTranslate2ComputeType } = createAtomWithHook("", "SelectedCTranslate2ComputeType"); + + +export const { atomInstance: Atom_SelectableTranslationComputeDeviceList, useHook: useStore_SelectableTranslationComputeDeviceList } = createAtomWithHook({}, "SelectableTranslationComputeDeviceList"); +export const { atomInstance: Atom_SelectedTranslationComputeDevice, useHook: useStore_SelectedTranslationComputeDevice } = createAtomWithHook("", "SelectedTranslationComputeDevice"); + // Transcription export const { atomInstance: Atom_MicRecordTimeout, useHook: useStore_MicRecordTimeout } = createAtomWithHook(0, "MicRecordTimeout"); export const { atomInstance: Atom_MicPhraseTimeout, useHook: useStore_MicPhraseTimeout } = createAtomWithHook(0, "MicPhraseTimeout");