diff --git a/locales/en.yml b/locales/en.yml index 9afc8b00..10969bf9 100644 --- a/locales/en.yml +++ b/locales/en.yml @@ -17,10 +17,10 @@ main_page: swap_button_label: "Swap Languages" target_language: "Target Language" translator: "Translator" - translator_ctranslate2: "Internal (Default)" + # translator_label_default: "Default" translator_selector: - is_selected_same_language: "Since the same language is selected for both '{{your_language}}' and '{{target_language}}', only '{{translator_ctranslate2}}' is available." + is_selected_same_language: "Since the same language is selected for both '{{your_language}}' and '{{target_language}}', only '{{ctranslate2}}' is available." message_log: all: "All" @@ -59,12 +59,9 @@ config_page: appearance: "Appearance" translation: "Translation" transcription: "Transcription" - vr: "VR" others: "Others" hotkeys: "Hotkeys" advanced_settings: "Advanced Settings" - supporters: "Supporters" - about_vrct: "About VRCT" device: check_volume: "Check Volume" @@ -112,12 +109,12 @@ config_page: translation: ctranslate2_weight_type: - label: "Internal Translation Model" + label: "{{ctranslate2}} Model" desc: "You can choose the translation model to use for the internal translation engine." small: "Basic model ({{capacity}})" large: "High accuracy model ({{capacity}})" ctranslate2_compute_device: - label: "Internal Translation Compute Device" + label: "{{ctranslate2}} Compute Device" deepl_auth_key: label: "DeepL Auth Key" desc: "Please select {{translator}} on the main screen with DeepL_API when using. ※Some languages may not be supported." diff --git a/locales/ja.yml b/locales/ja.yml index 4fc04836..e92853e9 100644 --- a/locales/ja.yml +++ b/locales/ja.yml @@ -10,17 +10,17 @@ main_page: translation: "翻訳" transcription_send: "音声認識(マイク)" transcription_receive: "音声認識(スピーカー)" - foreground: "最前面表示" + foreground: "最前面固定" language_settings: "言語設定" your_language: "あなたの言語" translate_each_other_label: "双方向に翻訳" swap_button_label: "言語を入れ替え" target_language: "相手の言語" translator: "翻訳エンジン" - translator_ctranslate2: "オフライン翻訳 (Default)" + # translator_label_default: "Default" translator_selector: - is_selected_same_language: "{{your_language}}」と「{{target_language}}」に同じ言語が選択がされているため、「{{translator_ctranslate2}}」のみが使用できます。" + is_selected_same_language: "「{{your_language}}」と「{{target_language}}」に同じ言語が選択がされているため、「{{ctranslate2}}」のみが使用できます。" message_log: all: "全て" @@ -98,7 +98,7 @@ config_page: desc: "ログに表示されるフォントのサイズを、UIサイズを基準にして倍率を変えられます。" send_message_button_type: label: "メッセージ送信ボタン" - hide: "非表示 (エンターキーを使って送信)" + hide: "非表示 (エンターキーを使って送信)" show: "表示" show_and_disable_enter_key: "表示し、エンターキーでの送信を無効" font_family: @@ -108,14 +108,14 @@ config_page: translation: ctranslate2_weight_type: - label: "オフライン翻訳のタイプ" - desc: "翻訳エンジン(オフライン翻訳)で翻訳する際に、使用する翻訳モデルを選択できます。" + label: "AI翻訳 {{ctranslate2}} のモデルタイプ" + desc: "翻訳エンジン「{{ctranslate2}}」で翻訳する際に、使用する翻訳モデルを選択できます。" small: "通常モデル ({{capacity}})" large: "高精度モデル ({{capacity}})" ctranslate2_compute_device: - label: "オフライン翻訳の処理デバイス" + label: "AI翻訳 {{ctranslate2}} の処理デバイス" deepl_auth_key: - label: "DeepL 認証キー" + label: "DeepL API 認証キー" desc: "使用の際は、メイン画面にある {{translator}} をDeepL_APIに変更してください。\n※対応していない言語もあります。" open_auth_key_webpage: "DeepLアカウントページを開く" save: "保存" diff --git a/locales/ko.yml b/locales/ko.yml index 6011d3ef..8f223f10 100644 --- a/locales/ko.yml +++ b/locales/ko.yml @@ -17,7 +17,7 @@ main_page: swap_button_label: "언어 교체" target_language: "상대방의 언어" translator: "번역 엔진" - translator_ctranslate2: "오프라인 번역 (기본값)" + # translator_label_default: "기본값" message_log: all: "전체" diff --git a/locales/zh-Hans.yml b/locales/zh-Hans.yml index 0f317e5d..d0a8d260 100644 --- a/locales/zh-Hans.yml +++ b/locales/zh-Hans.yml @@ -17,7 +17,7 @@ main_page: swap_button_label: "互换" target_language: "目标语言" translator: "翻译器" - translator_ctranslate2: "离线翻译(默认)" + # translator_label_default: "默认" message_log: all: "全部" diff --git a/locales/zh-Hant.yml b/locales/zh-Hant.yml index cc56ca58..0a70011b 100644 --- a/locales/zh-Hant.yml +++ b/locales/zh-Hant.yml @@ -17,7 +17,7 @@ main_page: swap_button_label: "交換語言" target_language: "目標語言" translator: "翻譯器" - translator_ctranslate2: "離線翻譯(預設)" + # translator_label_default: "預設" message_log: all: "全部" diff --git a/src-ui/app/config_page/setting_section/setting_box/_components/word_filter/WordFilter.jsx b/src-ui/app/config_page/setting_section/setting_box/_components/word_filter/WordFilter.jsx index d2a4a62d..bc338d4b 100644 --- a/src-ui/app/config_page/setting_section/setting_box/_components/word_filter/WordFilter.jsx +++ b/src-ui/app/config_page/setting_section/setting_box/_components/word_filter/WordFilter.jsx @@ -1,3 +1,4 @@ +import { useTranslation } from "react-i18next"; import styles from "./WordFilter.module.scss"; import { _Entry } from "../_atoms/_entry/_Entry"; import { useState } from "react"; @@ -5,6 +6,8 @@ import { useStore_IsOpenedMicWordFilterList } from "@store"; import { useMicWordFilterList } from "@logics_configs"; export const WordFilter = () => { + const { t } = useTranslation(); + const [input_value, setInputValue] = useState(""); const { currentMicWordFilterList, updateMicWordFilterList, setMicWordFilterList } = useMicWordFilterList(); const { currentIsOpenedMicWordFilterList, updateIsOpenedMicWordFilterList } = useStore_IsOpenedMicWordFilterList(); @@ -82,7 +85,7 @@ export const WordFilter = () => { }
<_Entry width="30rem" onChange={onChangeEntry} ui_variable={input_value}/> - +
); @@ -121,8 +124,6 @@ const WordFilterItem = (props) => { ); }; -import { useTranslation } from "react-i18next"; - import ArrowLeftSvg from "@images/arrow_left.svg?react"; export const WordFilterListToggleComponent = (props) => { const { t } = useTranslation(); diff --git a/src-ui/app/config_page/setting_section/setting_box/transcription/Transcription.jsx b/src-ui/app/config_page/setting_section/setting_box/transcription/Transcription.jsx index e7294a18..c7c9368d 100644 --- a/src-ui/app/config_page/setting_section/setting_box/transcription/Transcription.jsx +++ b/src-ui/app/config_page/setting_section/setting_box/transcription/Transcription.jsx @@ -1,7 +1,6 @@ -import { useEffect, useState } from "react"; import { useTranslation } from "react-i18next"; import styles from "./Transcription.module.scss"; -import { updateLabelsById } from "@utils"; +import { updateLabelsById, genNumObjArray } from "@utils"; import { useMicRecordTimeout, @@ -21,7 +20,6 @@ import { } from "@logics_configs"; import { - EntryContainer, WordFilterContainer, DownloadModelsContainer, RadioButtonContainer, @@ -59,82 +57,61 @@ const Mic_Container = () => { const MicRecordTimeout_Box = () => { const { t } = useTranslation(); - const [ui_variable, setUiVariable] = useState(""); const { currentMicRecordTimeout, setMicRecordTimeout } = useMicRecordTimeout(); - const onChangeFunction = (e) => { - const value = e.currentTarget.value; - if (value === "") { - setUiVariable(""); - } else { - setUiVariable(value); - setMicRecordTimeout(value); - } + + const selectFunction = (selected_data) => { + setMicRecordTimeout(selected_data.selected_id); }; - useEffect(()=> { - setUiVariable(currentMicRecordTimeout.data); - }, [currentMicRecordTimeout]); - return ( - ); }; const MicPhraseTimeout_Box = () => { const { t } = useTranslation(); - const [ui_variable, setUiVariable] = useState(""); const { currentMicPhraseTimeout, setMicPhraseTimeout } = useMicPhraseTimeout(); - const onChangeFunction = (e) => { - const value = e.currentTarget.value; - if (value === "") { - setUiVariable(""); - } else { - setUiVariable(value); - setMicPhraseTimeout(value); - } + + const selectFunction = (selected_data) => { + setMicPhraseTimeout(selected_data.selected_id); }; - useEffect(()=> { - setUiVariable(currentMicPhraseTimeout.data); - }, [currentMicPhraseTimeout]); - return ( - ); }; const MicMaxWords_Box = () => { const { t } = useTranslation(); - const [ui_variable, setUiVariable] = useState(""); const { currentMicMaxWords, setMicMaxWords } = useMicMaxWords(); - const onChangeFunction = (e) => { - const value = e.currentTarget.value; - if (value === "") { - setUiVariable(""); - } else { - setUiVariable(value); - setMicMaxWords(value); - } + + const selectFunction = (selected_data) => { + setMicMaxWords(selected_data.selected_id); }; - useEffect(()=> { - setUiVariable(currentMicMaxWords.data); - }, [currentMicMaxWords]); - return ( - ); }; @@ -167,82 +144,60 @@ const Speaker_Container = () => { const SpeakerRecordTimeout_Box = () => { const { t } = useTranslation(); - const [ui_variable, setUiVariable] = useState(""); const { currentSpeakerRecordTimeout, setSpeakerRecordTimeout } = useSpeakerRecordTimeout(); - const onChangeFunction = (e) => { - const value = e.currentTarget.value; - if (value === "") { - setUiVariable(""); - } else { - setUiVariable(value); - setSpeakerRecordTimeout(value); - } + + const selectFunction = (selected_data) => { + setSpeakerRecordTimeout(selected_data.selected_id); }; - useEffect(()=> { - setUiVariable(currentSpeakerRecordTimeout.data); - }, [currentSpeakerRecordTimeout]); - return ( - ); }; const SpeakerPhraseTimeout_Box = () => { const { t } = useTranslation(); - const [ui_variable, setUiVariable] = useState(""); const { currentSpeakerPhraseTimeout, setSpeakerPhraseTimeout } = useSpeakerPhraseTimeout(); - const onChangeFunction = (e) => { - const value = e.currentTarget.value; - if (value === "") { - setUiVariable(""); - } else { - setUiVariable(value); - setSpeakerPhraseTimeout(value); - } + + const selectFunction = (selected_data) => { + setSpeakerPhraseTimeout(selected_data.selected_id); }; - - useEffect(()=> { - setUiVariable(currentSpeakerPhraseTimeout.data); - }, [currentSpeakerPhraseTimeout]); - return ( - ); }; const SpeakerMaxWords_Box = () => { const { t } = useTranslation(); - const [ui_variable, setUiVariable] = useState(""); const { currentSpeakerMaxWords, setSpeakerMaxWords } = useSpeakerMaxWords(); - const onChangeFunction = (e) => { - const value = e.currentTarget.value; - if (value === "") { - setUiVariable(""); - } else { - setUiVariable(value); - setSpeakerMaxWords(value); - } + + const selectFunction = (selected_data) => { + setSpeakerMaxWords(selected_data.selected_id); }; - useEffect(()=> { - setUiVariable(currentSpeakerMaxWords.data); - }, [currentSpeakerMaxWords]); - return ( - ); }; 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 b1bbc0fc..63f0630d 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 @@ -56,7 +56,10 @@ const CTranslate2WeightType_Box = () => { return ( <> { const { currentComputeMode } = useComputeMode(); + const ctranslate2_compute_device_label = t("config_page.translation.ctranslate2_compute_device.label", { + ctranslate2: "Ctranslate2" + }); if (currentComputeMode.data === "cpu") { return ( { return ( { [styles["is_selected"]]: (currentSelectedConfigTabId.data === props.tab_id) ? true : false }); + const getLabel = () => { + if (props.tab_id === "vr") return "VR"; + if (props.tab_id === "supporters") return "Supporters"; + if (props.tab_id === "about_vrct") return "About VRCT"; + return t(`config_page.side_menu_labels.${props.tab_id}`); + }; + return (
-

{t(`config_page.side_menu_labels.${props.tab_id}`)}

+

{getLabel()}

); diff --git a/src-ui/app/config_page/sidebar_section/SidebarSection.module.scss b/src-ui/app/config_page/sidebar_section/SidebarSection.module.scss index 383ef8cb..2e27f0a8 100644 --- a/src-ui/app/config_page/sidebar_section/SidebarSection.module.scss +++ b/src-ui/app/config_page/sidebar_section/SidebarSection.module.scss @@ -9,6 +9,7 @@ flex-direction: column; justify-content: space-between; overflow-y: auto; + // overflow-x: hidden; height: 100%; max-height: 60rem; } @@ -59,7 +60,9 @@ } .tab_text { + overflow: hidden; font-size: 1.6rem; + text-overflow: ellipsis; } .separated_tabs_wrapper { diff --git a/src-ui/app/main_page/main_section/language_selector/language_selector_top_bar/LanguageSelectorTopBar.module.scss b/src-ui/app/main_page/main_section/language_selector/language_selector_top_bar/LanguageSelectorTopBar.module.scss index b2e7d219..9d0bc94a 100644 --- a/src-ui/app/main_page/main_section/language_selector/language_selector_top_bar/LanguageSelectorTopBar.module.scss +++ b/src-ui/app/main_page/main_section/language_selector/language_selector_top_bar/LanguageSelectorTopBar.module.scss @@ -16,7 +16,12 @@ position: absolute; left: 0; background-color: var(--dark_800_color); - padding: 1.2rem; + padding: 0 2rem 0 1.6rem; + height: 100%; + min-width: 8rem; + display: flex; + align-items: center; + justify-content: center; cursor: pointer; &:hover{ background-color: var(--dark_750_color); diff --git a/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/TranslatorSelectorOpenButton.jsx b/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/TranslatorSelectorOpenButton.jsx index e6b68cd4..7a869e8a 100644 --- a/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/TranslatorSelectorOpenButton.jsx +++ b/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/TranslatorSelectorOpenButton.jsx @@ -16,11 +16,12 @@ export const TranslatorSelectorOpenButton = () => { currentSelectedTranslationEngines, } = useLanguageSettings(); - const new_labels = [ - {id: "CTranslate2", label: t("main_page.translator_ctranslate2")} - ]; + // const new_labels = [ + // {id: "CTranslate2", label: "AI\nCTranslate2"} + // ]; - const translation_engines = updateLabelsById(currentTranslationEngines.data, new_labels); + const translation_engines = currentTranslationEngines.data; + // const translation_engines = updateLabelsById(currentTranslationEngines.data, new_labels); const selected_engine_id = currentSelectedTranslationEngines.data[currentSelectedPresetTabNumber.data]; @@ -74,7 +75,7 @@ export const TranslatorSelectorOpenButton = () => { return (
-

{t("main_page.translator")}:

+

{t("main_page.translator")}:

{selected_label}

{is_selected_same_language ? diff --git a/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/translator_selector/TranslatorSelector.jsx b/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/translator_selector/TranslatorSelector.jsx index 45a45fad..54e50f3e 100644 --- a/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/translator_selector/TranslatorSelector.jsx +++ b/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/translator_selector/TranslatorSelector.jsx @@ -33,7 +33,7 @@ export const TranslatorSelector = ({selected_id, translation_engines, is_selecte {t("main_page.translator_selector.is_selected_same_language", { your_language: t("main_page.your_language"), target_language: t("main_page.target_language"), - translator_ctranslate2: t("main_page.translator_ctranslate2"), + ctranslate2: "CTranslate2", })}

diff --git a/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/translator_selector/TranslatorSelector.module.scss b/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/translator_selector/TranslatorSelector.module.scss index efdd0854..b33d0782 100644 --- a/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/translator_selector/TranslatorSelector.module.scss +++ b/src-ui/app/main_page/sidebar_section/language_settings/translator_selector_open_button/translator_selector/TranslatorSelector.module.scss @@ -34,9 +34,9 @@ gap: 1rem; } -$box_size: 6.8rem; +$box_size: 6rem; .box { - width: $box_size; + width: 9.2rem; height: $box_size; background-color: var(--dark_875_color); display: flex; @@ -44,7 +44,7 @@ $box_size: 6.8rem; align-items: center; white-space: pre-wrap; text-align: center; - border-radius: 0.6rem; + border-radius: 0.2rem; cursor: pointer; &:hover { background-color: var(--dark_825_color); diff --git a/src-ui/ui_configs.js b/src-ui/ui_configs.js index ef58fba8..4bee9957 100644 --- a/src-ui/ui_configs.js +++ b/src-ui/ui_configs.js @@ -54,11 +54,11 @@ export const ui_configs = { export const translator_status = [ { id: "DeepL", label: "DeepL", is_available: false }, - { id: "DeepL_API", label: `DeepL\nAPI`, is_available: false }, + { id: "DeepL_API", label: `DeepL API`, is_available: false }, { id: "Google", label: "Google", is_available: false }, { id: "Bing", label: "Bing", is_available: false }, { id: "Papago", label: "Papago", is_available: false }, - { id: "CTranslate2", label: `Internal\n(Default)`, is_available: false }, + { id: "CTranslate2", label: `AI\nCTranslate2`, is_available: false, is_default: true }, ]; export const ctranslate2_weight_type_status = [ diff --git a/src-ui/utils.js b/src-ui/utils.js index 145dc403..96a87c75 100644 --- a/src-ui/utils.js +++ b/src-ui/utils.js @@ -49,4 +49,12 @@ export const updateLabelsById = (data_array, updates) => { const update = updates.find(update_item => update_item.id === item.id); return update ? { ...item, label: update.label } : item; }); +}; + +export const genNumArray = (count, start_from = 0) => { + return [...Array(count).keys()].map(i => i + start_from); +}; + +export const genNumObjArray = (count, start_from = 0) => { + return arrayToObject(genNumArray(count, start_from)); }; \ No newline at end of file