Merge branch 'ui' into develop
This commit is contained in:
@@ -14,7 +14,7 @@ common_error:
|
|||||||
failed_download_weight_whisper: "Whisper weight download error."
|
failed_download_weight_whisper: "Whisper weight download error."
|
||||||
translation_limit: "Translation engine limit error."
|
translation_limit: "Translation engine limit error."
|
||||||
deepl_auth_key_invalid_length: "DeepL auth key length is not correct."
|
deepl_auth_key_invalid_length: "DeepL auth key length is not correct."
|
||||||
deepl_auth_key_failed_authentication: "Authentication failure of deepL auth key."
|
deepl_auth_key_failed_authentication: "Auth Key is incorrect or Usage limit reached."
|
||||||
|
|
||||||
invalid_value_mic_record_timeout: "It cannot be greater than '{{mic_phrase_timeout_label}}' with a value of 0 or more."
|
invalid_value_mic_record_timeout: "It cannot be greater than '{{mic_phrase_timeout_label}}' with a value of 0 or more."
|
||||||
invalid_value_mic_phrase_timeout: "It cannot be set lower than '{{mic_record_timeout_label}}' with a value of 0 or more."
|
invalid_value_mic_phrase_timeout: "It cannot be set lower than '{{mic_record_timeout_label}}' with a value of 0 or more."
|
||||||
@@ -29,13 +29,14 @@ main_page:
|
|||||||
transcription_send: "Voice2Chatbox"
|
transcription_send: "Voice2Chatbox"
|
||||||
transcription_receive: "Speaker2Log"
|
transcription_receive: "Speaker2Log"
|
||||||
foreground: "Foreground"
|
foreground: "Foreground"
|
||||||
|
|
||||||
language_settings: "Language Settings"
|
language_settings: "Language Settings"
|
||||||
your_language: "Your Language"
|
your_language: "Your Language"
|
||||||
translate_each_other_label: "Translate Each Other"
|
translate_each_other_label: "Translate Each Other"
|
||||||
swap_button_label: "Swap Languages"
|
swap_button_label: "Swap Languages"
|
||||||
target_language: "Target Language"
|
target_language: "Target Language"
|
||||||
translator: "Translator"
|
translator: "Translator"
|
||||||
# translator_label_default: "Default"
|
translator_label_default: "Default"
|
||||||
|
|
||||||
translator_selector:
|
translator_selector:
|
||||||
is_selected_same_language: "Since the same language is selected for both '{{your_language}}' and '{{target_language}}', only '{{ctranslate2}}' is available."
|
is_selected_same_language: "Since the same language is selected for both '{{your_language}}' and '{{target_language}}', only '{{ctranslate2}}' is available."
|
||||||
@@ -83,11 +84,11 @@ config_page:
|
|||||||
|
|
||||||
device:
|
device:
|
||||||
check_volume: "Check Volume"
|
check_volume: "Check Volume"
|
||||||
|
label_auto_select: "Auto Select"
|
||||||
|
label_host: "Host/Driver"
|
||||||
|
label_device: "Device"
|
||||||
mic_host_device:
|
mic_host_device:
|
||||||
label: "Mic Device"
|
label: "Mic Device"
|
||||||
label_auto_select: "Auto Select"
|
|
||||||
label_host: "Host/Driver"
|
|
||||||
label_device: "Device"
|
|
||||||
mic_dynamic_energy_threshold:
|
mic_dynamic_energy_threshold:
|
||||||
label_for_automatic: "Mic Energy Threshold (Current Setting: Automatic)"
|
label_for_automatic: "Mic Energy Threshold (Current Setting: Automatic)"
|
||||||
desc_for_automatic: "Automatically determine microphone input sensitivity."
|
desc_for_automatic: "Automatically determine microphone input sensitivity."
|
||||||
@@ -95,8 +96,6 @@ config_page:
|
|||||||
desc_for_manual: "Manually determine the microphone input sensitivity using the slider. Press the microphone icon to input your voice and adjust the sensitivity while monitoring the volume."
|
desc_for_manual: "Manually determine the microphone input sensitivity using the slider. Press the microphone icon to input your voice and adjust the sensitivity while monitoring the volume."
|
||||||
speaker_device:
|
speaker_device:
|
||||||
label: "Speaker Device"
|
label: "Speaker Device"
|
||||||
label_auto_select: "Auto Select"
|
|
||||||
label_device: "Device"
|
|
||||||
speaker_dynamic_energy_threshold:
|
speaker_dynamic_energy_threshold:
|
||||||
label_for_automatic: "Speaker Energy Threshold (Current Setting: Automatic)"
|
label_for_automatic: "Speaker Energy Threshold (Current Setting: Automatic)"
|
||||||
desc_for_automatic: "Automatically determine speaker input sensitivity."
|
desc_for_automatic: "Automatically determine speaker input sensitivity."
|
||||||
@@ -133,11 +132,10 @@ config_page:
|
|||||||
deepl_auth_key:
|
deepl_auth_key:
|
||||||
label: "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."
|
desc: "Please select {{translator}} on the main screen with DeepL_API when using. ※Some languages may not be supported."
|
||||||
|
open_auth_key_webpage: "Open DeepL Account Webpage"
|
||||||
save: "Save"
|
save: "Save"
|
||||||
edit: "Edit"
|
edit: "Edit"
|
||||||
open_auth_key_webpage: "Open DeepL Account Webpage"
|
|
||||||
auth_key_success: "Auth key update completed."
|
auth_key_success: "Auth key update completed."
|
||||||
auth_key_error: "Auth Key is incorrect or Usage limit reached."
|
|
||||||
|
|
||||||
transcription:
|
transcription:
|
||||||
section_label_mic: "Mic"
|
section_label_mic: "Mic"
|
||||||
@@ -197,11 +195,11 @@ config_page:
|
|||||||
ui_scaling: "UI Scaling"
|
ui_scaling: "UI Scaling"
|
||||||
display_duration: "Display duration"
|
display_duration: "Display duration"
|
||||||
fadeout_duration: "Fadeout duration"
|
fadeout_duration: "Fadeout duration"
|
||||||
|
common_settings: "Common Settings"
|
||||||
tracker: "Tracker"
|
tracker: "Tracker"
|
||||||
hmd: "HMD"
|
hmd: "HMD"
|
||||||
left_hand: "Left hand"
|
left_hand: "Left hand"
|
||||||
right_hand: "Right hand"
|
right_hand: "Right hand"
|
||||||
common_settings: "Common Settings"
|
|
||||||
overlay_show_only_translated_messages:
|
overlay_show_only_translated_messages:
|
||||||
label: "Show Only Translated Messages"
|
label: "Show Only Translated Messages"
|
||||||
|
|
||||||
|
|||||||
@@ -12,30 +12,31 @@ common_error:
|
|||||||
threshold_invalid_value: "{{min}} から {{max}} までの数値で設定できます。"
|
threshold_invalid_value: "{{min}} から {{max}} までの数値で設定できます。"
|
||||||
failed_download_weight_ctranslate2: "CTranslate2 モデルのダウンロードに失敗しました。"
|
failed_download_weight_ctranslate2: "CTranslate2 モデルのダウンロードに失敗しました。"
|
||||||
failed_download_weight_whisper: "Whisper モデルのダウンロードに失敗しました。"
|
failed_download_weight_whisper: "Whisper モデルのダウンロードに失敗しました。"
|
||||||
translation_limit: "翻訳エンジンの使用制限に達したか、一時的に制限がかけられています。"
|
translation_limit: "翻訳エンジンの使用制限に達したか、一時的に利用制限がかけられています。"
|
||||||
deepl_auth_key_invalid_length: "認証キーの文字数が間違っています。"
|
deepl_auth_key_invalid_length: "認証キーの文字数が間違っています。"
|
||||||
deepl_auth_key_failed_authentication: "認証キーが間違っているか、API使用制限が上限に達しています。"
|
deepl_auth_key_failed_authentication: "認証キーが間違っているか、API使用制限が上限に達しています。"
|
||||||
|
|
||||||
invalid_value_mic_record_timeout: "0 以上で 「{{mic_phrase_timeout_label}}」 より大きくすることはできません。"
|
invalid_value_mic_record_timeout: "0 以上で 「{{mic_phrase_timeout_label}}」 より大きくすることはできません。"
|
||||||
invalid_value_mic_phrase_timeout: "0 以上で 「{{mic_record_timeout_label}}」 より小さくすることはできません。"
|
invalid_value_mic_phrase_timeout: "0 以上で 「{{mic_record_timeout_label}}」 より小さくすることはできません。"
|
||||||
invalid_value_mic_max_phrase: "0以上の数値を設定できます。"
|
invalid_value_mic_max_phrase: "0 以上の数値を設定できます。"
|
||||||
|
|
||||||
invalid_value_speaker_record_timeout: "0 以上で 「{{speaker_phrase_timeout_label}}」 より大きくすることはできません。"
|
invalid_value_speaker_record_timeout: "0 以上で 「{{speaker_phrase_timeout_label}}」 より大きくすることはできません。"
|
||||||
invalid_value_speaker_phrase_timeout: "0 以上で 「{{speaker_record_timeout_label}}」 より小さくすることはできません。"
|
invalid_value_speaker_phrase_timeout: "0 以上で 「{{speaker_record_timeout_label}}」 より小さくすることはできません。"
|
||||||
invalid_value_speaker_max_phrase: "0以上の数値を設定できます。"
|
invalid_value_speaker_max_phrase: "0 以上の数値を設定できます。"
|
||||||
|
|
||||||
main_page:
|
main_page:
|
||||||
translation: "翻訳"
|
translation: "翻訳"
|
||||||
transcription_send: "音声認識(マイク)"
|
transcription_send: "音声認識 マイク"
|
||||||
transcription_receive: "音声認識(スピーカー)"
|
transcription_receive: "音声認識 スピーカー"
|
||||||
foreground: "最前面固定"
|
foreground: "最前面固定"
|
||||||
|
|
||||||
language_settings: "言語設定"
|
language_settings: "言語設定"
|
||||||
your_language: "あなたの言語"
|
your_language: "あなたの言語"
|
||||||
translate_each_other_label: "双方向に翻訳"
|
translate_each_other_label: "双方向に翻訳"
|
||||||
swap_button_label: "言語を入れ替え"
|
swap_button_label: "言語を入れ替え"
|
||||||
target_language: "相手の言語"
|
target_language: "相手の言語"
|
||||||
translator: "翻訳エンジン"
|
translator: "翻訳エンジン"
|
||||||
# translator_label_default: "Default"
|
translator_label_default: "デフォルト"
|
||||||
|
|
||||||
translator_selector:
|
translator_selector:
|
||||||
is_selected_same_language: "「{{your_language}}」と「{{target_language}}」に同じ言語が選択がされているため、「{{ctranslate2}}」のみが使用できます。"
|
is_selected_same_language: "「{{your_language}}」と「{{target_language}}」に同じ言語が選択がされているため、「{{ctranslate2}}」のみが使用できます。"
|
||||||
@@ -83,23 +84,22 @@ config_page:
|
|||||||
|
|
||||||
device:
|
device:
|
||||||
check_volume: "音量チェック"
|
check_volume: "音量チェック"
|
||||||
|
label_auto_select: "自動選択"
|
||||||
|
label_host: "ホスト/ドライバー"
|
||||||
|
label_device: "デバイス"
|
||||||
mic_host_device:
|
mic_host_device:
|
||||||
label: "マイク (デバイス)"
|
label: "マイク (デバイス)"
|
||||||
label_auto_select: "自動選択"
|
|
||||||
label_host: "ホスト/ドライバー"
|
|
||||||
label_device: "デバイス"
|
|
||||||
mic_dynamic_energy_threshold:
|
mic_dynamic_energy_threshold:
|
||||||
label_for_automatic: "マイク入力感度の調整 (現在の設定: 自動)"
|
label_for_automatic: "マイク入力感度の調整 (現在の設定: 自動)"
|
||||||
desc_for_automatic: "マイクの入力感度を自動的に調節する。"
|
desc_for_automatic: "マイクの入力感度を自動的に調節する。"
|
||||||
label_for_manual: "マイク入力感度の調整 (現在の設定: 手動)"
|
label_for_manual: "マイク入力感度の調整 (現在の設定: 手動)"
|
||||||
desc_for_manual: "スライダーを調整して入力感度を手動で決められます。マイクのアイコンを押すと、実際に声を入力し、音量を確認しながら調節できます。"
|
desc_for_manual: "スライダーを調整して入力感度を手動で決められます。マイクのアイコンを押すと、実際に声を入力し、音量を確認しながら調節できます。"
|
||||||
speaker_device:
|
speaker_device:
|
||||||
label: "スピーカー (デバイス)"
|
label: "スピーカー (デバイス)"
|
||||||
label_auto_select: "自動選択"
|
|
||||||
speaker_dynamic_energy_threshold:
|
speaker_dynamic_energy_threshold:
|
||||||
label_for_automatic: "スピーカー入力感度の調整 (現在の設定: 自動)"
|
label_for_automatic: "スピーカー入力感度の調整 (現在の設定: 自動)"
|
||||||
desc_for_automatic: "スピーカーの入力感度を自動的に調節する。"
|
desc_for_automatic: "スピーカーの入力感度を自動的に調節する。"
|
||||||
label_for_manual: "スピーカー入力感度の調整 (現在の設定: 手動)"
|
label_for_manual: "スピーカー入力感度の調整 (現在の設定: 手動)"
|
||||||
desc_for_manual: "スライダーを調整して入力感度を手動で決められます。ヘッドフォンのアイコンを押すと、実際に音声を聞き取り、音量を確認しながら調節できます。"
|
desc_for_manual: "スライダーを調整して入力感度を手動で決められます。ヘッドフォンのアイコンを押すと、実際に音声を聞き取り、音量を確認しながら調節できます。"
|
||||||
|
|
||||||
appearance:
|
appearance:
|
||||||
@@ -125,8 +125,8 @@ config_page:
|
|||||||
ctranslate2_weight_type:
|
ctranslate2_weight_type:
|
||||||
label: "AI翻訳 {{ctranslate2}} のモデルタイプ"
|
label: "AI翻訳 {{ctranslate2}} のモデルタイプ"
|
||||||
desc: "翻訳エンジン「{{ctranslate2}}」で翻訳する際に、使用する翻訳モデルを選択できます。"
|
desc: "翻訳エンジン「{{ctranslate2}}」で翻訳する際に、使用する翻訳モデルを選択できます。"
|
||||||
small: "通常モデル ({{capacity}})"
|
small: "通常モデル ({{capacity}})"
|
||||||
large: "高精度モデル ({{capacity}})"
|
large: "高精度モデル ({{capacity}})"
|
||||||
ctranslate2_compute_device:
|
ctranslate2_compute_device:
|
||||||
label: "AI翻訳 {{ctranslate2}} の処理デバイス"
|
label: "AI翻訳 {{ctranslate2}} の処理デバイス"
|
||||||
deepl_auth_key:
|
deepl_auth_key:
|
||||||
@@ -169,8 +169,8 @@ config_page:
|
|||||||
whisper_weight_type:
|
whisper_weight_type:
|
||||||
label: "Whisperモデルのタイプ"
|
label: "Whisperモデルのタイプ"
|
||||||
desc: "容量が大きいモデルほど精度は高いですが、その分CPUやGPUを占有します。\n※特にmediumより容量の大きいモデルは、CPU/GPUの性能によっては使用すらも困難です。"
|
desc: "容量が大きいモデルほど精度は高いですが、その分CPUやGPUを占有します。\n※特にmediumより容量の大きいモデルは、CPU/GPUの性能によっては使用すらも困難です。"
|
||||||
model_template: "{{model_name}} モデル ({{capacity}})"
|
model_template: "{{model_name}} モデル ({{capacity}})"
|
||||||
recommended_model_template: "{{model_name}} モデル ({{capacity}}) (推奨)"
|
recommended_model_template: "{{model_name}} モデル ({{capacity}}) [推奨]"
|
||||||
whisper_compute_device:
|
whisper_compute_device:
|
||||||
label: "Whisperで使用する処理デバイス"
|
label: "Whisperで使用する処理デバイス"
|
||||||
|
|
||||||
@@ -196,17 +196,17 @@ config_page:
|
|||||||
display_duration: "表示時間"
|
display_duration: "表示時間"
|
||||||
fadeout_duration: "フェードアウト時間"
|
fadeout_duration: "フェードアウト時間"
|
||||||
common_settings: "共通設定"
|
common_settings: "共通設定"
|
||||||
|
tracker: "表示するトラッカーの位置"
|
||||||
hmd: "HMD"
|
hmd: "HMD"
|
||||||
left_hand: "左手"
|
left_hand: "左手"
|
||||||
right_hand: "右手"
|
right_hand: "右手"
|
||||||
tracker: "表示するトラッカーの位置"
|
|
||||||
overlay_show_only_translated_messages:
|
overlay_show_only_translated_messages:
|
||||||
label: "翻訳後のメッセージのみ表示する"
|
label: "翻訳後のメッセージのみ表示する"
|
||||||
|
|
||||||
others:
|
others:
|
||||||
section_label_sounds: "サウンド"
|
section_label_sounds: "サウンド"
|
||||||
auto_clear_the_message_box:
|
auto_clear_the_message_box:
|
||||||
label: "送信後はチャットボックスを空にする"
|
label: "送信後はメッセージ入力欄を空にする"
|
||||||
send_only_translated_messages:
|
send_only_translated_messages:
|
||||||
label: "翻訳後のメッセージのみ送信する"
|
label: "翻訳後のメッセージのみ送信する"
|
||||||
auto_export_message_logs:
|
auto_export_message_logs:
|
||||||
@@ -229,11 +229,11 @@ config_page:
|
|||||||
toggle_vrct_visibility:
|
toggle_vrct_visibility:
|
||||||
label: "VRCTの最小化/アクティブ化の切り替え"
|
label: "VRCTの最小化/アクティブ化の切り替え"
|
||||||
toggle_translation:
|
toggle_translation:
|
||||||
label: "{{translation}}機能切り替え"
|
label: "「{{translation}}」 オン/オフの切り替え"
|
||||||
toggle_transcription_send:
|
toggle_transcription_send:
|
||||||
label: "{{transcription_send}}機能切り替え"
|
label: "「{{transcription_send}}」 オン/オフの切り替え"
|
||||||
toggle_transcription_receive:
|
toggle_transcription_receive:
|
||||||
label: "{{transcription_receive}}機能切り替え"
|
label: "「{{transcription_receive}}」 オン/オフの切り替え"
|
||||||
|
|
||||||
advanced_settings:
|
advanced_settings:
|
||||||
osc_ip_address:
|
osc_ip_address:
|
||||||
|
|||||||
102
locales/ko.yml
102
locales/ko.yml
@@ -29,13 +29,17 @@ main_page:
|
|||||||
transcription_send: "음성인식 (마이크)"
|
transcription_send: "음성인식 (마이크)"
|
||||||
transcription_receive: "음성인식 (스피커)"
|
transcription_receive: "음성인식 (스피커)"
|
||||||
foreground: "항상 위로"
|
foreground: "항상 위로"
|
||||||
|
|
||||||
language_settings: "언어 설정"
|
language_settings: "언어 설정"
|
||||||
your_language: "당신의 언어"
|
your_language: "당신의 언어"
|
||||||
translate_each_other_label: "양방향으로 번역"
|
translate_each_other_label: "양방향으로 번역"
|
||||||
swap_button_label: "언어 교체"
|
swap_button_label: "언어 교체"
|
||||||
target_language: "상대방의 언어"
|
target_language: "상대방의 언어"
|
||||||
translator: "번역 엔진"
|
translator: "번역 엔진"
|
||||||
# translator_label_default: "기본값"
|
translator_label_default: "기본값"
|
||||||
|
|
||||||
|
translator_selector:
|
||||||
|
is_selected_same_language:
|
||||||
|
|
||||||
message_log:
|
message_log:
|
||||||
all: "전체"
|
all: "전체"
|
||||||
@@ -43,6 +47,9 @@ main_page:
|
|||||||
received: "수신"
|
received: "수신"
|
||||||
system: "시스템"
|
system: "시스템"
|
||||||
|
|
||||||
|
show_resend_button:
|
||||||
|
resend_button_on_hover_desc:
|
||||||
|
|
||||||
state_text_enabled: "Enabled"
|
state_text_enabled: "Enabled"
|
||||||
state_text_disabled: "Disabled"
|
state_text_disabled: "Disabled"
|
||||||
|
|
||||||
@@ -54,24 +61,33 @@ main_page:
|
|||||||
updating: "업데이트 중..."
|
updating: "업데이트 중..."
|
||||||
|
|
||||||
update_modal:
|
update_modal:
|
||||||
update_software: "새 버전을 다운로드하고 재시작합니다.\n조금 시간이 걸립니다. 지금 시작할까요?"
|
cpu_desc:
|
||||||
deny_update_software: "나중에 하기"
|
cuda_desc:
|
||||||
accept_update_software: "업데이트 및 재시작"
|
cuda_compare_cpu_desc:
|
||||||
|
cuda_disk_space_desc:
|
||||||
|
close_modal:
|
||||||
|
download_latest_and_restart:
|
||||||
|
is_latest_version_already:
|
||||||
|
is_current_compute_device:
|
||||||
|
|
||||||
config_page:
|
config_page:
|
||||||
version: "버전 {{version}}"
|
version: "버전 {{version}}"
|
||||||
|
model_download_button_label:
|
||||||
side_menu_labels:
|
side_menu_labels:
|
||||||
|
device:
|
||||||
appearance: "모양"
|
appearance: "모양"
|
||||||
translation: "번역"
|
translation: "번역"
|
||||||
transcription: "음성인식"
|
transcription: "음성인식"
|
||||||
others: "기타"
|
others: "기타"
|
||||||
|
hotkeys:
|
||||||
advanced_settings: "고급 설정"
|
advanced_settings: "고급 설정"
|
||||||
|
|
||||||
device:
|
device:
|
||||||
mic_host:
|
check_volume:
|
||||||
label: "마이크 호스트/드라이버"
|
label_auto_select:
|
||||||
mic_device:
|
label_host: "호스트/드라이버"
|
||||||
|
label_device:
|
||||||
|
mic_host_device:
|
||||||
label: "마이크 장치"
|
label: "마이크 장치"
|
||||||
mic_dynamic_energy_threshold:
|
mic_dynamic_energy_threshold:
|
||||||
label_for_automatic: "음성 입력 최소 볼륨 (현재 설정: 자동)"
|
label_for_automatic: "음성 입력 최소 볼륨 (현재 설정: 자동)"
|
||||||
@@ -111,15 +127,20 @@ config_page:
|
|||||||
desc: "오프라인 번역 시의 번역 모델을 변경합니다."
|
desc: "오프라인 번역 시의 번역 모델을 변경합니다."
|
||||||
small: "일반 모델 ({{capacity}})"
|
small: "일반 모델 ({{capacity}})"
|
||||||
large: "정밀 모델 ({{capacity}})"
|
large: "정밀 모델 ({{capacity}})"
|
||||||
|
ctranslate2_compute_device:
|
||||||
|
label:
|
||||||
deepl_auth_key:
|
deepl_auth_key:
|
||||||
label: "DeepL 인증키"
|
label: "DeepL 인증키"
|
||||||
desc: "사용시 메인화면에 있는 {{translator}}를 DeepL_API로 변경해 주세요.\n지원하지 않는 언어도 있습니다."
|
desc: "사용시 메인화면에 있는 {{translator}}를 DeepL_API로 변경해 주세요.\n지원하지 않는 언어도 있습니다."
|
||||||
open_auth_key_webpage: "DeepL 계정 페이지 열기"
|
open_auth_key_webpage: "DeepL 계정 페이지 열기"
|
||||||
|
save:
|
||||||
|
edit:
|
||||||
auth_key_success: "인증키 갱신이 완료되었습니다."
|
auth_key_success: "인증키 갱신이 완료되었습니다."
|
||||||
|
|
||||||
transcription:
|
transcription:
|
||||||
section_label_mic: "마이크"
|
section_label_mic: "마이크"
|
||||||
section_label_speaker: "스피커"
|
section_label_speaker: "스피커"
|
||||||
|
section_label_transcription_engines:
|
||||||
mic_record_timeout:
|
mic_record_timeout:
|
||||||
label: "최대 무음 시간"
|
label: "최대 무음 시간"
|
||||||
desc: "무음을 감지하고 설정된 시간(초)만큼의 시간이 지나면 음성 입력이 종료된 것으로 판단합니다."
|
desc: "무음을 감지하고 설정된 시간(초)만큼의 시간이 지나면 음성 입력이 종료된 것으로 판단합니다."
|
||||||
@@ -143,29 +164,76 @@ config_page:
|
|||||||
speaker_max_phrase:
|
speaker_max_phrase:
|
||||||
label: "최대 입력 절(phrases) 수"
|
label: "최대 입력 절(phrases) 수"
|
||||||
desc: "식된 단어 수의 하한값으로, 이 수치를 초과하는 경우에만 결과를 로그에 표시합니다."
|
desc: "식된 단어 수의 하한값으로, 이 수치를 초과하는 경우에만 결과를 로그에 표시합니다."
|
||||||
use_whisper_feature:
|
select_transcription_engine:
|
||||||
label: "음성 인식에 Whisper 모델을 사용"
|
label:
|
||||||
desc: "일부 언어에서는 음성 인식의 정확도가 향상될 수 있어요. 음성 인식 중 CPU 사용률이 올라가기 때문에 사용하시는 PC의 사양을 고려하여 이 기능을 사용해주세요."
|
|
||||||
whisper_weight_type:
|
whisper_weight_type:
|
||||||
label: "Whisper 모델 타입"
|
label: "Whisper 모델 타입"
|
||||||
# desc: "기본적으로 용량이 많은 모델일수록 정밀도는 높지만, 음성 인식의 시간이 늘어나며 CPU 사용률도 늘어나요.각 모델의 설명은 문서를 참조해주세요.\n※특히 medium보다 용량이 큰 모델은 CPU의 성능에 따라서는 사용조차 어려울 수 있어요. "
|
desc:
|
||||||
model_template: "{{model_name}} 모델 ({{capacity}})"
|
model_template: "{{model_name}} 모델 ({{capacity}})"
|
||||||
recommended_model_template: "{{model_name}} 모델 ({{capacity}}) (권장)"
|
recommended_model_template: "{{model_name}} 모델 ({{capacity}}) (권장)"
|
||||||
|
whisper_compute_device:
|
||||||
|
label:
|
||||||
|
|
||||||
|
vr:
|
||||||
|
single_line:
|
||||||
|
multi_lines:
|
||||||
|
overlay_enable:
|
||||||
|
restore_default_settings:
|
||||||
|
position:
|
||||||
|
rotation:
|
||||||
|
x_position:
|
||||||
|
y_position:
|
||||||
|
z_position:
|
||||||
|
x_rotation:
|
||||||
|
y_rotation:
|
||||||
|
z_rotation:
|
||||||
|
sample_text_button:
|
||||||
|
start:
|
||||||
|
stop:
|
||||||
|
sample_text:
|
||||||
|
opacity:
|
||||||
|
ui_scaling:
|
||||||
|
display_duration:
|
||||||
|
fadeout_duration:
|
||||||
|
common_settings:
|
||||||
|
tracker:
|
||||||
|
hmd:
|
||||||
|
left_hand:
|
||||||
|
right_hand:
|
||||||
|
overlay_show_only_translated_messages:
|
||||||
|
label:
|
||||||
|
|
||||||
others:
|
others:
|
||||||
|
section_label_sounds:
|
||||||
auto_clear_the_message_box:
|
auto_clear_the_message_box:
|
||||||
label: "챗박스 자동 삭제"
|
label: "챗박스 자동 삭제"
|
||||||
send_only_translated_messages:
|
send_only_translated_messages:
|
||||||
label: "번역된 메시지만 전송"
|
label: "번역된 메시지만 전송"
|
||||||
notice_xsoverlay:
|
|
||||||
label: "XSOverlay에서 알림 수신 기능 활성화"
|
|
||||||
desc: "수신된 메시지를 XSOverlay의 기능을 통해 알림으로 받아볼 수 있습니다."
|
|
||||||
auto_export_message_logs:
|
auto_export_message_logs:
|
||||||
label: "대화 로그 자동 저장"
|
label: "대화 로그 자동 저장"
|
||||||
desc: "logs 폴더에 텍스트 파일로 로그가 저장됩니다."
|
desc: "logs 폴더에 텍스트 파일로 로그가 저장됩니다."
|
||||||
|
vrc_mic_mute_sync:
|
||||||
|
label:
|
||||||
|
desc:
|
||||||
send_message_to_vrc:
|
send_message_to_vrc:
|
||||||
label: "VRChat에 메시지 전송"
|
label: "VRChat에 메시지 전송"
|
||||||
desc: "VRChat에 메시지를 보내지 않고 사용할 수 있는 방법이 있지만 지원되지 않습니다. VRChat에 메시지를 보내려면 이 기능을 활성화하세요."
|
desc: "VRChat에 메시지를 보내지 않고 사용할 수 있는 방법이 있지만 지원되지 않습니다. VRChat에 메시지를 보내려면 이 기능을 활성화하세요."
|
||||||
|
notification_vrc_sfx:
|
||||||
|
label:
|
||||||
|
desc:
|
||||||
|
send_received_message_to_vrc:
|
||||||
|
label:
|
||||||
|
desc:
|
||||||
|
|
||||||
|
hotkeys:
|
||||||
|
toggle_vrct_visibility:
|
||||||
|
label:
|
||||||
|
toggle_translation:
|
||||||
|
label:
|
||||||
|
toggle_transcription_send:
|
||||||
|
label:
|
||||||
|
toggle_transcription_receive:
|
||||||
|
label:
|
||||||
|
|
||||||
advanced_settings:
|
advanced_settings:
|
||||||
osc_ip_address:
|
osc_ip_address:
|
||||||
@@ -173,4 +241,6 @@ config_page:
|
|||||||
osc_port:
|
osc_port:
|
||||||
label: "OSC 포트"
|
label: "OSC 포트"
|
||||||
open_config_filepath:
|
open_config_filepath:
|
||||||
label: "설정 파일 열기"
|
label: "설정 파일 열기"
|
||||||
|
switch_compute_device:
|
||||||
|
label:
|
||||||
@@ -29,13 +29,17 @@ main_page:
|
|||||||
transcription_send: "你的语音转文字"
|
transcription_send: "你的语音转文字"
|
||||||
transcription_receive: "他人语音转文字"
|
transcription_receive: "他人语音转文字"
|
||||||
foreground: "顶层显示"
|
foreground: "顶层显示"
|
||||||
|
|
||||||
language_settings: "语言设定"
|
language_settings: "语言设定"
|
||||||
your_language: "你的语言"
|
your_language: "你的语言"
|
||||||
translate_each_other_label: "双向翻译"
|
translate_each_other_label: "双向翻译"
|
||||||
swap_button_label: "互换"
|
swap_button_label: "互换"
|
||||||
target_language: "目标语言"
|
target_language: "目标语言"
|
||||||
translator: "翻译器"
|
translator: "翻译器"
|
||||||
# translator_label_default: "默认"
|
translator_label_default: "默认"
|
||||||
|
|
||||||
|
translator_selector:
|
||||||
|
is_selected_same_language:
|
||||||
|
|
||||||
message_log:
|
message_log:
|
||||||
all: "全部"
|
all: "全部"
|
||||||
@@ -43,6 +47,9 @@ main_page:
|
|||||||
received: "接受"
|
received: "接受"
|
||||||
system: "系统"
|
system: "系统"
|
||||||
|
|
||||||
|
show_resend_button:
|
||||||
|
resend_button_on_hover_desc:
|
||||||
|
|
||||||
state_text_enabled: "启用"
|
state_text_enabled: "启用"
|
||||||
state_text_disabled: "停用"
|
state_text_disabled: "停用"
|
||||||
|
|
||||||
@@ -54,24 +61,33 @@ main_page:
|
|||||||
updating: "更新中..."
|
updating: "更新中..."
|
||||||
|
|
||||||
update_modal:
|
update_modal:
|
||||||
update_software_desc: "下载新版本并自动启动\n会花少许时间,现在更新吗?"
|
cpu_desc:
|
||||||
deny_update_software: "稍后再说"
|
cuda_desc:
|
||||||
accept_update_software: "更新后自动启动"
|
cuda_compare_cpu_desc:
|
||||||
|
cuda_disk_space_desc:
|
||||||
|
close_modal:
|
||||||
|
download_latest_and_restart:
|
||||||
|
is_latest_version_already:
|
||||||
|
is_current_compute_device:
|
||||||
|
|
||||||
config_page:
|
config_page:
|
||||||
version: "版本 {{version}}"
|
version: "版本 {{version}}"
|
||||||
|
model_download_button_label:
|
||||||
side_menu_labels:
|
side_menu_labels:
|
||||||
|
device:
|
||||||
appearance: "外观"
|
appearance: "外观"
|
||||||
translation: "翻译"
|
translation: "翻译"
|
||||||
transcription: "转录"
|
transcription: "转录"
|
||||||
others: "其他"
|
others: "其他"
|
||||||
|
hotkeys:
|
||||||
advanced_settings: "高级设置"
|
advanced_settings: "高级设置"
|
||||||
|
|
||||||
device:
|
device:
|
||||||
mic_host:
|
check_volume: "Check Volume"
|
||||||
label: "麦克风(host/driver)"
|
label_auto_select: "Auto Select"
|
||||||
mic_device:
|
label_host: "Host/Driver"
|
||||||
|
label_device: "Device"
|
||||||
|
mic_host_device:
|
||||||
label: "麦克风 (设备)"
|
label: "麦克风 (设备)"
|
||||||
mic_dynamic_energy_threshold:
|
mic_dynamic_energy_threshold:
|
||||||
label_for_automatic: "麦克风输入阈值(当前设置:自动)"
|
label_for_automatic: "麦克风输入阈值(当前设置:自动)"
|
||||||
@@ -111,15 +127,20 @@ config_page:
|
|||||||
desc: "可以选择用于离线翻译的翻译模型"
|
desc: "可以选择用于离线翻译的翻译模型"
|
||||||
small: "普通模型 ({{capacity}})"
|
small: "普通模型 ({{capacity}})"
|
||||||
large: "高精度模型 ({{capacity}})"
|
large: "高精度模型 ({{capacity}})"
|
||||||
|
ctranslate2_compute_device:
|
||||||
|
label:
|
||||||
deepl_auth_key:
|
deepl_auth_key:
|
||||||
label: "DeepL 授权密匙"
|
label: "DeepL 授权密匙"
|
||||||
desc: "在使用的时候,使用时请在主屏幕上通过 DeepL_API 选择 {{translator}}\n※某些语言可能不支持"
|
desc: "在使用的时候,使用时请在主屏幕上通过 DeepL_API 选择 {{translator}}\n※某些语言可能不支持"
|
||||||
open_auth_key_webpage: "打开DeepL账号页面"
|
open_auth_key_webpage: "打开DeepL账号页面"
|
||||||
|
save:
|
||||||
|
edit:
|
||||||
auth_key_success: "授权密匙认证完成。"
|
auth_key_success: "授权密匙认证完成。"
|
||||||
|
|
||||||
transcription:
|
transcription:
|
||||||
section_label_mic: "你的麦克风"
|
section_label_mic: "你的麦克风"
|
||||||
section_label_speaker: "他人声音"
|
section_label_speaker: "他人声音"
|
||||||
|
section_label_transcription_engines:
|
||||||
mic_record_timeout:
|
mic_record_timeout:
|
||||||
label: "语音输入结束后的静音时间"
|
label: "语音输入结束后的静音时间"
|
||||||
desc: "当检测到静音并经过设定的秒数后,语音输入即被视为完成。"
|
desc: "当检测到静音并经过设定的秒数后,语音输入即被视为完成。"
|
||||||
@@ -143,31 +164,47 @@ config_page:
|
|||||||
speaker_max_phrase:
|
speaker_max_phrase:
|
||||||
label: "语音接收时的最小单词数"
|
label: "语音接收时的最小单词数"
|
||||||
desc: "转录字数的下限,只有超过这个数字,才会记录转录结果"
|
desc: "转录字数的下限,只有超过这个数字,才会记录转录结果"
|
||||||
use_whisper_feature:
|
select_transcription_engine:
|
||||||
label: "使用Whisper模型翻译"
|
label:
|
||||||
desc: "在某些语言中,语音识别的准确性可能会提高.语音识别的过程中,CPU占有率可能会提高,请根据你的pc性能来决定是否使用它."
|
|
||||||
whisper_weight_type:
|
whisper_weight_type:
|
||||||
label: "选择某个Whisper模型"
|
label: "选择某个Whisper模型"
|
||||||
# desc: |-
|
desc:
|
||||||
# 通常来说,容量越大的模型精度也会越高,但也会增加文字显示所需要的时间和CPU的使用率。请浏览各个模型的文档
|
|
||||||
# ※特别是大于medium容量的模型、因CPU性能原因甚至无法使用。
|
|
||||||
model_template: "{{model_name}} 模型 ({{capacity}})"
|
model_template: "{{model_name}} 模型 ({{capacity}})"
|
||||||
recommended_model_template: "{{model_name}} 模型 ({{capacity}}) (推荐)"
|
recommended_model_template: "{{model_name}} 模型 ({{capacity}}) (推荐)"
|
||||||
|
whisper_compute_device:
|
||||||
|
label:
|
||||||
|
|
||||||
vr:
|
vr:
|
||||||
|
single_line:
|
||||||
|
multi_lines:
|
||||||
|
overlay_enable:
|
||||||
restore_default_settings: "恢复默认设置"
|
restore_default_settings: "恢复默认设置"
|
||||||
opacity: "透明度"
|
position:
|
||||||
ui_scaling: "大小"
|
rotation:
|
||||||
x_position: "X轴(左右)"
|
x_position: "X轴(左右)"
|
||||||
y_position: "Y轴(上下)"
|
y_position: "Y轴(上下)"
|
||||||
z_position: "Z轴(前后)"
|
z_position: "Z轴(前后)"
|
||||||
x_rotation: "X轴旋转"
|
x_rotation: "X轴旋转"
|
||||||
y_rotation: "Y轴旋转"
|
y_rotation: "Y轴旋转"
|
||||||
z_rotation: "Z轴旋转"
|
z_rotation: "Z轴旋转"
|
||||||
|
sample_text_button:
|
||||||
|
start:
|
||||||
|
stop:
|
||||||
|
sample_text:
|
||||||
|
opacity: "透明度"
|
||||||
|
ui_scaling: "大小"
|
||||||
display_duration: "显示持续时间"
|
display_duration: "显示持续时间"
|
||||||
fadeout_duration: "渐隐持续时间"
|
fadeout_duration: "渐隐持续时间"
|
||||||
|
common_settings:
|
||||||
|
tracker:
|
||||||
|
hmd:
|
||||||
|
left_hand:
|
||||||
|
right_hand:
|
||||||
|
overlay_show_only_translated_messages:
|
||||||
|
label:
|
||||||
|
|
||||||
others:
|
others:
|
||||||
|
section_label_sounds:
|
||||||
auto_clear_the_message_box:
|
auto_clear_the_message_box:
|
||||||
label: "发言后自动清空chatbox"
|
label: "发言后自动清空chatbox"
|
||||||
send_only_translated_messages:
|
send_only_translated_messages:
|
||||||
@@ -181,6 +218,22 @@ config_page:
|
|||||||
send_message_to_vrc:
|
send_message_to_vrc:
|
||||||
label: "发送信息至VRChat"
|
label: "发送信息至VRChat"
|
||||||
desc: "不发送信息至VRChat的情况下也能使用它,但该功能现在并未完成.在想要发送信息时,请不要忘记打开这个功能."
|
desc: "不发送信息至VRChat的情况下也能使用它,但该功能现在并未完成.在想要发送信息时,请不要忘记打开这个功能."
|
||||||
|
notification_vrc_sfx:
|
||||||
|
label:
|
||||||
|
desc:
|
||||||
|
send_received_message_to_vrc:
|
||||||
|
label:
|
||||||
|
desc:
|
||||||
|
|
||||||
|
hotkeys:
|
||||||
|
toggle_vrct_visibility:
|
||||||
|
label:
|
||||||
|
toggle_translation:
|
||||||
|
label:
|
||||||
|
toggle_transcription_send:
|
||||||
|
label:
|
||||||
|
toggle_transcription_receive:
|
||||||
|
label:
|
||||||
|
|
||||||
advanced_settings:
|
advanced_settings:
|
||||||
osc_ip_address:
|
osc_ip_address:
|
||||||
@@ -188,4 +241,6 @@ config_page:
|
|||||||
osc_port:
|
osc_port:
|
||||||
label: "OSC 端口"
|
label: "OSC 端口"
|
||||||
open_config_filepath:
|
open_config_filepath:
|
||||||
label: "打开设置文件"
|
label: "打开设置文件"
|
||||||
|
switch_compute_device:
|
||||||
|
label:
|
||||||
@@ -29,13 +29,17 @@ main_page:
|
|||||||
transcription_send: "麥克風轉文字"
|
transcription_send: "麥克風轉文字"
|
||||||
transcription_receive: "喇叭轉文字"
|
transcription_receive: "喇叭轉文字"
|
||||||
foreground: "最上層顯示"
|
foreground: "最上層顯示"
|
||||||
|
|
||||||
language_settings: "語言設定"
|
language_settings: "語言設定"
|
||||||
your_language: "你的語言"
|
your_language: "你的語言"
|
||||||
translate_each_other_label: "互相翻譯"
|
translate_each_other_label: "互相翻譯"
|
||||||
swap_button_label: "交換語言"
|
swap_button_label: "交換語言"
|
||||||
target_language: "目標語言"
|
target_language: "目標語言"
|
||||||
translator: "翻譯器"
|
translator: "翻譯器"
|
||||||
# translator_label_default: "預設"
|
translator_label_default: "預設"
|
||||||
|
|
||||||
|
translator_selector:
|
||||||
|
is_selected_same_language:
|
||||||
|
|
||||||
message_log:
|
message_log:
|
||||||
all: "全部"
|
all: "全部"
|
||||||
@@ -43,6 +47,9 @@ main_page:
|
|||||||
received: "已接收"
|
received: "已接收"
|
||||||
system: "系統"
|
system: "系統"
|
||||||
|
|
||||||
|
show_resend_button:
|
||||||
|
resend_button_on_hover_desc:
|
||||||
|
|
||||||
state_text_enabled: "啟用"
|
state_text_enabled: "啟用"
|
||||||
state_text_disabled: "停用"
|
state_text_disabled: "停用"
|
||||||
|
|
||||||
@@ -54,25 +61,33 @@ main_page:
|
|||||||
updating: "正在更新..."
|
updating: "正在更新..."
|
||||||
|
|
||||||
update_modal:
|
update_modal:
|
||||||
update_software_desc: "下載新版本並自動更新 VRCT。\n會花一些時間,現在更新嗎?"
|
cpu_desc:
|
||||||
deny_update_software: "稍後再說"
|
cuda_desc:
|
||||||
accept_update_software: "更新"
|
cuda_compare_cpu_desc:
|
||||||
|
cuda_disk_space_desc:
|
||||||
|
close_modal:
|
||||||
|
download_latest_and_restart:
|
||||||
|
is_latest_version_already:
|
||||||
|
is_current_compute_device:
|
||||||
|
|
||||||
config_page:
|
config_page:
|
||||||
version: "版本 {{version}}"
|
version: "版本 {{version}}"
|
||||||
|
model_download_button_label:
|
||||||
side_menu_labels:
|
side_menu_labels:
|
||||||
|
device:
|
||||||
appearance: "外觀"
|
appearance: "外觀"
|
||||||
translation: "翻譯"
|
translation: "翻譯"
|
||||||
transcription: "轉錄"
|
transcription: "轉錄"
|
||||||
vr: "VR"
|
|
||||||
others: "其他"
|
others: "其他"
|
||||||
|
hotkeys:
|
||||||
advanced_settings: "進階設定"
|
advanced_settings: "進階設定"
|
||||||
|
|
||||||
device:
|
device:
|
||||||
mic_host:
|
check_volume: "Check Volume"
|
||||||
label: "麥克風 Host/Driver"
|
label_auto_select: "Auto Select"
|
||||||
mic_device:
|
label_host: "Host/Driver"
|
||||||
|
label_device: "Device"
|
||||||
|
mic_host_device:
|
||||||
label: "麥克風裝置"
|
label: "麥克風裝置"
|
||||||
mic_dynamic_energy_threshold:
|
mic_dynamic_energy_threshold:
|
||||||
label_for_automatic: "麥克風能量閾值(當前設置:自動)"
|
label_for_automatic: "麥克風能量閾值(當前設置:自動)"
|
||||||
@@ -112,15 +127,20 @@ config_page:
|
|||||||
desc: "你可以選擇用於離線翻譯引擎的翻譯模型。"
|
desc: "你可以選擇用於離線翻譯引擎的翻譯模型。"
|
||||||
small: "基本模型({{capacity}})"
|
small: "基本模型({{capacity}})"
|
||||||
large: "高準確率模型({{capacity}})"
|
large: "高準確率模型({{capacity}})"
|
||||||
|
ctranslate2_compute_device:
|
||||||
|
label:
|
||||||
deepl_auth_key:
|
deepl_auth_key:
|
||||||
label: "DeepL 授權金鑰"
|
label: "DeepL 授權金鑰"
|
||||||
desc: "使用 DeepL API 時請在主螢幕選擇 {{translator}}。※可能不支援某些語言。"
|
desc: "使用 DeepL API 時請在主螢幕選擇 {{translator}}。※可能不支援某些語言。"
|
||||||
open_auth_key_webpage: "打開 DeepL 帳號頁面"
|
open_auth_key_webpage: "打開 DeepL 帳號頁面"
|
||||||
|
save:
|
||||||
|
edit:
|
||||||
auth_key_success: "授權金鑰更新完成。"
|
auth_key_success: "授權金鑰更新完成。"
|
||||||
|
|
||||||
transcription:
|
transcription:
|
||||||
section_label_mic: "麥克風"
|
section_label_mic: "麥克風"
|
||||||
section_label_speaker: "喇叭"
|
section_label_speaker: "喇叭"
|
||||||
|
section_label_transcription_engines:
|
||||||
mic_record_timeout:
|
mic_record_timeout:
|
||||||
label: "麥克風音訊 - 判定結束時間"
|
label: "麥克風音訊 - 判定結束時間"
|
||||||
desc: "麥克風未收到音訊後,結束一段話的判定時間(秒)。"
|
desc: "麥克風未收到音訊後,結束一段話的判定時間(秒)。"
|
||||||
@@ -144,38 +164,51 @@ config_page:
|
|||||||
speaker_max_phrase:
|
speaker_max_phrase:
|
||||||
label: "喇叭音訊 - 最大單詞數量"
|
label: "喇叭音訊 - 最大單詞數量"
|
||||||
desc: "只有在單詞超過此數量時,才會記錄結果並發送到 VRChat。"
|
desc: "只有在單詞超過此數量時,才會記錄結果並發送到 VRChat。"
|
||||||
use_whisper_feature:
|
select_transcription_engine:
|
||||||
label: "使用 Whisper 模型進行轉錄"
|
label:
|
||||||
desc: "在某些語言中,語音識別的準確性可能會提高。使用語音識別時,CPU使用率會增加,請根據你的PC規格考慮是否使用此功能。"
|
|
||||||
whisper_weight_type:
|
whisper_weight_type:
|
||||||
label: "選擇 Whisper 模型"
|
label: "選擇 Whisper 模型"
|
||||||
# desc: |-
|
desc:
|
||||||
# 一般來說,容量較大的模型往往具有更高的準確性,但這也導致轉錄時間較長和CPU使用率增加。請參考文檔了解各模型的說明。
|
|
||||||
# ※特別是超過中等大小的模型,根據CPU性能可能難以運行。
|
|
||||||
model_template: "{{model_name}}模型({{capacity}})"
|
model_template: "{{model_name}}模型({{capacity}})"
|
||||||
recommended_model_template: "{{model_name}}模型({{capacity}})(推薦)"
|
recommended_model_template: "{{model_name}}模型({{capacity}})(推薦)"
|
||||||
|
whisper_compute_device:
|
||||||
|
label:
|
||||||
|
|
||||||
vr:
|
vr:
|
||||||
|
single_line:
|
||||||
|
multi_lines:
|
||||||
|
overlay_enable:
|
||||||
restore_default_settings: "恢復預設設定"
|
restore_default_settings: "恢復預設設定"
|
||||||
opacity: "透明度"
|
position:
|
||||||
ui_scaling: "介面縮放"
|
rotation:
|
||||||
x_position: "X軸(左右)"
|
x_position: "X軸(左右)"
|
||||||
y_position: "Y軸(上下)"
|
y_position: "Y軸(上下)"
|
||||||
z_position: "Z軸(前後)"
|
z_position: "Z軸(前後)"
|
||||||
x_rotation: "X軸旋轉"
|
x_rotation: "X軸旋轉"
|
||||||
y_rotation: "Y軸旋轉"
|
y_rotation: "Y軸旋轉"
|
||||||
z_rotation: "Z軸旋轉"
|
z_rotation: "Z軸旋轉"
|
||||||
|
sample_text_button:
|
||||||
|
start:
|
||||||
|
stop:
|
||||||
|
sample_text:
|
||||||
|
opacity: "透明度"
|
||||||
|
ui_scaling: "介面縮放"
|
||||||
display_duration: "顯示持續時間"
|
display_duration: "顯示持續時間"
|
||||||
fadeout_duration: "淡出持續時間"
|
fadeout_duration: "淡出持續時間"
|
||||||
|
common_settings:
|
||||||
|
tracker:
|
||||||
|
hmd:
|
||||||
|
left_hand:
|
||||||
|
right_hand:
|
||||||
|
overlay_show_only_translated_messages:
|
||||||
|
label:
|
||||||
|
|
||||||
others:
|
others:
|
||||||
|
section_label_sounds:
|
||||||
auto_clear_the_message_box:
|
auto_clear_the_message_box:
|
||||||
label: "自動清除 Chatbox"
|
label: "自動清除 Chatbox"
|
||||||
send_only_translated_messages:
|
send_only_translated_messages:
|
||||||
label: "僅發送翻譯訊息"
|
label: "僅發送翻譯訊息"
|
||||||
notice_xsoverlay:
|
|
||||||
label: "XSOverlay 通知"
|
|
||||||
desc: "從 XSOverlay 的通知功能接收訊息。"
|
|
||||||
auto_export_message_logs:
|
auto_export_message_logs:
|
||||||
label: "自動匯出訊息記錄"
|
label: "自動匯出訊息記錄"
|
||||||
desc: "自動將對話訊息匯出為文字文件。"
|
desc: "自動將對話訊息匯出為文字文件。"
|
||||||
@@ -185,6 +218,22 @@ config_page:
|
|||||||
send_message_to_vrc:
|
send_message_to_vrc:
|
||||||
label: "發送訊息到 VRChat"
|
label: "發送訊息到 VRChat"
|
||||||
desc: "當你打算向 VRChat 發送訊息時啟用此功能。"
|
desc: "當你打算向 VRChat 發送訊息時啟用此功能。"
|
||||||
|
notification_vrc_sfx:
|
||||||
|
label:
|
||||||
|
desc:
|
||||||
|
send_received_message_to_vrc:
|
||||||
|
label:
|
||||||
|
desc:
|
||||||
|
|
||||||
|
hotkeys:
|
||||||
|
toggle_vrct_visibility:
|
||||||
|
label:
|
||||||
|
toggle_translation:
|
||||||
|
label:
|
||||||
|
toggle_transcription_send:
|
||||||
|
label:
|
||||||
|
toggle_transcription_receive:
|
||||||
|
label:
|
||||||
|
|
||||||
advanced_settings:
|
advanced_settings:
|
||||||
osc_ip_address:
|
osc_ip_address:
|
||||||
@@ -192,4 +241,6 @@ config_page:
|
|||||||
osc_port:
|
osc_port:
|
||||||
label: "OSC 端口"
|
label: "OSC 端口"
|
||||||
open_config_filepath:
|
open_config_filepath:
|
||||||
label: "打開設定文件"
|
label: "打開設定文件"
|
||||||
|
switch_compute_device:
|
||||||
|
label:
|
||||||
@@ -82,7 +82,7 @@ const Mic_Container = () => {
|
|||||||
<div className={styles.device_contents}>
|
<div className={styles.device_contents}>
|
||||||
|
|
||||||
<div className={styles.device_auto_select_wrapper}>
|
<div className={styles.device_auto_select_wrapper}>
|
||||||
<p className={styles.device_secondary_label}>{t("config_page.device.mic_host_device.label_auto_select")}</p>
|
<p className={styles.device_secondary_label}>{t("config_page.device.label_auto_select")}</p>
|
||||||
<SwitchBox
|
<SwitchBox
|
||||||
variable={currentEnableAutoMicSelect}
|
variable={currentEnableAutoMicSelect}
|
||||||
toggleFunction={toggleEnableAutoMicSelect}
|
toggleFunction={toggleEnableAutoMicSelect}
|
||||||
@@ -91,7 +91,7 @@ const Mic_Container = () => {
|
|||||||
|
|
||||||
<div className={styles.device_dropdown_wrapper}>
|
<div className={styles.device_dropdown_wrapper}>
|
||||||
<div className={styles.device_dropdown}>
|
<div className={styles.device_dropdown}>
|
||||||
<p className={styles.device_secondary_label}>{t("config_page.device.mic_host_device.label_host")}</p>
|
<p className={styles.device_secondary_label}>{t("config_page.device.label_host")}</p>
|
||||||
<DropdownMenu
|
<DropdownMenu
|
||||||
dropdown_id="mic_host"
|
dropdown_id="mic_host"
|
||||||
selected_id={currentSelectedMicHost.data}
|
selected_id={currentSelectedMicHost.data}
|
||||||
@@ -104,7 +104,7 @@ const Mic_Container = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={styles.device_dropdown}>
|
<div className={styles.device_dropdown}>
|
||||||
<p className={styles.device_secondary_label}>{t("config_page.device.mic_host_device.label_device")}</p>
|
<p className={styles.device_secondary_label}>{t("config_page.device.label_device")}</p>
|
||||||
<DropdownMenu
|
<DropdownMenu
|
||||||
dropdown_id="mic_device"
|
dropdown_id="mic_device"
|
||||||
selected_id={currentSelectedMicDevice.data}
|
selected_id={currentSelectedMicDevice.data}
|
||||||
@@ -178,7 +178,7 @@ const Speaker_Container = () => {
|
|||||||
<div className={styles.device_contents}>
|
<div className={styles.device_contents}>
|
||||||
|
|
||||||
<div className={styles.device_auto_select_wrapper}>
|
<div className={styles.device_auto_select_wrapper}>
|
||||||
<p className={styles.device_secondary_label}>{t("config_page.device.speaker_device.label_auto_select")}</p>
|
<p className={styles.device_secondary_label}>{t("config_page.device.label_auto_select")}</p>
|
||||||
<SwitchBox
|
<SwitchBox
|
||||||
variable={currentEnableAutoSpeakerSelect}
|
variable={currentEnableAutoSpeakerSelect}
|
||||||
toggleFunction={toggleEnableAutoSpeakerSelect}
|
toggleFunction={toggleEnableAutoSpeakerSelect}
|
||||||
@@ -186,7 +186,7 @@ const Speaker_Container = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className={styles.device_dropdown}>
|
<div className={styles.device_dropdown}>
|
||||||
<p className={styles.device_secondary_label}>{t("config_page.device.mic_host_device.label_device")}</p>
|
<p className={styles.device_secondary_label}>{t("config_page.device.label_device")}</p>
|
||||||
<DropdownMenu
|
<DropdownMenu
|
||||||
dropdown_id="speaker_device"
|
dropdown_id="speaker_device"
|
||||||
label={t("config_page.device.speaker_device.label")}
|
label={t("config_page.device.speaker_device.label")}
|
||||||
|
|||||||
@@ -15,12 +15,13 @@ export const TranslatorSelector = ({selected_id, translation_engines, is_selecte
|
|||||||
<div className={styles.wrapper}>
|
<div className={styles.wrapper}>
|
||||||
{columns.map((column, column_index) => (
|
{columns.map((column, column_index) => (
|
||||||
<div className={styles.column_wrapper} key={`column_${column_index}`}>
|
<div className={styles.column_wrapper} key={`column_${column_index}`}>
|
||||||
{column.map(({ id, label, is_available }) => (
|
{column.map(({ id, label, is_available, is_default }) => (
|
||||||
<TranslatorBox
|
<TranslatorBox
|
||||||
key={id}
|
key={id}
|
||||||
id={id}
|
id={id}
|
||||||
label={label}
|
label={label}
|
||||||
is_available={is_available}
|
is_available={is_available}
|
||||||
|
is_default={is_default}
|
||||||
is_selected={(id === selected_id)}
|
is_selected={(id === selected_id)}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
@@ -45,6 +46,7 @@ export const TranslatorSelector = ({selected_id, translation_engines, is_selecte
|
|||||||
};
|
};
|
||||||
|
|
||||||
const TranslatorBox = (props) => {
|
const TranslatorBox = (props) => {
|
||||||
|
const { t } = useTranslation();
|
||||||
const { setSelectedTranslationEngines} = useLanguageSettings();
|
const { setSelectedTranslationEngines} = useLanguageSettings();
|
||||||
const { updateIsOpenedTranslatorSelector} = useStore_IsOpenedTranslatorSelector();
|
const { updateIsOpenedTranslatorSelector} = useStore_IsOpenedTranslatorSelector();
|
||||||
|
|
||||||
@@ -53,6 +55,10 @@ const TranslatorBox = (props) => {
|
|||||||
{ [styles.is_selected]: props.is_selected },
|
{ [styles.is_selected]: props.is_selected },
|
||||||
{ [styles.is_available]: props.is_available }
|
{ [styles.is_available]: props.is_available }
|
||||||
);
|
);
|
||||||
|
const label_default_class_name = clsx(
|
||||||
|
styles.label_default,
|
||||||
|
{ [styles.is_selected]: props.is_selected },
|
||||||
|
);
|
||||||
|
|
||||||
const selectTranslator = () => {
|
const selectTranslator = () => {
|
||||||
if (props.is_selected === false) {
|
if (props.is_selected === false) {
|
||||||
@@ -60,9 +66,11 @@ const TranslatorBox = (props) => {
|
|||||||
}
|
}
|
||||||
updateIsOpenedTranslatorSelector(false);
|
updateIsOpenedTranslatorSelector(false);
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={box_class_name} onClick={selectTranslator}>
|
<div className={box_class_name} onClick={selectTranslator}>
|
||||||
<p className={styles.translator_name}>{props.label}</p>
|
<p className={styles.translator_name}>{props.label}</p>
|
||||||
|
{props.is_default && <p className={label_default_class_name}>{t("main_page.translator_label_default")}</p>}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -17,26 +17,26 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.wrapper {
|
.wrapper {
|
||||||
// padding: 1rem;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 1rem;
|
gap: 1.4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.column_wrapper {
|
.column_wrapper {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 1rem;
|
gap: 1.2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
$box_size: 6rem;
|
$box_size: 6.2rem;
|
||||||
.box {
|
.box {
|
||||||
width: 9.2rem;
|
position: relative;
|
||||||
|
width: 9.4rem;
|
||||||
height: $box_size;
|
height: $box_size;
|
||||||
background-color: var(--dark_875_color);
|
background-color: var(--dark_875_color);
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -51,10 +51,10 @@ $box_size: 6rem;
|
|||||||
}
|
}
|
||||||
&:active {
|
&:active {
|
||||||
background-color: var(--dark_900_color);
|
background-color: var(--dark_900_color);
|
||||||
border: 0.1rem solid var(--primary_300_color);
|
outline: 0.1rem solid var(--primary_300_color);
|
||||||
}
|
}
|
||||||
&.is_selected {
|
&.is_selected {
|
||||||
border: 0.2rem solid var(--primary_300_color);
|
outline: 0.2rem solid var(--primary_300_color);
|
||||||
}
|
}
|
||||||
&:not(.is_available) {
|
&:not(.is_available) {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
@@ -69,6 +69,22 @@ $box_size: 6rem;
|
|||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.label_default {
|
||||||
|
background-color: var(--dark_875_color);
|
||||||
|
outline: 0.1rem solid var(--dark_1000_color);
|
||||||
|
padding: 0.2rem 0.4rem;
|
||||||
|
border-radius: 0.2rem;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
position: absolute;
|
||||||
|
top: -0.8rem;
|
||||||
|
right: -0.8rem;
|
||||||
|
pointer-events: none;
|
||||||
|
&.is_selected {
|
||||||
|
outline: 0.1rem solid var(--primary_300_color);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.is_selected_same_language_wrapper {
|
.is_selected_same_language_wrapper {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
|||||||
@@ -78,7 +78,9 @@ $pending_label_color: var(--dark_500_color);
|
|||||||
}
|
}
|
||||||
|
|
||||||
.toggle_control {
|
.toggle_control {
|
||||||
@include toggle_control_styles;
|
// @include toggle_control_styles;
|
||||||
|
@include toggle_control_styles($toggle_width: 3.6rem, $toggle_height: 1.4rem);
|
||||||
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: end;
|
justify-content: end;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|||||||
@@ -48,35 +48,41 @@ $toggle_width: 4rem;
|
|||||||
$toggle_height: 1.6rem;
|
$toggle_height: 1.6rem;
|
||||||
$toggle_gutter: 0.1rem;
|
$toggle_gutter: 0.1rem;
|
||||||
$toggle_radius: 50%;
|
$toggle_radius: 50%;
|
||||||
$toggle_control_speed: .15s;
|
$toggle_control_speed: 0.15s;
|
||||||
$toggle_control_ease: ease-out;
|
$toggle_control_ease: ease-out;
|
||||||
|
|
||||||
$toggle_radius: calc($toggle_height / 2);
|
@mixin toggle_control_styles(
|
||||||
$toggle_control_size: $toggle_height - calc($toggle_gutter * 2);
|
$toggle_width: $toggle_width,
|
||||||
|
$toggle_height: $toggle_height,
|
||||||
|
$toggle_gutter: $toggle_gutter,
|
||||||
|
$toggle_background_color_on: $toggle_background_color_on,
|
||||||
|
$toggle_background_color_off: $toggle_background_color_off,
|
||||||
|
$toggle_control_color: $toggle_control_color,
|
||||||
|
$toggle_control_speed: $toggle_control_speed,
|
||||||
|
$toggle_control_ease: $toggle_control_ease
|
||||||
|
) {
|
||||||
|
$toggle_radius: calc($toggle_height / 2);
|
||||||
|
$toggle_control_size: calc($toggle_height - ($toggle_gutter * 2));
|
||||||
|
|
||||||
@mixin toggle_control_styles {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
height: 100%;
|
|
||||||
width: auto;
|
|
||||||
.control {
|
.control {
|
||||||
position: relative;
|
position: relative;
|
||||||
height: $toggle_height;
|
|
||||||
width: $toggle_width;
|
width: $toggle_width;
|
||||||
|
height: $toggle_height;
|
||||||
border-radius: $toggle_radius;
|
border-radius: $toggle_radius;
|
||||||
background-color: $toggle_background_color_off;
|
background-color: $toggle_background_color_off;
|
||||||
|
transition: background-color $toggle_control_speed $toggle_control_ease;
|
||||||
&:after {
|
&:after {
|
||||||
content: "";
|
content: "";
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: $toggle_gutter;
|
|
||||||
top: $toggle_gutter;
|
top: $toggle_gutter;
|
||||||
|
left: $toggle_gutter;
|
||||||
width: $toggle_control_size;
|
width: $toggle_control_size;
|
||||||
height: $toggle_control_size;
|
height: $toggle_control_size;
|
||||||
border-radius: $toggle_radius;
|
border-radius: $toggle_radius;
|
||||||
background: $toggle_control_color;
|
background: $toggle_control_color;
|
||||||
transition: left $toggle_control_speed $toggle_control_ease;
|
transition: left $toggle_control_speed $toggle_control_ease;
|
||||||
}
|
}
|
||||||
&.is_pending:after{
|
&.is_pending:after {
|
||||||
background-color: var(--dark_600_color);
|
background-color: var(--dark_600_color);
|
||||||
}
|
}
|
||||||
&.is_hovered {
|
&.is_hovered {
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ export const useNotificationStatus = () => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
const showNotification_Success = (message) => {
|
const showNotification_Success = (message, options = {}) => {
|
||||||
updateNotificationStatus({
|
updateNotificationStatus({
|
||||||
status: "success",
|
status: "success",
|
||||||
is_open: true,
|
is_open: true,
|
||||||
|
|||||||
@@ -1,7 +1,11 @@
|
|||||||
import { useStore_DeepLAuthKey } from "@store";
|
import { useStore_DeepLAuthKey } from "@store";
|
||||||
import { useStdoutToPython } from "@logics/useStdoutToPython";
|
import { useStdoutToPython } from "@logics/useStdoutToPython";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { useNotificationStatus } from "@logics_common";
|
||||||
|
|
||||||
export const useDeepLAuthKey = () => {
|
export const useDeepLAuthKey = () => {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const { showNotification_Success, showNotification_Error } = useNotificationStatus();
|
||||||
const { asyncStdoutToPython } = useStdoutToPython();
|
const { asyncStdoutToPython } = useStdoutToPython();
|
||||||
const { currentDeepLAuthKey, updateDeepLAuthKey, pendingDeepLAuthKey } = useStore_DeepLAuthKey();
|
const { currentDeepLAuthKey, updateDeepLAuthKey, pendingDeepLAuthKey } = useStore_DeepLAuthKey();
|
||||||
|
|
||||||
@@ -14,6 +18,10 @@ export const useDeepLAuthKey = () => {
|
|||||||
pendingDeepLAuthKey();
|
pendingDeepLAuthKey();
|
||||||
asyncStdoutToPython("/set/data/deepl_auth_key", selected_deepl_auth_key);
|
asyncStdoutToPython("/set/data/deepl_auth_key", selected_deepl_auth_key);
|
||||||
};
|
};
|
||||||
|
const saveSuccessDeepLAuthKey = (saved_deepl_auth_key) => {
|
||||||
|
updateDeepLAuthKey(saved_deepl_auth_key);
|
||||||
|
showNotification_Success(t("config_page.translation.deepl_auth_key.auth_key_success"));
|
||||||
|
};
|
||||||
|
|
||||||
const deleteDeepLAuthKey = () => {
|
const deleteDeepLAuthKey = () => {
|
||||||
pendingDeepLAuthKey();
|
pendingDeepLAuthKey();
|
||||||
@@ -25,6 +33,7 @@ export const useDeepLAuthKey = () => {
|
|||||||
getDeepLAuthKey,
|
getDeepLAuthKey,
|
||||||
updateDeepLAuthKey,
|
updateDeepLAuthKey,
|
||||||
setDeepLAuthKey,
|
setDeepLAuthKey,
|
||||||
|
saveSuccessDeepLAuthKey,
|
||||||
deleteDeepLAuthKey,
|
deleteDeepLAuthKey,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -148,7 +148,7 @@ export const useReceiveRoutes = () => {
|
|||||||
const { updateSpeakerPhraseTimeout } = useSpeakerPhraseTimeout();
|
const { updateSpeakerPhraseTimeout } = useSpeakerPhraseTimeout();
|
||||||
const { updateSpeakerMaxWords } = useSpeakerMaxWords();
|
const { updateSpeakerMaxWords } = useSpeakerMaxWords();
|
||||||
|
|
||||||
const { updateDeepLAuthKey } = useDeepLAuthKey();
|
const { updateDeepLAuthKey, saveSuccessDeepLAuthKey } = useDeepLAuthKey();
|
||||||
const { updateSelectedCTranslate2WeightType } = useSelectedCTranslate2WeightType();
|
const { updateSelectedCTranslate2WeightType } = useSelectedCTranslate2WeightType();
|
||||||
const {
|
const {
|
||||||
updateDownloadedCTranslate2WeightTypeStatus,
|
updateDownloadedCTranslate2WeightTypeStatus,
|
||||||
@@ -352,7 +352,7 @@ export const useReceiveRoutes = () => {
|
|||||||
|
|
||||||
// Translation
|
// Translation
|
||||||
"/get/data/deepl_auth_key": updateDeepLAuthKey,
|
"/get/data/deepl_auth_key": updateDeepLAuthKey,
|
||||||
"/set/data/deepl_auth_key": updateDeepLAuthKey,
|
"/set/data/deepl_auth_key": saveSuccessDeepLAuthKey,
|
||||||
"/delete/data/deepl_auth_key": () => updateDeepLAuthKey(""),
|
"/delete/data/deepl_auth_key": () => updateDeepLAuthKey(""),
|
||||||
|
|
||||||
"/get/data/ctranslate2_weight_type": updateSelectedCTranslate2WeightType,
|
"/get/data/ctranslate2_weight_type": updateSelectedCTranslate2WeightType,
|
||||||
|
|||||||
Reference in New Issue
Block a user