[Refactor/Update] Organize localization files and apply to some labels.

This commit is contained in:
Sakamoto Shiina
2024-12-10 18:45:52 +09:00
parent 656b7c414c
commit ae3e359fd6
19 changed files with 1058 additions and 1212 deletions

View File

@@ -1,3 +1,6 @@
common:
go_back_button_label: Go Back
main_page: main_page:
translation: Translation translation: Translation
transcription_send: Voice2Chatbox transcription_send: Voice2Chatbox
@@ -10,261 +13,218 @@ main_page:
target_language: Target Language target_language: Target Language
translator: Translator translator: Translator
translator_ctranslate2: Internal (Default) translator_ctranslate2: Internal (Default)
textbox_tab_all: All
textbox_tab_sent: Sent message_log:
textbox_tab_received: Received all: All
textbox_tab_system: System sent: Sent
textbox_system_message: received: Received
enabled_easter_egg: Whoa! You caught us! There is something...like...easter-egg-ish function has enabled! It'll affect to Overlay(VR) for now;). system: System
enabled_translation: Translation feature is turned on.
disabled_translation: Translation feature is turned off. # textbox_system_message:
enabled_voice2chatbox: Transcription from the microphone has started. # enabled_easter_egg: Whoa! You caught us! There is something...like...easter-egg-ish function has enabled! It'll affect to Overlay(VR) for now;).
disabled_voice2chatbox: Transcription from the microphone has been stopped. # enabled_translation: Translation feature is turned on.
enabled_speaker2log: Transcription from the speaker has started. # disabled_translation: Translation feature is turned off.
disabled_speaker2log: Transcription from the speaker has been stopped. # enabled_voice2chatbox: Transcription from the microphone has started.
enabled_foreground: The screen is fixed in the foreground. # disabled_voice2chatbox: Transcription from the microphone has been stopped.
disabled_foreground: The foreground fixation has been released. # enabled_speaker2log: Transcription from the speaker has started.
auth_key_success: Auth key update completed. # disabled_speaker2log: Transcription from the speaker has been stopped.
auth_key_error: Auth Key is incorrect or Usage limit reached. # enabled_foreground: The screen is fixed in the foreground.
no_mic_device_detected_error: No mic device detected. # disabled_foreground: The foreground fixation has been released.
no_speaker_device_detected_error: No speaker device detected. # auth_key_success: Auth key update completed.
translation_engine_limit_error: It has automatically changed the translation engine. Access has been temporarily restricted due to an excessive number of requests to the translation engine. If you want to use the same translation engine, please wait for a while, restart VRCT, and try again. # auth_key_error: Auth Key is incorrect or Usage limit reached.
detected_by_word_filter: The word {{detected_message}} has not been sent due to detection by the word filter. # no_mic_device_detected_error: No mic device detected.
selected_your_language: '"Your Language" has set to {{your_language}}.' # no_speaker_device_detected_error: No speaker device detected.
selected_target_language: '"Target Language" has set to {{target_language}}.' # translation_engine_limit_error: It has automatically changed the translation engine. Access has been temporarily restricted due to an excessive number of requests to the translation engine. If you want to use the same translation engine, please wait for a while, restart VRCT, and try again.
switched_language_preset_tab: Switched to Language Preset Tab No.{{tab_no}}." # detected_by_word_filter: The word {{detected_message}} has not been sent due to detection by the word filter.
latest_language_setting: Currently, "Your Language" is set to {{your_language}}, and "Target Language" is set to {{target_language}}. # selected_your_language: '"Your Language" has set to {{your_language}}.'
opened_web_page_booth: Opened Booth page in your web browser. # selected_target_language: '"Target Language" has set to {{target_language}}.'
opened_web_page_vrct_documents: |- # switched_language_preset_tab: Switched to Language Preset Tab No.{{tab_no}}."
Opened VRCT Documents page in your web browser. # latest_language_setting: Currently, "Your Language" is set to {{your_language}}, and "Target Language" is set to {{target_language}}.
For any issues, requests, or inquiries, please feel free to contact us through the links at the bottom of the documents page, the "Contact Form," or via X (formerly Twitter)! # opened_web_page_booth: Opened Booth page in your web browser.
# opened_web_page_vrct_documents: |-
# Opened VRCT Documents page in your web browser.
# For any issues, requests, or inquiries, please feel free to contact us through the links at the bottom of the documents page, the "Contact Form," or via X (formerly Twitter)!
update_available: New version is here! update_available: New version is here!
update_software_desc: |-
Download the new version and automatically restart the app.
It'll take a while. Do it now?
deny_update_software: Do it later
accept_update_software: Update and Restart
updating: Now updating...
state_text_enabled: Enabled state_text_enabled: Enabled
state_text_disabled: Disabled state_text_disabled: Disabled
cover_message: The functionality is temporarily disabled until the settings window is closed.
close_settings_window: Close the settings window language_selector:
confirmation_message: title_your_language: Select Your Language
update_software: |- title_target_language: Select Target Language
Download the new version and automatically restart the app.
It'll take a while. Do it now?
deny_update_software: Do it later
accept_update_software: Update and Restart
updating: Now updating...
detected_over_ui_size: |-
Current UI Size: {{current_ui_size}}
VRCT's window size may be larger than your display size.
* Depending on your display size, you may need to adjust it multiple times.
deny_adjust_ui_size: Keep it at this size
accept_adjust_ui_size: Set it smaller and restart
selectable_language_window:
title_your_language: Select Your Language
title_target_language: Select Target Language
go_back_button: Go Back
overlay_settings:
restore_default_settings: Restore Default Settings
enable: Enable
position: Position
rotation: Rotation
x_position: X-axis (left-right)
y_position: Y-axis (up-down)
z_position: Z-axis (front-back)
x_rotation: X-axis rotation
y_rotation: Y-axis rotation
z_rotation: Z-axis rotation
opacity: Opacity
ui_scaling: UI Scaling
display_duration: Display duration
fadeout_duration: Fadeout duration
tracker: Tracker
overlay_show_only_translated_messages:
label: Show Only Translated Messages
config_page: config_page:
config_title: Settings
compact_mode: Compact Mode
version: version {{version}} version: version {{version}}
restart_message: Apply changes with a restart. # config_title: Settings
common_error_message: # compact_mode: Compact Mode
invalid_value: Invalid value. # restart_message: Apply changes with a restart.
# common_error_message:
# invalid_value: Invalid value.
side_menu_labels: side_menu_labels:
device: Device device: Device
appearance: Appearance appearance: Appearance
translation: Translation translation: Translation
transcription: Transcription transcription: Transcription
transcription_mic: Mic
transcription_speaker: Speaker
transcription_internal_model: Transcription Model
vr: VR vr: VR
others: Others others: Others
others_send_message_formats: Message Formats (Send)
others_received_message_formats: Message Formats (XSOverlay & Speaker2Chatbox)
others_speaker2chatbox: Speaker2Chatbox
advanced_settings: Advanced Settings advanced_settings: Advanced Settings
about_vrct: About VRCT about_vrct: About VRCT
transparency:
label: Transparency device:
desc: Change the main window's transparency. mic_host_device:
appearance_theme: label: Mic Device
label: Theme label_auto_select: Auto Select
desc: Change the color theme. label_host: Host/Driver
ui_size: label_device: Device
label: UI Size mic_dynamic_energy_threshold:
textbox_ui_size: label_for_automatic: 'Mic Energy Threshold (Current Setting: Automatic)'
label: Text Box Font Size desc_for_automatic: Automatically determine microphone input sensitivity.
desc: You can adjust the font size used in the logs relative to the UI size. label_for_manual: 'Mic Energy Threshold (Current Setting: Manual)'
message_box_ratio: 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.
label: Message Box Size error_message: You can set it with a value between 0 to {{max}}.
desc: |- speaker_device:
You can change the size of the input message box. It is in ratio to the text box. label: Speaker Device
*No exact calculations. label_auto_select: Auto Select
font_family: label_device: Device
label: Font Family speaker_dynamic_energy_threshold:
ui_language: label_for_automatic: 'Speaker Energy Threshold (Current Setting: Automatic)'
label: UI Language desc_for_automatic: Automatically determine speaker input sensitivity.
to_restore_main_page_geometry: label_for_manual: 'Speaker Energy Threshold (Current Setting: Manual)'
label: Remember The Main Window Position desc_for_manual: Manually determine the speaker input sensitivity using the slider. Press the headphones icon to listen to the audio and adjust the sensitivity while monitoring the volume.
desc: Restore the position and size of the previous window upon startup. error_message: You can set it with a value between 0 to {{max}}.
use_translation_feature: no_device_error_message: No speaker device detected.
label: Use Translation Feature
desc: You can't use the translation feature while this is turned off. Instead, the VRCT startup becomes a little faster. This is for users who don't need the translation feature and only use VRCT as a chatbox and transcription tool. appearance:
ctranslate2_weight_type: transparency:
label: Select Internal Translation Model label: Transparency
desc: You can choose the translation model to use for the internal translation engine. desc: Change the main window's transparency.
small: Basic model ({{capacity}}) ui_size:
large: High accuracy model ({{capacity}}) label: UI Size
ctranslate2_compute_device: textbox_ui_size:
label: Select Internal Translation Compute Device label: Text Box Font Size
deepl_auth_key: desc: You can adjust the font size used in the logs relative to the UI size.
label: DeepL Auth Key send_message_button_type:
desc: Please select {{translator}} on the main screen with DeepL_API when using. ※Some languages may not be supported. label: Send Message Button
open_auth_key_webpage: Open DeepL Account Webpage hide: Hide (Use enter key to send)
auth_key_success: Auth key update completed. show: Show
auth_key_error: Auth Key is incorrect or Usage limit reached. show_and_disable_enter_key: Show and disable to send when pressed enter key
mic_host_device: font_family:
label: Mic Device label: Font Family
label_auto_select: Auto Select ui_language:
label_host: Host/Driver label: UI Language
label_device: Device
mic_dynamic_energy_threshold: translation:
label_for_automatic: 'Mic Energy Threshold (Current Setting: Automatic)' ctranslate2_weight_type:
desc_for_automatic: Automatically determine microphone input sensitivity. label: Select Internal Translation Model
label_for_manual: 'Mic Energy Threshold (Current Setting: Manual)' desc: You can choose the translation model to use for the internal translation engine.
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. small: Basic model ({{capacity}})
error_message: You can set it with a value between 0 to {{max}}. large: High accuracy model ({{capacity}})
mic_record_timeout: ctranslate2_compute_device:
label: Mic Record Timeout label: Select Internal Translation Compute Device
desc: Detects silence and, when the specified number of seconds has passed, considers the mic input to have ended. (Second(s)) deepl_auth_key:
error_message: It cannot be greater than '{{mic_phrase_timeout_label}}' with a value of 0 or more. label: DeepL Auth Key
mic_phrase_timeout: desc: Please select {{translator}} on the main screen with DeepL_API when using. ※Some languages may not be supported.
label: Mic Phrase Timeout open_auth_key_webpage: Open DeepL Account Webpage
desc: Transcription processing is performed at intervals of the specified number of seconds. auth_key_success: Auth key update completed.
error_message: It cannot be set lower than '{{mic_record_timeout_label}}' with a value of 0 or more. auth_key_error: Auth Key is incorrect or Usage limit reached.
mic_max_phrase:
label: Mic Max Words transcription:
desc: It is the lower limit for the number of transcribed words, and only when this number is exceeded will the transcription results be displayed logs and send to VRChat. section_label_mic: Mic
error_message: You can set a number equal to or greater than 0. section_label_speaker: Speaker
mic_word_filter: section_label_transcription_engines: Transcription Engines
label: Mic Word Filter mic_record_timeout:
desc: |- label: Mic Record Timeout
If a registered word is detected, the text will not be sent. To add multiple words at once, separate them with a "," (comma). desc: Detects silence and, when the specified number of seconds has passed, considers the mic input to have ended. (Second(s))
*Duplicate words will not be registered. error_message: It cannot be greater than '{{mic_phrase_timeout_label}}' with a value of 0 or more.
add_button_label: Add mic_phrase_timeout:
count_desc: 'Current registered word count: {{count}}' label: Mic Phrase Timeout
speaker_device: desc: Transcription processing is performed at intervals of the specified number of seconds.
label: Speaker Device error_message: It cannot be set lower than '{{mic_record_timeout_label}}' with a value of 0 or more.
label_auto_select: Auto Select mic_max_phrase:
label_device: Device label: Mic Max Words
speaker_dynamic_energy_threshold: desc: It is the lower limit for the number of transcribed words, and only when this number is exceeded will the transcription results be displayed logs and send to VRChat.
label_for_automatic: 'Speaker Energy Threshold (Current Setting: Automatic)' error_message: You can set a number equal to or greater than 0.
desc_for_automatic: Automatically determine speaker input sensitivity. mic_word_filter:
label_for_manual: 'Speaker Energy Threshold (Current Setting: Manual)' label: Mic Word Filter
desc_for_manual: Manually determine the speaker input sensitivity using the slider. Press the headphones icon to listen to the audio and adjust the sensitivity while monitoring the volume. desc: |-
error_message: You can set it with a value between 0 to {{max}}. If a registered word is detected, the text will not be sent. To add multiple words at once, separate them with a "," (comma).
no_device_error_message: No speaker device detected. *Duplicate words will not be registered.
speaker_record_timeout: add_button_label: Add
label: Speaker Record Timeout count_desc: 'Current registered word count: {{count}}'
desc: Detects silence and, when the specified number of seconds has passed, considers the speaker input to have ended. (Second(s)) speaker_record_timeout:
error_message: It cannot be greater than '{{speaker_phrase_timeout_label}}' with a value of 0 or more. label: Speaker Record Timeout
speaker_phrase_timeout: desc: Detects silence and, when the specified number of seconds has passed, considers the speaker input to have ended. (Second(s))
label: Speaker Phrase Timeout error_message: It cannot be greater than '{{speaker_phrase_timeout_label}}' with a value of 0 or more.
desc: Transcription processing is performed at intervals of the specified number of seconds. speaker_phrase_timeout:
error_message: It cannot be set lower than '{{speaker_record_timeout_label}}' with a value of 0 or more. label: Speaker Phrase Timeout
speaker_max_phrase: desc: Transcription processing is performed at intervals of the specified number of seconds.
label: Speaker Max Words error_message: It cannot be set lower than '{{speaker_record_timeout_label}}' with a value of 0 or more.
desc: It is the lower limit for the number of transcribed words, and only when this number is exceeded will the transcription results be displayed logs. speaker_max_phrase:
error_message: You can set a number equal to or greater than 0. label: Speaker Max Words
select_transcription_engine: desc: It is the lower limit for the number of transcribed words, and only when this number is exceeded will the transcription results be displayed logs.
label: Select Transcription Engine error_message: You can set a number equal to or greater than 0.
whisper_weight_type: select_transcription_engine:
label: Select Whisper Model label: Select Transcription Engine
desc: |- whisper_weight_type:
Generally, models with larger capacity tend to have higher accuracy, but this also results in longer transcription times and increased CPU usage. Please refer to the documentation for explanations of each model. label: Select Whisper Model
※Larger models, especially those exceeding medium size, can be challenging to run even depending on the CPU's performance. desc: |-
model_template: '{{model_name}} model ({{capacity}})' Generally, models with larger capacity tend to have higher accuracy, but this also results in longer transcription times and increased CPU usage. Please refer to the documentation for explanations of each model.
recommended_model_template: '{{model_name}} model ({{capacity}}) (Recommended)' ※Larger models, especially those exceeding medium size, can be challenging to run even depending on the CPU's performance.
whisper_compute_device: model_template: '{{model_name}} model ({{capacity}})'
label: Select Whisper Compute Device recommended_model_template: '{{model_name}} model ({{capacity}}) (Recommended)'
enable_overlay_small_log: whisper_compute_device:
label: Enable Overlay label: Select Whisper Compute Device
open_overlay_settings: Open Overlay Customized Settings
auto_clear_the_message_box: vr:
label: Auto Clear The Message Box restore_default_settings: Restore Default Settings
send_only_translated_messages: enable: Enable
label: Send Only Translated Messages position: Position
send_message_button_type: rotation: Rotation
label: Send Message Button x_position: X-axis (left-right)
hide: Hide (Use enter key to send) y_position: Y-axis (up-down)
show: Show z_position: Z-axis (front-back)
show_and_disable_enter_key: Show and disable to send when pressed enter key x_rotation: X-axis rotation
notice_xsoverlay: y_rotation: Y-axis rotation
label: Notification XSOverlay z_rotation: Z-axis rotation
desc: Notify received messages by using XSOverlay's notification feature. opacity: Opacity
auto_export_message_logs: ui_scaling: UI Scaling
label: Auto Export Message Logs display_duration: Display duration
desc: Automatically export the conversation messages as a text file. fadeout_duration: Fadeout duration
vrc_mic_mute_sync: tracker: Tracker
label: VRC Mic Mute Sync overlay_show_only_translated_messages:
desc: |- label: Show Only Translated Messages
VRCT will not send the message to VRChat while VRChat's mic is muted.
*There is a bit latency and Push-To-Talk is not supported. others:
send_message_to_vrc: auto_clear_the_message_box:
label: Send Message To VRChat label: Auto Clear The Message Box
desc: There is a way to use it without sending messages to VRChat, but it is not supported. Enable this feature when you intend to send a message to VRChat. send_only_translated_messages:
send_message_format: label: Send Only Translated Messages
label: Message Format auto_export_message_logs:
desc: |- label: Auto Export Message Logs
You can change the decoration of the message you want to send. desc: Automatically export the conversation messages as a text file.
[message] will be replaced with the message. vrc_mic_mute_sync:
example_text: This is an example sentence. Fonts, line breaks, etc. may differ from the actual display. label: VRC Mic Mute Sync
error_message: Cannot use the term '[message]'. desc: |-
send_message_format_with_t: VRCT will not send the message to VRChat while VRChat's mic is muted.
label: Message Format (with Translation) *There is a bit latency and Push-To-Talk is not supported.
desc: |- send_message_to_vrc:
You can change the decoration of the message you want to send. label: Send Message To VRChat
[message] will be replaced with the message, and [translation] will be replaced with the translated message. desc: There is a way to use it without sending messages to VRChat, but it is not supported. Enable this feature when you intend to send a message to VRChat.
example_text: This is an example sentence. Fonts, line breaks, etc. may differ from the actual display. send_received_message_to_vrc:
error_message: Cannot use the terms '[message]' and '[translation]'. label: Send Received Message To VRChat
received_message_format: desc: Send the message you received from the speaker's sound to VRChat's chatbox.
label: Format of Received Messages
desc: |- advanced_settings:
Used for XSOverlay notification receiving feature. osc_ip_address:
[message] will be replaced with the message. label: OSC IP Address
※It will be used in Speaker2Chatbox too. osc_port:
example_text: This is an example sentence. Actual display may vary, including font and line breaks. label: OSC Port
error_message: Cannot use the term '[message]'. open_config_filepath:
received_message_format_with_t: label: Open Config File
label: Format of Received Messages (with Translation)
desc: |-
Used for XSOverlay notification receiving feature.
[message] will be replaced with the message, and [translation] will be replaced with the translated message.
※It will be used in Speaker2Chatbox too.
example_text: This is an example sentence. Actual display may vary, including font and line breaks.
error_message: Cannot use the terms '[message]' and '[translation]'.
send_received_message_to_vrc:
label: Send Received Message To VRChat
desc: Send the message you received from the speaker's sound to VRChat's chatbox.
osc_ip_address:
label: OSC IP Address
osc_port:
label: OSC Port
open_config_filepath:
label: Open Config File

View File

@@ -1,3 +1,6 @@
common:
go_back_button_label: 戻る
main_page: main_page:
translation: 翻訳 translation: 翻訳
transcription_send: 音声認識(マイク) transcription_send: 音声認識(マイク)
@@ -10,246 +13,202 @@ main_page:
target_language: 相手の言語 target_language: 相手の言語
translator: 翻訳エンジン translator: 翻訳エンジン
translator_ctranslate2: オフライン翻訳 (Default) translator_ctranslate2: オフライン翻訳 (Default)
textbox_tab_all: 全て
textbox_tab_sent: 送信 message_log:
textbox_tab_received: 受信 all: 全て
textbox_tab_system: システム sent: 送信
textbox_system_message: received: 受信
enabled_translation: 翻訳機能をONにしました。 system: システム
disabled_translation: 翻訳機能をOFFしました。
enabled_voice2chatbox: マイクからの音声入力、文字起こしを開始します。 # textbox_system_message:
disabled_voice2chatbox: マイクからの音声入力、文字起こしを終了しました。 # enabled_translation: 翻訳機能をONにしました。
enabled_speaker2log: スピーカーからの音声聞き取り、文字起こしを開始します # disabled_translation: 翻訳機能をOFFしました
disabled_speaker2log: スピーカーからの音声聞き取り、文字起こしを終了しました # enabled_voice2chatbox: マイクからの音声入力、文字起こしを開始します
enabled_foreground: 画面を常に最前面へ固定します # disabled_voice2chatbox: マイクからの音声入力、文字起こしを終了しました
disabled_foreground: 最前面への固定を解除しました # enabled_speaker2log: スピーカーからの音声聞き取り、文字起こしを開始します
auth_key_success: 認証キーの更新が完了しました。 # disabled_speaker2log: スピーカーからの音声聞き取り、文字起こしを終了しました。
auth_key_error: 認証キーが間違っているか、API使用制限が上限に達しています。 # enabled_foreground: 画面を常に最前面へ固定します。
no_mic_device_detected_error: マイクデバイスが検出されませんでした。 # disabled_foreground: 最前面への固定を解除しました。
no_speaker_device_detected_error: スピーカーデバイスが検出されませんでした。 # auth_key_success: 認証キーの更新が完了しました。
translation_engine_limit_error: 翻訳エンジンを自動的に変更しました。対象翻訳エンジンへのリクエストが多すぎるため、一時的にアクセスが制限されています。同じ翻訳エンジンを使用したい場合はしばらく待ってから、VRCTの再起動をしてもう一度試してみてください # auth_key_error: 認証キーが間違っているか、API使用制限が上限に達しています
detected_by_word_filter: ワードフィルターに登録されている単語 {{detected_message}} が検出されたため送信しませんでした。 # no_mic_device_detected_error: マイクデバイスが検出されませんでした。
selected_your_language: 「あなたの言語」 を {{your_language}} に設定しました。 # no_speaker_device_detected_error: スピーカーデバイスが検出されませんでした。
selected_target_language: 「相手の言語」 を {{target_language}} に設定しました # translation_engine_limit_error: 翻訳エンジンを自動的に変更しました。対象翻訳エンジンへのリクエストが多すぎるため、一時的にアクセスが制限されています。同じ翻訳エンジンを使用したい場合はしばらく待ってから、VRCTの再起動をしてもう一度試してみてください
switched_language_preset_tab: 言語プリセット番号 {{tab_no}} に切り替わりました。 # detected_by_word_filter: ワードフィルターに登録されている単語 {{detected_message}} が検出されたため送信しませんでした。
latest_language_setting: 現在「あなたの言語」 {{your_language}}、「相手の言語」は {{target_language}} に設定されています # selected_your_language: 「あなたの言語」 {{your_language}} に設定しました
opened_web_page_booth: お使いのブラウザで、Boothのページを開きました。 # selected_target_language: 「相手の言語」 を {{target_language}} に設定しました。
opened_web_page_vrct_documents: |- # switched_language_preset_tab: 言語プリセット番号 {{tab_no}} に切り替わりました。
お使いのブラウザで、VRCTのドキュメントを開きました。使用方法などはそちらに記載されています。 # latest_language_setting: 現在「あなたの言語」は {{your_language}}、「相手の言語」は {{target_language}} に設定されています。
不具合、ご要望、その他お問い合わせはドキュメント最下部にあるLinks、「お問合せフォーム」もしくはX (元Twitter) にて気軽にご連絡ください! # opened_web_page_booth: お使いのブラウザで、Boothのページを開きました。
# opened_web_page_vrct_documents: |-
# お使いのブラウザで、VRCTのドキュメントを開きました。使用方法などはそちらに記載されています。
# 不具合、ご要望、その他お問い合わせはドキュメント最下部にあるLinks、「お問合せフォーム」もしくはX (元Twitter) にて気軽にご連絡ください!
update_available: 新しいバージョンが出ました! update_available: 新しいバージョンが出ました!
update_software_desc: |-
新しいバージョンをダウンロードしてアプリを再起動します。
少し時間がかかります。今すぐ行いますか?
deny_update_software: 後でする
accept_update_software: アップデートして再起動
updating: アップデート中...
state_text_enabled: 有効 state_text_enabled: 有効
state_text_disabled: 無効 state_text_disabled: 無効
cover_message: 設定画面が閉じられるまで、一時的に機能を停止しています。
confirmation_message: language_selector:
update_software: |- title_your_language: あなたの言語
新しいバージョンをダウンロードしてアプリを再起動します。 title_target_language: 相手の言語
少し時間がかかります。今すぐ行いますか?
deny_update_software: 後でする
accept_update_software: アップデートして再起動
updating: アップデート中...
detected_over_ui_size: |-
現在のUI サイズ: {{current_ui_size}}
VRCTのウィンドウサイズが、お使いのディスプレイサイズより大きい可能性があります。
※ディスプレイサイズによっては、何度か再設定が必要な場合があります。
deny_adjust_ui_size: このサイズのままで良い
accept_adjust_ui_size: 小さく設定して再起動
selectable_language_window:
title_your_language: あなたの言語
title_target_language: 相手の言語
go_back_button: 戻る
overlay_settings:
restore_default_settings: 初期値に戻す
opacity: 透明度
ui_scaling: サイズ
x_position: X軸左右
y_position: Y軸上下
z_position: Z軸前後
x_rotation: X軸の回転
y_rotation: Y軸の回転
z_rotation: Z軸の回転
display_duration: 表示時間
fadeout_duration: フェードアウト時間
config_page: config_page:
config_title: 設定
compact_mode: コンパクトモード
version: バージョン {{version}} version: バージョン {{version}}
restart_message: 再起動して変更を適用する。 # config_title: 設定
common_error_message: # compact_mode: コンパクトモード
invalid_value: 無効な値です # restart_message: 再起動して変更を適用する
# common_error_message:
# invalid_value: 無効な値です。
side_menu_labels: side_menu_labels:
device: デバイス device: デバイス
appearance: デザイン appearance: デザイン
translation: 翻訳 translation: 翻訳
transcription: 音声認識 transcription: 音声認識
transcription_mic: マイク
transcription_speaker: スピーカー
transcription_internal_model: 音声認識モデル
others: その他 others: その他
others_send_message_formats: メッセージフォーマット (送信)
others_received_message_formats: メッセージフォーマット (XSOverlay & Speaker2Chatbox)
advanced_settings: 高度な設定 advanced_settings: 高度な設定
transparency:
label: 透明度 device:
desc: メイン画面の透明度を変更できます。 mic_host_device:
appearance_theme: label: マイク (デバイス)
label: 外観テーマ label_host: ホスト/ドライバー
desc: カラーテーマを変更できます。 label_device: デバイス
ui_size: mic_dynamic_energy_threshold:
label: UIサイズ label_for_automatic: 'マイク入力感度の調整 (現在の設定: 自動)'
textbox_ui_size: desc_for_automatic: マイクの入力感度を自動的に調節する。
label: テキストボックス フォントサイズ label_for_manual: 'マイク入力感度の調整 (現在の設定: 手動)'
desc: ログに表示されるフォントのサイズを、UIサイズを基準にして倍率を変えられます。 desc_for_manual: スライダーを調整して入力感度を手動で決められます。マイクのアイコンを押すと、実際に声を入力し、音量を確認しながら調節できます。
message_box_ratio: error_message: 0 から {{max}} までの数値で設定できます。
label: メッセージ入力欄のサイズ speaker_device:
desc: |- label: スピーカー (デバイス)
メッセージ入力欄のサイズを変更できます。テキストボックスとの比率となっています。 speaker_dynamic_energy_threshold:
※厳密な計算はしていません。 label_for_automatic: 'スピーカー入力感度の調整 (現在の設定: 自動)'
font_family: desc_for_automatic: スピーカーの入力感度を自動的に調節する。
label: 使用フォント label_for_manual: 'スピーカー入力感度の調整 (現在の設定: 手動)'
ui_language: desc_for_manual: スライダーを調整して入力感度を手動で決められます。ヘッドフォンのアイコンを押すと、実際に音声を聞き取り、音量を確認しながら調節できます。
label: UIの言語 error_message: 0 から {{max}} までの数値で設定できます。
to_restore_main_page_geometry: no_device_error_message: スピーカーデバイスが検出されませんでした。
label: メイン画面の位置を記憶する
desc: 起動時、前回の画面の位置とサイズを復元します。 appearance:
use_translation_feature: transparency:
label: 翻訳機能を使用する label: 透明度
desc: |- desc: メイン画面の透明度を変更できます。
オフにしている間は、翻訳機能を使わない代わり、VRCTの起動が少し速くなります。 ui_size:
翻訳機能を必要とせず、VRCTをチャット送信と文字起こしツールとしてのみ使用するユーザー用です。 label: UIサイズ
ctranslate2_weight_type: textbox_ui_size:
label: オフライン翻訳のタイプ label: テキストボックス フォントサイズ
desc: 翻訳エンジン(オフライン翻訳)で翻訳する際に、使用する翻訳モデルを選択できます。 desc: ログに表示されるフォントのサイズを、UIサイズを基準にして倍率を変えられます。
small: 通常モデル ({{capacity}}) send_message_button_type:
large: 高精度モデル ({{capacity}}) label: メッセージ送信ボタン
deepl_auth_key: hide: 非表示 (エンターキーを使って送信)
label: DeepL 認証キー show: 表示
desc: |- show_and_disable_enter_key: 表示し、エンターキーでの送信を無効
使用の際は、メイン画面にある {{translator}} をDeepL_APIに変更してください。 font_family:
※対応していない言語もあります。 label: 使用フォント
open_auth_key_webpage: DeepLアカウントページを開く ui_language:
auth_key_success: 認証キーの更新が完了しました。 label: UIの言語
auth_key_error: 認証キーが間違っているか、API使用制限が上限に達しています。
mic_host_device: translation:
label: マイク (デバイス) ctranslate2_weight_type:
label_host: ホスト/ドライバー label: オフライン翻訳のタイプ
label_device: デバイス desc: 翻訳エンジン(オフライン翻訳)で翻訳する際に、使用する翻訳モデルを選択できます。
mic_dynamic_energy_threshold: small: 通常モデル ({{capacity}})
label_for_automatic: 'マイク入力感度の調整 (現在の設定: 自動)' large: 高精度モデル ({{capacity}})
desc_for_automatic: マイクの入力感度を自動的に調節する。 deepl_auth_key:
label_for_manual: 'マイク入力感度の調整 (現在の設定: 手動)' label: DeepL 認証キー
desc_for_manual: スライダーを調整して入力感度を手動で決められます。マイクのアイコンを押すと、実際に声を入力し、音量を確認しながら調節できます。 desc: |-
error_message: 0 から {{max}} までの数値で設定できます。 使用の際は、メイン画面にある {{translator}} をDeepL_APIに変更してください。
mic_record_timeout: ※対応していない言語もあります。
label: 入力が終了したとみなす無音時間 open_auth_key_webpage: DeepLアカウントページを開く
desc: 無音を検出し、設定された秒数経過すると、音声入力が終了したとみなします auth_key_success: 認証キーの更新が完了しました
error_message: 0 以上で 「{{mic_phrase_timeout_label}}」より大きくすることはできません auth_key_error: 認証キーが間違っているか、API使用制限が上限に達しています
mic_phrase_timeout:
label: 一度に文字起こしする時間の長さ transcription:
desc: 設定された秒数ごとに文字起こし処理が行われます。 section_label_mic: マイク
error_message: 0 以上で 「{{mic_record_timeout_label}}」より小さくすることはできません。 section_label_speaker: スピーカー
mic_max_phrase: mic_record_timeout:
label: 送信するまでに保持する単語数 label: 入力が終了したとみなす無音時間
desc: 文字起こしされた単語数の下限値で、この数値を超えた場合のみ結果をVRChatへ送信し、ログに表示します。 desc: 無音を検出し、設定された秒数経過すると、音声入力が終了したとみなします。
error_message: 0以上の数値を設定できま error_message: 0 以上で 「{{mic_phrase_timeout_label}}」より大きくすることはできません
mic_word_filter: mic_phrase_timeout:
label: ワードフィルター label: 一度に文字起こしする時間の長さ
desc: |- desc: 設定された秒数ごとに文字起こし処理が行われます。
登録された単語を検出すると、その文章は送信されません。 error_message: 0 以上で 「{{mic_record_timeout_label}}」より小さくすることはできません。
「,」カンマで区切ると、まとめて複数の単語を追加できます。 mic_max_phrase:
※重複した単語は登録されません。 label: 送信するまでに保持する単語数
add_button_label: 追加 desc: 文字起こしされた単語数の下限値で、この数値を超えた場合のみ結果をVRChatへ送信し、ログに表示します。
count_desc: '現在登録されている単語数: {{count}}' error_message: 0以上の数値を設定できます。
speaker_device: mic_word_filter:
label: スピーカー (デバイス) label: ワードフィルター
speaker_dynamic_energy_threshold: desc: |-
label_for_automatic: 'スピーカー入力感度の調整 (現在の設定: 自動)' 登録された単語を検出すると、その文章は送信されません。
desc_for_automatic: スピーカーの入力感度を自動的に調節する。 「,」カンマで区切ると、まとめて複数の単語を追加できます。
label_for_manual: 'スピーカー入力感度の調整 (現在の設定: 手動)' ※重複した単語は登録されません。
desc_for_manual: スライダーを調整して入力感度を手動で決められます。ヘッドフォンのアイコンを押すと、実際に音声を聞き取り、音量を確認しながら調節できます。 add_button_label: 追加
error_message: 0 から {{max}} までの数値で設定できます。 count_desc: '現在登録されている単語数: {{count}}'
no_device_error_message: スピーカーデバイスが検出されませんでした。 speaker_record_timeout:
speaker_record_timeout: label: 入力が終了したとみなす無音時間
label: 入力が終了したとみなす無音時間 desc: 無音を検出し、設定された秒数経過すると、音声入力が終了したとみなします。
desc: 無音を検出し、設定された秒数経過すると、音声入力が終了したとみなします error_message: 0 以上で 「{{speaker_phrase_timeout_label}}」より大きくすることはできません
error_message: 0 以上で 「{{speaker_phrase_timeout_label}}」より大きくすることはできません。 speaker_phrase_timeout:
speaker_phrase_timeout: label: 一度に文字起こしする時間の長さ
label: 一度に文字起こしする時間の長さ desc: 設定された秒数ごとに文字起こし処理が行われます。
desc: 設定された秒数ごとに文字起こし処理が行われます error_message: 0 以上で 「{{speaker_record_timeout_label}}」より小さくすることはできません
error_message: 0 以上で 「{{speaker_record_timeout_label}}」より小さくすることはできません。 speaker_max_phrase:
speaker_max_phrase: label: ログとして表示するまでに保持する単語数
label: ログとして表示するまでに保持する単語数 desc: 文字起こしされた単語数の下限値で、この数値を超えた場合のみ結果をログに表示します。
desc: 文字起こしされた単語数の下限値で、この数値を超えた場合のみ結果をログに表示します。 error_message: 0以上の数値を設定できます。
error_message: 0以上の数値を設定できます。 use_whisper_feature:
use_whisper_feature: label: 音声認識にWhisperモデルを使用する
label: 音声認識にWhisperモデルを使用する desc: 一部の言語では、音声認識の精度が向上するかもしれません。音声認識使用中、CPUの使用率が上がるので、お使いのPCスペックと相談してこの機能を使用してください。
desc: 一部の言語では、音声認識の精度が向上するかもしれません。音声認識使用中、CPUの使用率が上がるので、お使いのPCスペックと相談してこの機能を使用してください。 whisper_weight_type:
whisper_weight_type: label: Whisperモデルのタイプ
label: Whisperモデルのタイプ desc: |-
desc: |- 基本的に、容量が多いモデルほど精度は高いですが、文字起こしまでの時間が伸び、CPU使用率も増加します。各モデルの説明はドキュメントをご覧ください。
基本的に、容量が多いモデルほど精度は高いですが、文字起こしまでの時間が伸び、CPU使用率も増加します。各モデルの説明はドキュメントをご覧ください。 ※特にmediumより容量の大きいモデルは、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}}) (推奨)'
enable_overlay_small_log: vr:
label: Overlay機能を有効 restore_default_settings: 初期値に戻す
open_overlay_settings: Overlay詳細設定を開く opacity: 透明度
auto_clear_the_message_box: ui_scaling: サイズ
label: 送信後はチャットボックスを空にする x_position: X軸左右
send_only_translated_messages: y_position: Y軸上下
label: 翻訳後のメッセージのみ送信する z_position: Z軸前後
send_message_button_type: x_rotation: X軸の回転
label: メッセージ送信ボタン y_rotation: Y軸の回転
hide: 非表示 (エンターキーを使って送信) z_rotation: Z軸の回転
show: 表示 display_duration: 表示時間
show_and_disable_enter_key: 表示し、エンターキーでの送信を無効 fadeout_duration: フェードアウト時間
notice_xsoverlay:
label: XSOverlayでの通知受け取り機能を有効 others:
desc: 文字起こし (受信) されたメッセージをXSOverlayの機能を使って通知として受け取れます。 auto_clear_the_message_box:
auto_export_message_logs: label: 送信後はチャットボックスを空にする
label: 会話ログを自動的に保存する send_only_translated_messages:
desc: テキストファイルとしてログがlogsフォルダ内に保存されます。 label: 翻訳後のメッセージのみ送信する
vrc_mic_mute_sync: auto_export_message_logs:
label: VRCマイクミュート同期 label: 会話ログを自動的に保存する
desc: |- desc: テキストファイルとしてログがlogsフォルダ内に保存されます。
VRChatのマイクがミュートされている間は、メッセージをVRChatに送信しません。 vrc_mic_mute_sync:
※若干の遅延はあります。また、Push-To-Talkは非対応です。 label: VRCマイクミュート同期
send_message_to_vrc: desc: |-
label: VRChatにメッセージを送信する VRChatのマイクがミュートされている間は、メッセージをVRChatに送信しません。
desc: サポート対象外ですが、VRChatにメッセージを送信せずに使う方法があります。送信したい場合、この機能を有効にする事を忘れないでください ※若干の遅延はあります。また、Push-To-Talkは非対応です
send_message_format: send_message_to_vrc:
label: 送信するメッセージのフォーマット label: VRChatにメッセージを送信する
desc: |- desc: サポート対象外ですが、VRChatにメッセージを送信せずに使う方法があります。送信したい場合、この機能を有効にする事を忘れないでください。
VRChatで相手に実際に見えるフォーマットを変更できます。
[message]がメッセージに置換されます。 advanced_settings:
example_text: これは例文です。フォントや改行箇所など、実際の表示とは異なる場合があります。 osc_ip_address:
error_message: '[message]という文字は使えません。' label: OSC IP Address
send_message_format_with_t: osc_port:
label: 送信するメッセージのフォーマット(翻訳付き) label: OSC Port
desc: |- open_config_filepath:
VRChatで相手に実際に見えるフォーマットを変更できます。 label: 設定ファイルを開く
[message]がメッセージに置換され、[translation]が翻訳されたメッセージに置換されます。
example_text: これは例文です。フォントや改行箇所など、実際の表示とは異なる場合があります。
error_message: '[message]と[translation]という文字は使えません。'
received_message_format:
label: 受信するメッセージのフォーマット
desc: |-
XSOverlay通知受け取り機能で使用されます。
[message]がメッセージに置換されます。
※Speaker2Chatboxでの送信機能にも使われます。
example_text: これは例文です。フォントや改行箇所など、実際の表示とは異なる場合があります。
error_message: '[message]という文字は使えません。'
received_message_format_with_t:
label: 受信するメッセージのフォーマット(翻訳付き)
desc: |-
XSOverlay通知受け取り機能で使用されます。
[message]がメッセージに置換され、[translation]が翻訳されたメッセージに置換されます。
※Speaker2Chatboxでの送信機能にも使われます。
example_text: これは例文です。フォントや改行箇所など、実際の表示とは異なる場合があります。
error_message: '[message]と[translation]という文字は使えません。'
osc_ip_address:
label: OSC IP Address
osc_port:
label: OSC Port
open_config_filepath:
label: 設定ファイルを開く

View File

@@ -1,3 +1,6 @@
common:
go_back_button_label: 돌아가기
main_page: main_page:
translation: 번역 translation: 번역
transcription_send: 음성인식 (마이크) transcription_send: 음성인식 (마이크)
@@ -10,222 +13,184 @@ main_page:
target_language: 상대방의 언어 target_language: 상대방의 언어
translator: 번역 엔진 translator: 번역 엔진
translator_ctranslate2: 오프라인 번역 (기본값) translator_ctranslate2: 오프라인 번역 (기본값)
textbox_tab_all: 전체
textbox_tab_sent: 전송 message_log:
textbox_tab_received: 수신 all: 전체
textbox_tab_system: 시스템 sent: 전송
textbox_system_message: received: 수신
enabled_translation: 번역 기능을 시작합니다. system: 시스템
disabled_translation: 번역 기능이 중지되었습니다.
enabled_voice2chatbox: 마이크에서의 음성인식을 시작합니다. # textbox_system_message:
disabled_voice2chatbox: 마이크에서의 음성인식이 중지되었습니다. # enabled_translation: 번역 기능을 시작합니다.
enabled_speaker2log: 스피커에서의 음성인식을 시작합니다. # disabled_translation: 번역 기능이 중지되었습니다.
disabled_speaker2log: 스피커에서의 음성인식이 중지되었습니다. # enabled_voice2chatbox: 마이크에서의 음성인식을 시작합니다.
enabled_foreground: 화면을 항상 위로 고정합니다. # disabled_voice2chatbox: 마이크에서의 음성인식이 중지되었습니다.
disabled_foreground: 화면 고정이 해제되었습니다. # enabled_speaker2log: 스피커에서의 음성인식을 시작합니다.
auth_key_success: 인증키 갱신이 완료되었습니다. # disabled_speaker2log: 스피커에서의 음성인식이 중지되었습니다.
auth_key_error: 인증 키가 잘못되었거나 API 사용 제한이 상한선에 도달했습니다. # enabled_foreground: 화면을 항상 위로 고정합니다.
no_mic_device_detected_error: 마이크 디바이스를 찾지 못했습니다. # disabled_foreground: 화면 고정이 해제되었습니다.
no_speaker_device_detected_error: 스피커 디바이스를 찾지 못했습니다. # auth_key_success: 인증키 갱신이 완료되었습니다.
translation_engine_limit_error: 번역 엔진을 자동으로 변경했습니다. 대상 번역 엔진에 대한 요청이 너무 많아 일시적으로 접근이 제한되었습니다. 해당 번역 엔진을 사용하려면 잠시 기다린 후 VRCT를 재시작하여 다시 시도해 보시기 바랍니다 # auth_key_error: 인증 키가 잘못되었거나 API 사용 제한이 상한선에 도달했습니다.
detected_by_word_filter: 단어 필터에 등록된 단어 {{detected_message}}(이)가 감지되어 전송하지 않았습니다. # no_mic_device_detected_error: 마이크 디바이스를 찾지 못했습니다.
selected_your_language: "'당신의 언어'가 {{your_language}}(으)로 설정되었습니다." # no_speaker_device_detected_error: 스피커 디바이스를 찾지 못했습니다.
selected_target_language: "'상대방의 언어'가 {{target_language}}(으)로 설정되었습니다." # translation_engine_limit_error: 번역 엔진을 자동으로 변경했습니다. 대상 번역 엔진에 대한 요청이 너무 많아 일시적으로 접근이 제한되었습니다. 해당 번역 엔진을 사용하려면 잠시 기다린 후 VRCT를 재시작하여 다시 시도해 보시기 바랍니다
switched_language_preset_tab: 언어 프리셋 번호 {{tab_no}}로 전환되었습니다. # detected_by_word_filter: 단어 필터에 등록된 단어 {{detected_message}}(이)가 감지되어 전송하지 않았습니다.
latest_language_setting: 현재 '당신의 언어'는 {{your_language}}, '상대방의 언어' {{target_language}}(으)로 설정되어 있습니다. # selected_your_language: "'당신의 언어' {{your_language}}(으)로 설정되습니다."
opened_web_page_booth: 브라우저에서 Booth 페이지를 열었습니다. # selected_target_language: "'상대방의 언어'가 {{target_language}}(으)로 설정되었습니다."
opened_web_page_vrct_documents: |- # switched_language_preset_tab: 언어 프리셋 번호 {{tab_no}}로 전환되었습니다.
웹 브라우저에서 VRCT 문서 페이지가 열렸습니다. # latest_language_setting: 현재 '당신의 언어'는 {{your_language}}, '상대방의 언어'는 {{target_language}}(으)로 설정되어 있습니다.
문제, 요청 또는 문의 사항이 있는 경우 문서 페이지 하단의 링크, '문의 양식' 또는 X(구 트위터)를 통해 언제든지 문의해 주세요! # opened_web_page_booth: 브라우저에서 Booth 페이지를 열었습니다.
# opened_web_page_vrct_documents: |-
# 웹 브라우저에서 VRCT 문서 페이지가 열렸습니다.
# 문제, 요청 또는 문의 사항이 있는 경우 문서 페이지 하단의 링크, '문의 양식' 또는 X(구 트위터)를 통해 언제든지 문의해 주세요!
update_available: 새로운 버전이 나왔습니다! update_available: 새로운 버전이 나왔습니다!
cover_message: 설정 화면이 닫힐 때까지 일시적으로 기능을 정지하고 있습니다. update_software: |-
confirmation_message: 새 버전을 다운로드하고 재시작합니다.
update_software: |- 조금 시간이 걸립니다. 지금 시작할까요?
새 버전을 다운로드하고 재시작합니다. deny_update_software: 나중에 하기
조금 시간이 걸립니다. 지금 시작할까요? accept_update_software: 업데이트 및 재시작
deny_update_software: 나중에 하기 updating: 업데이트 중...
accept_update_software: 업데이트 및 재시작
updating: 업데이트 중... state_text_enabled: Enabled
detected_over_ui_size: |- state_text_disabled: Disabled
현재 UI 크기: {{current_ui_size}}
VRCT의 창 크기가 사용자의 디스플레이 크기보다 클 수 있습니다. language_selector:
* 디스플레이 크기에 따라 여러 번 재설정해야 할 수도 있습니다. title_your_language: 당신의 언어
deny_adjust_ui_size: 지금 상태를 유지 title_target_language: 상대방의 언어
accept_adjust_ui_size: 작게 줄이고 재시작
selectable_language_window:
title_your_language: 당신의 언어
title_target_language: 상대방의 언어
go_back_button: 돌아가기
config_page: config_page:
config_title: 설정
compact_mode: 컴팩트 모드
version: 버전 {{version}} version: 버전 {{version}}
restart_message: 재시작하여 변경 사항을 적용합니다. # config_title: 설정
common_error_message: # compact_mode: 컴팩트 모드
invalid_value: 유효하지 않은 값입니다. # restart_message: 재시작하여 변경 사항을 적용합니다.
# common_error_message:
# invalid_value: 유효하지 않은 값입니다.
side_menu_labels: side_menu_labels:
appearance: 모양 appearance: 모양
translation: 번역 translation: 번역
transcription: 음성인식 transcription: 음성인식
transcription_mic: 마이크
transcription_speaker: 스피커
transcription_internal_model: 내부 엔진
others: 기타 others: 기타
others_send_message_formats: 메시지 형식 (전송)
others_received_message_formats: 메시지 형식 (수신)
others_speaker2chatbox: 스피커->챗박스
advanced_settings: 고급 설정 advanced_settings: 고급 설정
transparency:
label: 투명도 device:
desc: 메인 화면의 투명도를 변경합니다. mic_host:
appearance_theme: label: 마이크 호스트/드라이버
label: 테마 mic_device:
desc: 색상 테마를 변경합니다. label: 마이크 장치
ui_size: mic_dynamic_energy_threshold:
label: UI 크기 label_for_automatic: '음성 입력 최소 볼륨 (현재 설정: 자동)'
textbox_ui_size: desc_for_automatic: 마이크의 입력 감도를 자동으로 조절합니다.
label: 텍스트 박스 글자 크기 label_for_manual: '음성 입력 최소 볼륨 (현재 설정: 수동)'
desc: 로그에 표시되는 글자 크기의 배율을 UI 크기에 따라 변경합니다. desc_for_manual: 슬라이더를 움직여 입력 감도를 수동으로 조절합니다. 마이크 아이콘을 누르면 실제 음성의 볼륨을 확인하며 감도를 조절할 수 있습니다.
message_box_ratio: error_message: 0에서 {{max}}까지의 숫자로만 설정할 수 있습니다.
label: 메시지 입력란 크기 speaker_device:
desc: |- label: 스피커 장치
메시지 입력란의 크기를 변경합니다. 텍스트 박스와의 비율로 설정되어 있습니다. speaker_dynamic_energy_threshold:
* 정확한 계산은 하지 않았습니다. label_for_automatic: '음성 입력 최소 볼륨 (현재 설정: 자동)'
font_family: desc_for_automatic: 스피커의 입력 감도를 자동으로 조절합니다.
label: 폰트 label_for_manual: '음성 입력 최소 볼륨 (현재 설정: 수동)'
ui_language: desc_for_manual: 슬라이더를 움직여 입력 감도를 수동으로 조절합니다. 헤드폰 아이콘을 누르면 실제 음성의 볼륨을 확인하며 감도를 조절할 수 있습니다.
label: UI 언어 error_message: 0에서 {{max}}까지의 숫자로만 설정할 수 있습니다.
to_restore_main_page_geometry: no_device_error_message: 스피커 디바이스를 찾지 못했습니다.
label: 메인 화면 위치 기억
desc: 시작 시 이전 화면의 위치와 크기를 복원합니다. appearance:
use_translation_feature: transparency:
label: 번역 기능 사용 label: 투명도
desc: |- desc: 메인 화면의 투명도를 변경합니다.
번역 기능이 꺼져 있는 동안에는 번역을 하지 않는 대신 VRCT가 조금 더 빠르게 실행됩니다. ui_size:
번역 기능이 필요하지 않고 VRCT를 채팅 전송 및 음성 인식 도구로만 사용하는 사용자를 위한 기능입니다. label: UI 크기
ctranslate2_weight_type: textbox_ui_size:
label: 번역 모델 label: 텍스트 박스 글자 크기
desc: 오프라인 번역 시의 번역 모델을 변경합니다. desc: 로그에 표시되는 글자 크기의 배율을 UI 크기에 따라 변경합니다.
small: 일반 모델 ({{capacity}}) send_message_button_type:
large: 정밀 모델 ({{capacity}}) label: 메시지 전송 버튼
deepl_auth_key: hide: 숨김 (Enter 키를 사용하여 전송)
label: DeepL 인증키 show: 표시
desc: |- show_and_disable_enter_key: 표시 (Enter 키 전송 비활성화)
사용시 메인화면에 있는 {{translator}}를 DeepL_API로 변경해 주세요. font_family:
지원하지 않는 언어도 있습니다. label: 폰트
open_auth_key_webpage: DeepL 계정 페이지 열기 ui_language:
auth_key_success: 인증키 갱신이 완료되었습니다. label: UI 언어
auth_key_error: 인증키가 잘못되었거나 API 사용 제한이 상한에 도달했습니다.
mic_host: translation:
label: 마이크 호스트/드라이버 ctranslate2_weight_type:
mic_device: label: 번역 모델
label: 마이크 장치 desc: 오프라인 번역 시의 번역 모델을 변경합니다.
mic_dynamic_energy_threshold: small: 일반 모델 ({{capacity}})
label_for_automatic: '음성 입력 최소 볼륨 (현재 설정: 자동)' large: 정밀 모델 ({{capacity}})
desc_for_automatic: 마이크의 입력 감도를 자동으로 조절합니다. deepl_auth_key:
label_for_manual: '음성 입력 최소 볼륨 (현재 설정: 수동)' label: DeepL 인증키
desc_for_manual: 슬라이더를 움직여 입력 감도를 수동으로 조절합니다. 마이크 아이콘을 누르면 실제 음성의 볼륨을 확인하며 감도를 조절할 수 있습니다. desc: |-
error_message: 0에서 {{max}}까지의 숫자로만 설정할 수 있습니다. 사용시 메인화면에 있는 {{translator}}를 DeepL_API로 변경해 주세요.
mic_record_timeout: 지원하지 않는 언어도 있습니다.
label: 최대 무음 시간 open_auth_key_webpage: DeepL 계정 페이지 열기
desc: 무음을 감지하고 설정된 시간(초)만큼의 시간이 지나면 음성 입력이 종료된 것으로 판단합니다. auth_key_success: 인증키 갱신이 완료되었습니다.
error_message: 0 이상에서 '{{mic_phrase_timeout_label}}'보다 클 수 없습니다. auth_key_error: 인증키가 잘못되었거나 API 사용 제한이 상한에 도달했습니다.
mic_phrase_timeout:
label: 최대 인식 시간 transcription:
desc: 설정된 초 단위로 음성인식 처리가 이루어집니다. section_label_mic: 마이크
error_message: 0 이상에서 '{{mic_record_timeout_label}}'보다 작을 수 없습니다. section_label_speaker: 스피커
mic_max_phrase: mic_record_timeout:
label: 최대 입력 절(phrases) 수 label: 최대 무음 시간
desc: 인식된 단어 수의 하한값으로, 이 수치를 초과하는 경우에만 결과를 VRChat으로 전송하고 로그에 표시합니다. desc: 무음을 감지하고 설정된 시간(초)만큼의 시간이 지나면 음성 입력이 종료된 것으로 판단합니다.
error_message: 0 이상의 숫자만 설정할습니다. error_message: 0 이상에서 '{{mic_phrase_timeout_label}}'보다 클습니다.
mic_word_filter: mic_phrase_timeout:
label: 단어 필터 label: 최대 인식 시간
desc: |- desc: 설정된 초 단위로 음성인식 처리가 이루어집니다.
등록된 단어가 감지되면 해당 문장은 전송되지 않습니다. error_message: 0 이상에서 '{{mic_record_timeout_label}}'보다 작을 수 없습니다.
',' 쉼표로 구분하면 여러 단어를 추가할 수 있습니다. mic_max_phrase:
* 중복된 단어는 등록되지 않습니다. label: 최대 입력 절(phrases) 수
add_button_label: 추가 desc: 인식된 단어 수의 하한값으로, 이 수치를 초과하는 경우에만 결과를 VRChat으로 전송하고 로그에 표시합니다.
count_desc: '현재 등록되어 있는 단어 수: {{count}}' error_message: 0 이상의 숫자만 설정할 수 있습니다.
speaker_device: mic_word_filter:
label: 스피커 장치 label: 단어 필터
speaker_dynamic_energy_threshold: desc: |-
label_for_automatic: '음성 입력 최소 볼륨 (현재 설정: 자동)' 등록된 단어가 감지되면 해당 문장은 전송되지 않습니다.
desc_for_automatic: 스피커의 입력 감도를 자동으로 조절합니다. ',' 쉼표로 구분하면 여러 단어를 추가할 수 있습니다.
label_for_manual: '음성 입력 최소 볼륨 (현재 설정: 수동)' * 중복된 단어는 등록되지 않습니다.
desc_for_manual: 슬라이더를 움직여 입력 감도를 수동으로 조절합니다. 헤드폰 아이콘을 누르면 실제 음성의 볼륨을 확인하며 감도를 조절할 수 있습니다. add_button_label: 추가
error_message: 0에서 {{max}}까지의 숫자로만 설정할 수 있습니다. count_desc: '현재 등록되어 있는 단어 수: {{count}}'
no_device_error_message: 스피커 디바이스를 찾지 못했습니다. speaker_record_timeout:
speaker_record_timeout: label: 최대 무음 시간
label: 최대 무음 시간 desc: 무음을 감지하고 설정된 시간(초)만큼의 시간이 지나면 음성 입력이 종료된 것으로 판단합니다.
desc: 무음을 감지하고 설정된 시간(초)만큼의 시간이 지나면 음성 입력이 종료된 것으로 판단합니다. error_message: 0 이상에서 '{{speaker_phrase_timeout_label}}'보다 클 수 없습니다.
error_message: 0 이상에서 '{{speaker_phrase_timeout_label}}'보다 클 수 없습니다. speaker_phrase_timeout:
speaker_phrase_timeout: label: 최대 인식 시간
label: 최대 인식 시간 desc: 설정된 초 단위로 음성인식 처리가 이루어집니다.
desc: 설정된 초 단위로 음성인식 처리가 이루어집니다. error_message: 0 이상에서 '{{speaker_record_timeout_label}}'보다 작을 수 없습니다.
error_message: 0 이상에서 '{{speaker_record_timeout_label}}'보다 작을 수 없습니다. speaker_max_phrase:
speaker_max_phrase: label: 최대 입력 절(phrases) 수
label: 최대 입력 절(phrases) 수 desc: 식된 단어 수의 하한값으로, 이 수치를 초과하는 경우에만 결과를 로그에 표시합니다.
desc: 식된 단어 수의 하한값으로, 이 수치를 초과하는 경우에만 결과를 로그에 표시합니다. error_message: 0 이상의 숫자만 설정할 수 있습니다.
error_message: 0 이상의 숫자만 설정할 수 있습니다. use_whisper_feature:
use_whisper_feature: label: 음성 인식에 Whisper 모델을 사용
label: 음성 인식에 Whisper 모델을 사용 desc: 일부 언어에서는 음성 인식의 정확도가 향상될 수 있어요. 음성 인식 중 CPU 사용률이 올라가기 때문에 사용하시는 PC의 사양을 고려하여 이 기능을 사용해주세요.
desc: 일부 언어에서는 음성 인식의 정확도가 향상될 수 있어요. 음성 인식 중 CPU 사용률이 올라가기 때문에 사용하시는 PC의 사양을 고려하여 이 기능을 사용해주세요. whisper_weight_type:
whisper_weight_type: label: Whisper 모델 타입
label: Whisper 모델 타입 desc: "기본적으로 용량이 많은 모델일수록 정밀도는 높지만, 음성 인식의 시간이 늘어나며 CPU 사용률도 늘어나요.각 모델의 설명은 문서를 참조해주세요.\n※특히 medium보다 용량이 큰 모델은 CPU의 성능에 따라서는 사용조차 어려울 수 있어요. "
desc: "기본적으로 용량이 많은 모델일수록 정밀도는 높지만, 음성 인식의 시간이 늘어나며 CPU 사용률도 늘어나요.각 모델의 설명은 문서를 참조해주세요.\n※특히 medium보다 용량이 큰 모델은 CPU의 성능에 따라서는 사용조차 어려울 수 있어요. " model_template: '{{model_name}} 모델 ({{capacity}})'
model_template: '{{model_name}} 모델 ({{capacity}})' recommended_model_template: '{{model_name}} 모델 ({{capacity}}) (권장)'
recommended_model_template: '{{model_name}} 모델 ({{capacity}}) (권장)'
auto_clear_the_message_box: others:
label: 챗박스 자동 삭제 auto_clear_the_message_box:
send_only_translated_messages: label: 챗박스 자동 삭제
label: 번역된 메시지만 전송 send_only_translated_messages:
send_message_button_type: label: 번역된 메시지만 전송
label: 메시지 전송 버튼 notice_xsoverlay:
hide: 숨김 (Enter 키를 사용하여 전송) label: XSOverlay에서 알림 수신 기능 활성화
show: 표시 desc: 수신된 메시지를 XSOverlay의 기능을 통해 알림으로 받아볼 수 있습니다.
show_and_disable_enter_key: 표시 (Enter 키 전송 비활성화) auto_export_message_logs:
notice_xsoverlay: label: 대화 로그 자동 저장
label: XSOverlay에서 알림 수신 기능 활성화 desc: logs 폴더에 텍스트 파일로 로그가 저장됩니다.
desc: 수신된 메시지를 XSOverlay의 기능을 통해 알림으로 받아볼 수 있습니다. send_message_to_vrc:
auto_export_message_logs: label: VRChat에 메시지 전송
label: 대화 로그 자동 저장 desc: VRChat에 메시지를 보내지 않고 사용할 수 있는 방법이 있지만 지원되지 않습니다. VRChat에 메시지를 보내려면 이 기능을 활성화하세요.
desc: logs 폴더에 텍스트 파일로 로그가 저장됩니다.
send_message_to_vrc: advanced_settings:
label: VRChat에 메시지 전송 osc_ip_address:
desc: VRChat에 메시지를 보내지 않고 사용할 수 있는 방법이 있지만 지원되지 않습니다. VRChat에 메시지를 보내려면 이 기능을 활성화하세요. label: OSC IP 주소
send_message_format: osc_port:
label: 메시지 형식 label: OSC 포트
desc: |- open_config_filepath:
메시지가 실제로 보이는 형식을 변경합니다. label: 설정 파일 열기
[message]가 메시지로 대체됩니다.
example_text: 이것은 예문입니다. 폰트, 줄바꿈 등 실제 표시와 다를 수 있습니다.
error_message: '[message]라는 문자는 사용할 수 없습니다.'
send_message_format_with_t:
label: 메시지 형식 (번역 포함)
desc: |-
메시지가 실제로 보이는 형식을 변경합니다.
[message]는 메시지로, [translation]은 번역된 메시지로 대체됩니다.
XSOverlay의 알림에서도 사용됩니다.
example_text: 예문입니다. 글꼴, 줄 바꿈 등이 실제 표시와 다를 수 있습니다.
error_message: '[message]와 [translation]이라는 문자는 사용할 수 없습니다.'
received_message_format:
label: 메시지 형식
desc: |-
메시지가 실제로 보이는 형식을 변경합니다.
[message]가 메시지로 대체됩니다.
example_text: 이것은 예문입니다. 폰트, 줄바꿈 등 실제 표시와 다를 수 있습니다.
error_message: '[message]라는 문자는 사용할 수 없습니다.'
received_message_format_with_t:
label: 메시지 형식 (번역 포함)
desc: |-
메시지가 실제로 보이는 형식을 변경합니다.
[message]는 메시지로, [translation]은 번역된 메시지로 대체됩니다.
XSOverlay의 알림에서도 사용됩니다.
example_text: 이것은 예문입니다. 폰트, 줄바꿈 등 실제 표시와 다를 수 있습니다.
error_message: '[message]와 [translation]이라는 문자는 사용할 수 없습니다.'
osc_ip_address:
label: OSC IP 주소
osc_port:
label: OSC 포트
open_config_filepath:
label: 설정 파일 열기

View File

@@ -1,3 +1,6 @@
common:
go_back_button_label: 返回
main_page: main_page:
translation: 翻译 translation: 翻译
transcription_send: 你的语音转文字 transcription_send: 你的语音转文字
@@ -10,208 +13,201 @@ main_page:
target_language: 目标语言 target_language: 目标语言
translator: 翻译器 translator: 翻译器
translator_ctranslate2: 离线翻译(默认) translator_ctranslate2: 离线翻译(默认)
textbox_tab_all: 全部
textbox_tab_sent: 发送 message_log:
textbox_tab_received: 接受 all: 全部
textbox_tab_system: 系统 sent: 发送
textbox_system_message: received: 接受
enabled_translation: 翻译已启动. system: 系统
disabled_translation: 翻译已关闭.
enabled_voice2chatbox: 正在翻译你的语音并转成文字. # textbox_system_message:
disabled_voice2chatbox: 你的语音翻译结束了. # enabled_translation: 翻译已启动.
enabled_speaker2log: 正在翻译他人语音并转成文字. # disabled_translation: 翻译已关闭.
disabled_speaker2log: 第三者的语音翻译结束了. # enabled_voice2chatbox: 正在翻译你的语音并转成文字.
enabled_foreground: 顶层显示开启. # disabled_voice2chatbox: 你的语音翻译结束了.
disabled_foreground: 顶层显示关闭. # enabled_speaker2log: 正在翻译他人语音并转成文字.
auth_key_success: 授权密匙更新完毕 # disabled_speaker2log: 第三者的语音翻译结束了.
auth_key_error: 授权密匙错误或已达到翻译API(翻译器决定)使用次数上限. # enabled_foreground: 顶层显示开启.
no_mic_device_detected_error: 未检测到你的麦克风. # disabled_foreground: 顶层显示关闭.
no_speaker_device_detected_error: 未检测到他人语音输入. # auth_key_success: 授权密匙更新完毕
translation_engine_limit_error: 自动更换了翻译器.原因是对该翻译器请求太频繁,它暂时拒绝了接收翻译请求.如仍想使用原本翻译器,请稍等片刻后在重启VRCT. # auth_key_error: 授权密匙错误或已达到翻译API(翻译器决定)使用次数上限.
detected_by_word_filter: 该单词 {{detected_message}} 被单词过滤器检测出所以没有发送. # no_mic_device_detected_error: 未检测到你的麦克风.
selected_your_language: '[你的语言]设定为 {{your_language}} ' # no_speaker_device_detected_error: 未检测到他人语音输入.
selected_target_language: '[目标语言]设定为 {{target_language}} ' # translation_engine_limit_error: 自动更换了翻译器.原因是对该翻译器请求太频繁,它暂时拒绝了接收翻译请求.如仍想使用原本翻译器,请稍等片刻后在重启VRCT.
switched_language_preset_tab: 已切换为第 {{tab_no}} 号语言设定 # detected_by_word_filter: 该单词 {{detected_message}} 被单词过滤器检测出所以没有发送.
latest_language_setting: 现在,你的语言是 {{your_language}},目标语言是 {{target_language}} . # selected_your_language: '[你的语言]设定为 {{your_language}} '
opened_web_page_booth: 在你的默认浏览器上打开了Booth页面 # selected_target_language: '[目标语言]设定为 {{target_language}} '
opened_web_page_vrct_documents: |- # switched_language_preset_tab: 已切换为第 {{tab_no}} 号语言设定
在你的默认浏览器上打开了VRCT文档,有着关于VRCT的使用方法 # latest_language_setting: 现在,你的语言是 {{your_language}},目标语言是 {{target_language}} .
其他问题、请求、查询等请通过文档底部的链接或X (Twitter) 联系我们! # opened_web_page_booth: 在你的默认浏览器上打开了Booth页面
# opened_web_page_vrct_documents: |-
# 在你的默认浏览器上打开了VRCT文档,有着关于VRCT的使用方法
# 其他问题、请求、查询等请通过文档底部的链接或X (Twitter) 联系我们!
update_available: 有新版本可供使用! update_available: 有新版本可供使用!
update_software_desc: |-
下载新版本并自动启动
会花少许时间,现在更新吗?
deny_update_software: 稍后再说
accept_update_software: 更新后自动启动
updating: 更新中...
state_text_enabled: 启用 state_text_enabled: 启用
state_text_disabled: 停用 state_text_disabled: 停用
cover_message: 在设置窗口关闭前,VRCT的功能暂时停用
confirmation_message: language_selector:
update_software: |- title_your_language: 你的语言
下载新版本并自动启动 title_target_language: 目标语言
会花少许时间,现在更新吗?
deny_update_software: 稍后再说
accept_update_software: 更新后自动启动
updating: 更新中...
detected_over_ui_size: |-
现在的界面大小: {{current_ui_size}}
VRCT的窗口大小有可能会大于显示器
请根据你的屏幕大小设置合适的VRCT的大小
deny_adjust_ui_size: 现在界面大小是合适的
accept_adjust_ui_size: 缩小界面大小并重新启动
selectable_language_window:
title_your_language: 你的语言
title_target_language: 目标语言
go_back_button: 返回
overlay_settings:
restore_default_settings: 恢复默认设置
opacity: 透明度
ui_scaling: 大小
x_position: X轴(左右)
y_position: Y轴(上下)
z_position: Z轴(前后)
x_rotation: X轴旋转
y_rotation: Y轴旋转
z_rotation: Z轴旋转
display_duration: 显示持续时间
fadeout_duration: 渐隐持续时间
config_page: config_page:
config_title: 设定
compact_mode: 精简模式
version: 版本 {{version}} version: 版本 {{version}}
restart_message: 重启并应用设定 # config_title: 设定
common_error_message: # compact_mode: 精简模式
invalid_value: 无效的值 # restart_message: 重启并应用设定
# common_error_message:
# invalid_value: 无效的值
side_menu_labels: side_menu_labels:
appearance: 外观 appearance: 外观
translation: 翻译 translation: 翻译
transcription: 转录 transcription: 转录
transcription_mic: 你的麦克风
transcription_speaker: 他人声音
transcription_internal_model: 转录模型
others: 其他 others: 其他
advanced_settings: 高级设置 advanced_settings: 高级设置
transparency:
label: 透明度 device:
desc: 更改主视窗透明度 mic_host:
appearance_theme: label: 麦克风(host/driver)
label: 主题 mic_device:
desc: 更改主题配色 label: 麦克风 (设备)
ui_size: mic_dynamic_energy_threshold:
label: 界面大小 label_for_automatic: 麦克风输入阈值(当前设置:自动)
textbox_ui_size: desc_for_automatic: 自动调整麦克风输入阈值
label: 文本框字体大小 label_for_manual: 麦克风输入阈值(当前设置:手动)
desc: 你可以根据用户界面大小调整文本框中使用的字体大小 desc_for_manual: 使用滑杆手动确定麦克风输入灵敏度。按下麦克风图标输入语音,并在监控音量的同时调节灵敏度
message_box_ratio: error_message: 数值应为 0 至 {{max}} 之间。
label: 文本框大小 speaker_device:
desc: |- label: 他人语音 (设备)
你可以根据界面比例调整文本框大小 speaker_dynamic_energy_threshold:
※可能不准确 label_for_automatic: 他人语音接收阈值(当前设置:自动)
font_family: desc_for_automatic: 自动调节他人语音接收阈值
label: 字体 label_for_manual: 他人语音接收阈值(当前设置:手动)
ui_language: desc_for_manual: 使用滑杆手动调整他人语音接收阈值.在按下耳机按钮时,请根据实际听到的声音调整该大小
label: 界面语言 error_message: '设定的数值从 0 到 {{max}} '
to_restore_main_page_geometry: no_device_error_message: 未检测到他人语音
label: 记录主界面位置
desc: 启动时,按照上次的大小和位置启动 appearance:
use_translation_feature: transparency:
label: 启用翻译功能 label: 透明度
desc: 关闭此功能时,无法使用翻译功能.VRCT的启动速度会变得更快一些.这适用于不需要翻译功能,只将VRCT用作聊天框和转录工具的用户. desc: 更改主视窗透明度
ctranslate2_weight_type: ui_size:
label: 选择离线翻译模型 label: 界面大小
desc: 可以选择用于离线翻译的翻译模型 textbox_ui_size:
small: 普通模型 ({{capacity}}) label: 文本框字体大小
large: 高精度模型 ({{capacity}}) desc: 你可以根据用户界面大小调整文本框中使用的字体大小。
deepl_auth_key: send_message_button_type:
label: DeepL 授权密匙 label: 发送信息按钮
desc: |- hide: 隐藏 (可使用回车发送信息)
在使用的时候,使用时请在主屏幕上通过 DeepL_API 选择 {{translator}} show: 显示
※某些语言可能不支持 show_and_disable_enter_key: 显示,并且停用‘回车发送信息’
open_auth_key_webpage: 打开DeepL账号页面 font_family:
auth_key_success: 授权密匙认证完成。 label: 字体
auth_key_error: 授权密匙错误或已达API使用上限 ui_language:
mic_host: label: 界面语言
label: 麦克风(host/driver)
mic_device: translation:
label: 麦克风 (设备) ctranslate2_weight_type:
mic_dynamic_energy_threshold: label: 选择离线翻译模型
label_for_automatic: 麦克风输入阈值(当前设置:自动) desc: 可以选择用于离线翻译的翻译模型
desc_for_automatic: 自动调整麦克风输入阈值 small: 普通模型 ({{capacity}})
label_for_manual: 麦克风输入阈值(当前设置:手动) large: 高精度模型 ({{capacity}})
desc_for_manual: 使用滑杆手动确定麦克风输入灵敏度。按下麦克风图标输入语音,并在监控音量的同时调节灵敏度。 deepl_auth_key:
error_message: 数值应为 0 至 {{max}} 之间。 label: DeepL 授权密匙
mic_record_timeout: desc: |-
label: 语音输入结束后的静音时间 在使用的时候,使用时请在主屏幕上通过 DeepL_API 选择 {{translator}}
desc: 当检测到静音并经过设定的秒数后,语音输入即被视为完成。 ※某些语言可能不支持
error_message: 数值应为 0 至 [{{mic_phrase_timeout_label}}] open_auth_key_webpage: 打开DeepL账号页面
mic_phrase_timeout: auth_key_success: 授权密匙认证完成。
label: 转录间隔 auth_key_error: 授权密匙错误或已达API使用上限\
desc: 在经过设定的时间后执行转录
error_message: 转录间隔时间大于0秒且不能小于「{{mic_record_timeout_label}}」 transcription:
mic_max_phrase: section_label_mic: 你的麦克风
label: 麦克风发送时的最小单词数 section_label_speaker: 他人声音
desc: 转录字数的下限,只有超过这个数字,才会记录翻译结果并发送到VRC mic_record_timeout:
error_message: 数值应为 0 以上 label: 语音输入结束后的静音时间
mic_word_filter: desc: 当检测到静音并经过设定的秒数后,语音输入即被视为完成。
label: 单词过滤器 error_message: 数值应为 0 至 [{{mic_phrase_timeout_label}}]
desc: |- mic_phrase_timeout:
检测出被记录的单词时,不会发送这段话 label: 转录间隔
如要添加多个单词,可以用逗号来分割 desc: 在经过设定的时间后执行转录
※不会记录重复的单词 error_message: 转录间隔时间大于0秒且不能小于「{{mic_record_timeout_label}}」
add_button_label: 添加 mic_max_phrase:
count_desc: '现在被记录的单词数: {{count}}' label: 麦克风发送时的最小单词数
speaker_device: desc: 转录字数的下限,只有超过这个数字,才会记录翻译结果并发送到VRC
label: 他人语音 (设备) error_message: 数值应为 0 以上
speaker_dynamic_energy_threshold: mic_word_filter:
label_for_automatic: 他人语音接收阈值(当前设置:自动) label: 单词过滤器
desc_for_automatic: 自动调节他人语音接收阈值 desc: |-
label_for_manual: 他人语音接收阈值(当前设置:手动) 检测出被记录的单词时,不会发送这段话
desc_for_manual: 使用滑杆手动调整他人语音接收阈值.在按下耳机按钮时,请根据实际听到的声音调整该大小 如要添加多个单词,可以用逗号来分割
error_message: '设定的数值从 0 到 {{max}} ' ※不会记录重复的单词
no_device_error_message: 未检测到他人语音 add_button_label: 添加
speaker_record_timeout: count_desc: '现在被记录的单词数: {{count}}'
label: 语音接收结束后的静音时间 speaker_record_timeout:
desc: 当检测到静音并经过设定的秒数后,语音接收即被视为完成。 label: 语音接收结束后的静音时间
error_message: 数值应为 0 至 「{{speaker_phrase_timeout_label}}」 desc: 当检测到静音并经过设定的秒数后,语音接收即被视为完成。
speaker_phrase_timeout: error_message: 数值应为 0 至 「{{speaker_phrase_timeout_label}}」
label: 转录间隔 speaker_phrase_timeout:
desc: 在经过设定的时间后执行转录 label: 转录间隔
error_message: 转录间隔时间大于0秒且不能小于「{{speaker_record_timeout_label}}」 desc: 在经过设定的时间后执行转录
speaker_max_phrase: error_message: 转录间隔时间大于0秒且不能小于「{{speaker_record_timeout_label}}」
label: 语音接收时的最小单词数 speaker_max_phrase:
desc: 转录字数的下限,只有超过这个数字,才会记录转录结果 label: 语音接收时的最小单词数
error_message: 数值应为 0 以上 desc: 转录字数的下限,只有超过这个数字,才会记录转录结果
use_whisper_feature: error_message: 数值应为 0 以上
label: 使用Whisper模型翻译 use_whisper_feature:
desc: 在某些语言中,语音识别的准确性可能会提高.语音识别的过程中,CPU占有率可能会提高,请根据你的pc性能来决定是否使用它. label: 使用Whisper模型翻译
whisper_weight_type: desc: 在某些语言中,语音识别的准确性可能会提高.语音识别的过程中,CPU占有率可能会提高,请根据你的pc性能来决定是否使用它.
label: 选择某个Whisper模型 whisper_weight_type:
desc: |- label: 选择某个Whisper模型
通常来说,容量越大的模型精度也会越高,但也会增加文字显示所需要的时间和CPU的使用率。请浏览各个模型的文档 desc: |-
※特别是大于medium容量的模型、因CPU性能原因甚至无法使用。 通常来说,容量越大的模型精度也会越高,但也会增加文字显示所需要的时间和CPU的使用率。请浏览各个模型的文档
model_template: '{{model_name}} 模型 ({{capacity}})' ※特别是大于medium容量的模型、因CPU性能原因甚至无法使用。
recommended_model_template: '{{model_name}} 模型 ({{capacity}}) (推荐)' model_template: '{{model_name}} 模型 ({{capacity}})'
enable_overlay_small_log: recommended_model_template: '{{model_name}} 模型 ({{capacity}}) (推荐)'
label: 可使用Overlay
open_overlay_settings: 打开Overlay进阶设置 vr:
auto_clear_the_message_box: restore_default_settings: 恢复默认设置
label: 发言后自动清空chatbox opacity: 透明度
send_only_translated_messages: ui_scaling: 大小
label: 只发送翻译后的信息 x_position: X轴(左右)
send_message_button_type: y_position: Y轴(上下)
label: 发送信息按钮 z_position: Z轴(前后)
hide: 隐藏 (可使用回车发送信息) x_rotation: X轴旋转
show: 显示 y_rotation: Y轴旋转
show_and_disable_enter_key: 显示,并且停用‘回车发送信息’ z_rotation: Z轴旋转
auto_export_message_logs: display_duration: 显示持续时间
label: 自动导出聊天记录 fadeout_duration: 渐隐持续时间
desc: 以文本文件的形式在logs文件夹中保存。
vrc_mic_mute_sync: others:
label: 与VRC中的麦克风静音同步 auto_clear_the_message_box:
desc: |- label: 发言后自动清空chatbox
当VRChat的麦克风处于静音时,不在VRChat中发送信息 send_only_translated_messages:
※存在少许延迟且不支持按键发言. label: 只发送翻译后的信息
send_message_to_vrc: auto_export_message_logs:
label: 发送信息至VRChat label: 自动导出聊天记录
desc: 不发送信息至VRChat的情况下也能使用它,但该功能现在并未完成.在想要发送信息时,请不要忘记打开这个功能. desc: 以文本文件的形式在logs文件夹中保存。
osc_ip_address: vrc_mic_mute_sync:
label: OSC IP 地址 label: 与VRC中的麦克风静音同步
osc_port: desc: |-
label: OSC 端口 当VRChat的麦克风处于静音时,不在VRChat中发送信息
open_config_filepath: ※存在少许延迟且不支持按键发言.
label: 打开设置文件 send_message_to_vrc:
label: 发送信息至VRChat
desc: 不发送信息至VRChat的情况下也能使用它,但该功能现在并未完成.在想要发送信息时,请不要忘记打开这个功能.
advanced_settings:
osc_ip_address:
label: OSC IP 地址
osc_port:
label: OSC 端口
open_config_filepath:
label: 打开设置文件

View File

@@ -1,3 +1,6 @@
common:
go_back_button_label: 返回
main_page: main_page:
translation: 翻譯 translation: 翻譯
transcription_send: 麥克風轉文字 transcription_send: 麥克風轉文字
@@ -10,242 +13,203 @@ main_page:
target_language: 目標語言 target_language: 目標語言
translator: 翻譯器 translator: 翻譯器
translator_ctranslate2: 離線翻譯(預設) translator_ctranslate2: 離線翻譯(預設)
textbox_tab_all: 全部
textbox_tab_sent: 已發送 message_log:
textbox_tab_received: 已接收 all: 全部
textbox_tab_system: 系統 sent: 已發送
textbox_system_message: received: 已接收
enabled_easter_egg: 你找到了彩蛋!看看你的 VR Overlay 有沒有什麼變化? system: 系統
enabled_translation: 翻譯功能已啟用。
disabled_translation: 翻譯功能已停用。 # textbox_system_message:
enabled_voice2chatbox: 麥克風轉文字已啟用。 # enabled_easter_egg: 你找到了彩蛋!看看你的 VR Overlay 有沒有什麼變化?
disabled_voice2chatbox: 麥克風轉文字已停用。 # enabled_translation: 翻譯功能已啟用。
enabled_speaker2log: 喇叭轉文字已啟用。 # disabled_translation: 翻譯功能已停用。
disabled_speaker2log: 喇叭轉文字已用。 # enabled_voice2chatbox: 麥克風轉文字已用。
enabled_foreground: 最上層顯示已啟用。 # disabled_voice2chatbox: 麥克風轉文字已停用。
disabled_foreground: 最上層顯示已停用。 # enabled_speaker2log: 喇叭轉文字已啟用。
auth_key_success: 授權金鑰更新完成 # disabled_speaker2log: 喇叭轉文字已停用
auth_key_error: 授權金鑰錯誤或已達使用上限 # enabled_foreground: 最上層顯示已啟用
no_mic_device_detected_error: 未偵測到麥克風 # disabled_foreground: 最上層顯示已停用
no_speaker_device_detected_error: 未偵測到喇叭 # auth_key_success: 授權金鑰更新完成
translation_engine_limit_error: 翻譯引擎已自動變更。由於請求太頻繁,已被這個翻譯引擎暫時受限。如果你想使用相同的翻譯引擎,請稍等片刻,重新啟動 VRCT 並重試 # auth_key_error: 授權金鑰錯誤或已達使用上限
detected_by_word_filter: 由於詞語過濾器的偵測,「{{detected_message}}」未被發送 # no_mic_device_detected_error: 未偵測到麥克風
selected_your_language: 「你的語言」已設為 {{your_language}} # no_speaker_device_detected_error: 未偵測到喇叭
selected_target_language: 「目標語言」已設為 {{target_language}} # translation_engine_limit_error: 翻譯引擎已自動變更。由於請求太頻繁,已被這個翻譯引擎暫時受限。如果你想使用相同的翻譯引擎,請稍等片刻,重新啟動 VRCT 並重試
switched_language_preset_tab: 已切換到第 {{tab_no}} 個語言設定 # detected_by_word_filter: 由於詞語過濾器的偵測,「{{detected_message}}」未被發送
latest_language_setting: 目前「你的語言」設為 {{your_language}},「目標語言」設為 {{target_language}} # selected_your_language: 「你的語言」設為 {{your_language}}。
opened_web_page_booth: 已在瀏覽器中打開 Booth 頁面 # selected_target_language: 「目標語言」已設為 {{target_language}}
opened_web_page_vrct_documents: |- # switched_language_preset_tab: 已切換到第 {{tab_no}} 個語言設定。
已在瀏覽器中打開VRCT文件頁面。 # latest_language_setting: 目前「你的語言」設為 {{your_language}},「目標語言」設為 {{target_language}}。
如有任何問題、請求或查詢,請通過文件頁面底部的連結、「聯絡表單」或 X (Twitter) 聯絡我們! # opened_web_page_booth: 已在瀏覽器中打開 Booth 頁面。
# opened_web_page_vrct_documents: |-
# 已在瀏覽器中打開VRCT文件頁面。
# 如有任何問題、請求或查詢,請通過文件頁面底部的連結、「聯絡表單」或 X (Twitter) 聯絡我們!
update_available: 有新版本可供使用! update_available: 有新版本可供使用!
update_software_desc: |-
下載新版本並自動更新 VRCT。
會花一些時間,現在更新嗎?
deny_update_software: 稍後再說
accept_update_software: 更新
updating: 正在更新...
state_text_enabled: 啟用 state_text_enabled: 啟用
state_text_disabled: 停用 state_text_disabled: 停用
cover_message: VRCT 功能在設定視窗關閉前暫時停用。
confirmation_message: language_selector:
update_software: |- title_your_language: 選擇你的語言
下載新版本並自動更新 VRCT。 title_target_language: 選擇目標語言
會花一些時間,現在更新嗎?
deny_update_software: 稍後再說
accept_update_software: 更新
updating: 正在更新...
detected_over_ui_size: |-
介面大小:{{current_ui_size}}
VRCT 的視窗大小可能超過你的螢幕大小。
deny_adjust_ui_size: 保持目前大小
accept_adjust_ui_size: 縮小介面並重新啟動
selectable_language_window:
title_your_language: 選擇你的語言
title_target_language: 選擇目標語言
go_back_button: 返回
overlay_settings:
restore_default_settings: 恢復預設設定
opacity: 透明度
ui_scaling: 介面縮放
x_position: X軸左右
y_position: Y軸上下
z_position: Z軸前後
x_rotation: X軸旋轉
y_rotation: Y軸旋轉
z_rotation: Z軸旋轉
display_duration: 顯示持續時間
fadeout_duration: 淡出持續時間
config_page: config_page:
config_title: 設定
compact_mode: 精簡模式
version: 版本 {{version}} version: 版本 {{version}}
restart_message: 重新啟動以應用變更。 # config_title: 設定
common_error_message: # compact_mode: 精簡模式
invalid_value: 無效值 # restart_message: 重新啟動以應用變更
# common_error_message:
# invalid_value: 無效值。
side_menu_labels: side_menu_labels:
appearance: 外觀 appearance: 外觀
translation: 翻譯 translation: 翻譯
transcription: 轉錄 transcription: 轉錄
transcription_mic: 麥克風
transcription_speaker: 喇叭
transcription_internal_model: 轉錄模型
vr: VR vr: VR
others: 其他 others: 其他
others_send_message_formats: 訊息格式(發送)
others_received_message_formats: 訊息格式XSOverlay & 喇叭轉文字)
others_speaker2chatbox: 喇叭轉文字
advanced_settings: 進階設定 advanced_settings: 進階設定
transparency:
label: 透明度 device:
desc: 變更主視窗的透明度。 mic_host:
appearance_theme: label: 麥克風 Host/Driver
label: 主題 mic_device:
desc: 變更配色主題。 label: 麥克風裝置
ui_size: mic_dynamic_energy_threshold:
label: 介面大小 label_for_automatic: 麥克風能量閾值(當前設置:自動)
textbox_ui_size: desc_for_automatic: 自動判定麥克風輸入靈敏度。
label: 訊息框字體大小 label_for_manual: 麥克風能量閾值(當前設置:手動)
desc: 你可以根據介面大小調整記錄中使用的字體大小 desc_for_manual: 使用滑桿調整麥克風輸入靈敏度,你可以按下麥克風圖示來測試
message_box_ratio: error_message: 可以設置 0 到 {{max}} 之間的值。
label: 訊息框大小 speaker_device:
desc: |- label: 喇叭裝置
你可以依介面比例縮放輸入訊息框。 speaker_dynamic_energy_threshold:
*可能不準確。 label_for_automatic: 喇叭能量閾值(當前設置:自動)
font_family: desc_for_automatic: 自動確定喇叭輸入靈敏度。
label: 字型 label_for_manual: 喇叭能量閾值(當前設置:手動)
ui_language: desc_for_manual: 使用滑桿調整喇叭輸入靈敏度,你可以按下喇叭圖示來測試。
label: 介面語言 error_message: 可以設置 0 到 {{max}} 之間的值。
to_restore_main_page_geometry: no_device_error_message: 未偵測到喇叭裝置。
label: 記住主視窗位置
desc: 啟動時恢復上次視窗的位置和大小。 appearance:
use_translation_feature: transparency:
label: 使用翻譯功能 label: 透明度
desc: 當此功能關閉時,無法使用翻譯功能。但 VRCT 會啟動得更快。適合不需要翻譯功能、只使用VRCT作為聊天框和轉錄工具的使用者 desc: 變更主視窗的透明度
ctranslate2_weight_type: ui_size:
label: 選擇離線翻譯模型 label: 介面大小
desc: 你可以選擇用於離線翻譯引擎的翻譯模型。 textbox_ui_size:
small: 基本模型({{capacity}} label: 訊息框字體大小
large: 高準確率模型({{capacity}} desc: 你可以根據介面大小調整記錄中使用的字體大小。
deepl_auth_key: send_message_button_type:
label: DeepL 授權金鑰 label: 發送訊息按鈕
desc: 使用 DeepL API 時請在主螢幕選擇 {{translator}}。※可能不支援某些語言。 hide: 隱藏(使用 Enter 鍵發送)
open_auth_key_webpage: 打開 DeepL 帳號頁面 show: 顯示
auth_key_success: 授權金鑰更新完成。 show_and_disable_enter_key: 顯示並停用 Enter 鍵發送
auth_key_error: 授權金鑰錯誤或已達使用上限。 font_family:
mic_host: label: 字型
label: 麥克風 Host/Driver ui_language:
mic_device: label: 介面語言
label: 麥克風裝置
mic_dynamic_energy_threshold: translation:
label_for_automatic: 麥克風能量閾值(當前設置:自動) ctranslate2_weight_type:
desc_for_automatic: 自動判定麥克風輸入靈敏度。 label: 選擇離線翻譯模型
label_for_manual: 麥克風能量閾值(當前設置:手動) desc: 你可以選擇用於離線翻譯引擎的翻譯模型。
desc_for_manual: 使用滑桿調整麥克風輸入靈敏度,你可以按下麥克風圖示來測試。 small: 基本模型({{capacity}}
error_message: 可以設置 0 到 {{max}} 之間的值。 large: 高準確率模型({{capacity}}
mic_record_timeout: deepl_auth_key:
label: 麥克風音訊 - 判定結束時間 label: DeepL 授權金鑰
desc: 麥克風未收到音訊後,結束一段話的判定時間(秒) desc: 使用 DeepL API 時請在主螢幕選擇 {{translator}}。※可能不支援某些語言
error_message: 不能大於「{{mic_phrase_timeout_label}}」,應為 0 或更高。 open_auth_key_webpage: 打開 DeepL 帳號頁面
mic_phrase_timeout: auth_key_success: 授權金鑰更新完成。
label: 麥克風音訊 - 紀錄間隔時間 auth_key_error: 授權金鑰錯誤或已達使用上限。
desc: 每隔多久要紀錄一次音訊。
error_message: 不能小於「{{mic_record_timeout_label}}」,應為 0 或更高。 transcription:
mic_max_phrase: section_label_mic: 麥克風
label: 麥克風音訊 - 最大單詞數量 section_label_speaker: 喇叭
desc: 只有在單詞超過此數量時,才會記錄結果並發送到 VRChat。 mic_record_timeout:
error_message: 可以設置為 0 或更高的數值。 label: 麥克風音訊 - 判定結束時間
mic_word_filter: desc: 麥克風未收到音訊後,結束一段話的判定時間(秒)。
label: 麥克風單詞過濾器 error_message: 不能大於「{{mic_phrase_timeout_label}}」,應為 0 或更高。
desc: |- mic_phrase_timeout:
如果偵測到清單內的單詞,則不會發送訊息。要一次新增多個詞語,請用「,」(半形逗號)分隔。 label: 麥克風音訊 - 紀錄間隔時間
*重複詞語會被忽略 desc: 每隔多久要紀錄一次音訊
add_button_label: 新增 error_message: 不能小於「{{mic_record_timeout_label}}」,應為 0 或更高。
count_desc: 當前註冊詞語數量:{{count}} mic_max_phrase:
speaker_device: label: 麥克風音訊 - 最大單詞數量
label: 喇叭裝置 desc: 只有在單詞超過此數量時,才會記錄結果並發送到 VRChat。
speaker_dynamic_energy_threshold: error_message: 可以設置為 0 或更高的數值。
label_for_automatic: 喇叭能量閾值(當前設置:自動) mic_word_filter:
desc_for_automatic: 自動確定喇叭輸入靈敏度。 label: 麥克風單詞過濾器
label_for_manual: 喇叭能量閾值(當前設置:手動) desc: |-
desc_for_manual: 使用滑桿調整喇叭輸入靈敏度,你可以按下喇叭圖示來測試。 如果偵測到清單內的單詞,則不會發送訊息。要一次新增多個詞語,請用「,」(半形逗號)分隔。
error_message: 可以設置 0 到 {{max}} 之間的值 *重複詞語會被忽略
no_device_error_message: 未偵測到喇叭裝置。 add_button_label: 新增
speaker_record_timeout: count_desc: 當前註冊詞語數量:{{count}}
label: 喇叭音訊 - 判定結束時間 speaker_record_timeout:
desc: 偵測到靜音並在指定秒數後認為喇叭輸入已結束。(秒) label: 喇叭音訊 - 判定結束時間
error_message: 不能大於「{{speaker_phrase_timeout_label}}」,應為 0 或更高。 desc: 偵測到靜音並在指定秒數後認為喇叭輸入已結束。(秒)
speaker_phrase_timeout: error_message: 不能大於「{{speaker_phrase_timeout_label}}」,應為 0 或更高。
label: 喇叭音訊 - 紀錄間隔時間 speaker_phrase_timeout:
desc: 以指定秒數間隔進行轉錄處理。 label: 喇叭音訊 - 紀錄間隔時間
error_message: 不能小於「{{speaker_record_timeout_label}}」,應為 0 或更高 desc: 以指定秒數間隔進行轉錄處理
speaker_max_phrase: error_message: 不能小於「{{speaker_record_timeout_label}}」,應為 0 或更高。
label: 喇叭音訊 - 最大單詞數量 speaker_max_phrase:
desc: 只有在單詞超過此數量時,才會記錄結果並發送到 VRChat。 label: 喇叭音訊 - 最大單詞數量
error_message: 可以設置 0 或更高的數值 desc: 只有在單詞超過此數量時,才會記錄結果並發送到 VRChat
use_whisper_feature: error_message: 可以設置 0 或更高的數值。
label: 使用 Whisper 模型進行轉錄 use_whisper_feature:
desc: 在某些語言中語音識別的準確性可能會提高。使用語音識別時CPU使用率會增加請根據你的PC規格考慮是否使用此功能。 label: 使用 Whisper 模型進行轉錄
whisper_weight_type: desc: 在某些語言中語音識別的準確性可能會提高。使用語音識別時CPU使用率會增加請根據你的PC規格考慮是否使用此功能。
label: 選擇 Whisper 模型 whisper_weight_type:
desc: |- label: 選擇 Whisper 模型
一般來說容量較大的模型往往具有更高的準確性但這也導致轉錄時間較長和CPU使用率增加。請參考文檔了解各模型的說明。 desc: |-
※特別是超過中等大小的模型根據CPU性能可能難以運行。 一般來說容量較大的模型往往具有更高的準確性但這也導致轉錄時間較長和CPU使用率增加。請參考文檔了解各模型的說明。
model_template: '{{model_name}}模型({{capacity}}' ※特別是超過中等大小的模型根據CPU性能可能難以運行。
recommended_model_template: '{{model_name}}模型({{capacity}}(推薦)' model_template: '{{model_name}}模型({{capacity}}'
enable_overlay_small_log: recommended_model_template: '{{model_name}}模型({{capacity}})(推薦)'
label: 啟用 Overlay
open_overlay_settings: 打開 Overlay 自定義設定 vr:
auto_clear_the_message_box: restore_default_settings: 恢復預設設定
label: 自動清除 Chatbox opacity: 透明度
send_only_translated_messages: ui_scaling: 介面縮放
label: 僅發送翻譯訊息 x_position: X軸左右
send_message_button_type: y_position: Y軸上下
label: 發送訊息按鈕 z_position: Z軸前後
hide: 隱藏(使用 Enter 鍵發送) x_rotation: X軸旋轉
show: 顯示 y_rotation: Y軸旋轉
show_and_disable_enter_key: 顯示並停用 Enter 鍵發送 z_rotation: Z軸旋轉
notice_xsoverlay: display_duration: 顯示持續時間
label: XSOverlay 通知 fadeout_duration: 淡出持續時間
desc: 從 XSOverlay 的通知功能接收訊息。
auto_export_message_logs: others:
label: 自動匯出訊息記錄 auto_clear_the_message_box:
desc: 自動將對話訊息匯出為文字文件。 label: 自動清除 Chatbox
vrc_mic_mute_sync: send_only_translated_messages:
label: VRC 麥克風靜音同步 label: 僅發送翻譯訊息
desc: |- notice_xsoverlay:
當 VRChat 的麥克風靜音時VRCT 將不會向 VRChat 發送訊息。 label: XSOverlay 通知
*存在一些延遲且不支援按鍵發話 (PTT) desc: 從 XSOverlay 的通知功能接收訊息
send_message_to_vrc: auto_export_message_logs:
label: 發送訊息到 VRChat label: 自動匯出訊息記錄
desc: 當你打算向 VRChat 發送訊息時啟用此功能 desc: 自動將對話訊息匯出為文字文件
send_message_format: vrc_mic_mute_sync:
label: 發送的訊息格式 label: VRC 麥克風靜音同步
desc: |- desc: |-
你可以設定要發送訊息格式 當 VRChat 的麥克風靜音時VRCT 將不會向 VRChat 發送訊息。
[message] 將被替換為訊息 *存在一些延遲且不支援按鍵發話 (PTT)
example_text: 這是一個範例。字體、換行等可能與實際顯示不同。 send_message_to_vrc:
error_message: 不能使用 [message] 。 label: 發送訊息到 VRChat
send_message_format_with_t: desc: 當你打算向 VRChat 發送訊息時啟用此功能。
label: 發送的訊息格式(帶翻譯)
desc: |- advanced_settings:
你可以設定要發送的訊息格式。 osc_ip_address:
[message] 將被替換為訊息,並且 [translation] 將被替換為翻譯訊息。 label: OSC IP 位址
example_text: 這是一個範例。字體、換行等可能與實際顯示不同。 osc_port:
error_message: 不能使用 [message] 和 [translation] 。 label: OSC 端口
received_message_format: open_config_filepath:
label: 接收的訊息格式 label: 打開設定文件
desc: |-
用於 XSOverlay 的通知接收功能。
[message] 將被替換為訊息。
※它也將用於喇叭轉文字功能。
example_text: 這是一個範例。字體、換行等可能與實際顯示不同。
error_message: 不能使用 [message] 。
received_message_format_with_t:
label: 接收的訊息格式(附翻譯)
desc: |-
用於 XSOverlay 的通知接收功能。
[message] 將被替換為訊息,並且 [translation] 將被替換為翻譯訊息。
※它也將用於喇叭轉文字功能。
example_text: 這是一個範例。字體、換行等可能與實際顯示不同。
error_message: 不能使用 [message] 和 [translation] 。
osc_ip_address:
label: OSC IP 位址
osc_port:
label: OSC 端口
open_config_filepath:
label: 打開設定文件

View File

@@ -144,7 +144,7 @@ export const WordFilterListToggleComponent = (props) => {
return ( return (
<div className={styles.toggle_button_container}> <div className={styles.toggle_button_container}>
<p className={styles.words_count_text}>{t("config_page.mic_word_filter.count_desc", {count: word_filter_list_length} )}</p> <p className={styles.words_count_text}>{t("config_page.transcription.mic_word_filter.count_desc", {count: word_filter_list_length} )}</p>
<button className={styles.toggle_button_wrapper} onClick={OnclickFunction}> <button className={styles.toggle_button_wrapper} onClick={OnclickFunction}>
<ArrowLeftSvg className={svg_class_names}/> <ArrowLeftSvg className={svg_class_names}/>
</button> </button>

View File

@@ -46,7 +46,7 @@ const OscIpAddressContainer = () => {
return ( return (
<EntryContainer <EntryContainer
label={t("config_page.osc_ip_address.label")} label={t("config_page.advanced_settings.osc_ip_address.label")}
ui_variable={ui_variable} ui_variable={ui_variable}
onChange={onChangeFunction} onChange={onChangeFunction}
/> />
@@ -73,7 +73,7 @@ const OscPortContainer = () => {
return ( return (
<EntryContainer <EntryContainer
label={t("config_page.osc_port.label")} label={t("config_page.advanced_settings.osc_port.label")}
ui_variable={ui_variable} ui_variable={ui_variable}
onChange={onChangeFunction} onChange={onChangeFunction}
/> />
@@ -86,7 +86,7 @@ const OpenConfigFolderContainer = () => {
return ( return (
<> <>
<ActionButtonContainer <ActionButtonContainer
label={t("config_page.open_config_filepath.label")} label={t("config_page.advanced_settings.open_config_filepath.label")}
IconComponent={OpenFolderSvg} IconComponent={OpenFolderSvg}
onclickFunction={openFolder_ConfigFile} onclickFunction={openFolder_ConfigFile}
/> />

View File

@@ -44,8 +44,8 @@ const UiLanguageContainer = () => {
const is_not_en_lang = currentUiLanguage.data !== "en" && currentUiLanguage.data !== undefined; const is_not_en_lang = currentUiLanguage.data !== "en" && currentUiLanguage.data !== undefined;
return ( return (
<RadioButtonContainer <RadioButtonContainer
label={is_not_en_lang ? "UI Language" : t("config_page.ui_language.label")} label={is_not_en_lang ? "UI Language" : t("config_page.appearance.ui_language.label")}
desc={is_not_en_lang ? t("config_page.ui_language.label") : false} desc={is_not_en_lang ? t("config_page.appearance.ui_language.label") : false}
selectFunction={setUiLanguage} selectFunction={setUiLanguage}
name="ui_language" name="ui_language"
options={ui_configs.selectable_ui_languages} options={ui_configs.selectable_ui_languages}
@@ -85,7 +85,7 @@ const UiScalingContainer = () => {
return ( return (
<SliderContainer <SliderContainer
label={t("config_page.ui_size.label") + " (%)"} label={t("config_page.appearance.ui_size.label") + " (%)"}
min="40" min="40"
max="200" max="200"
onchangeCommittedFunction={onchangeCommittedFunction} onchangeCommittedFunction={onchangeCommittedFunction}
@@ -127,7 +127,7 @@ export const MessageLogUiScalingContainer = () => {
return ( return (
<SliderContainer <SliderContainer
label={t("config_page.textbox_ui_size.label") + " (%)"} label={t("config_page.appearance.textbox_ui_size.label") + " (%)"}
min="40" min="40"
max="200" max="200"
onchangeCommittedFunction={onchangeCommittedFunction} onchangeCommittedFunction={onchangeCommittedFunction}
@@ -146,13 +146,13 @@ const SendMessageButtonTypeContainer = () => {
return ( return (
<RadioButtonContainer <RadioButtonContainer
label={t("config_page.send_message_button_type.label")} label={t("config_page.appearance.send_message_button_type.label")}
selectFunction={setSendMessageButtonType} selectFunction={setSendMessageButtonType}
name="send_message_button_type" name="send_message_button_type"
options={[ options={[
{ id: "hide", label: t("config_page.send_message_button_type.hide") }, { id: "hide", label: t("config_page.appearance.send_message_button_type.hide") },
{ id: "show", label: t("config_page.send_message_button_type.show") }, { id: "show", label: t("config_page.appearance.send_message_button_type.show") },
{ id: "show_and_disable_enter_key", label: t("config_page.send_message_button_type.show_and_disable_enter_key") }, { id: "show_and_disable_enter_key", label: t("config_page.appearance.send_message_button_type.show_and_disable_enter_key") },
]} ]}
checked_variable={currentSendMessageButtonType} checked_variable={currentSendMessageButtonType}
column={true} column={true}
@@ -172,8 +172,7 @@ const FontFamilyContainer = () => {
return ( return (
<DropdownMenuContainer <DropdownMenuContainer
dropdown_id="font_family" dropdown_id="font_family"
label={t("config_page.font_family.label")} label={t("config_page.appearance.font_family.label")}
desc={t("config_page.font_family.label")}
selected_id={currentSelectedFontFamily.data} selected_id={currentSelectedFontFamily.data}
list={currentSelectableFontFamilyList.data} list={currentSelectableFontFamilyList.data}
selectFunction={selectFunction} selectFunction={selectFunction}
@@ -209,7 +208,7 @@ const TransparencyContainer = () => {
return ( return (
<SliderContainer <SliderContainer
label={t("config_page.transparency.label") + " (%)"} label={t("config_page.appearance.transparency.label") + " (%)"}
min="40" min="40"
max="100" max="100"
onchangeCommittedFunction={onchangeCommittedFunction} onchangeCommittedFunction={onchangeCommittedFunction}

View File

@@ -57,13 +57,13 @@ const Mic_Container = () => {
const getLabels = () => { const getLabels = () => {
if (currentEnableAutomaticMicThreshold.data === true) { if (currentEnableAutomaticMicThreshold.data === true) {
return { return {
label: t("config_page.mic_dynamic_energy_threshold.label_for_automatic"), label: t("config_page.device.mic_dynamic_energy_threshold.label_for_automatic"),
desc: t("config_page.mic_dynamic_energy_threshold.desc_for_automatic"), desc: t("config_page.device.mic_dynamic_energy_threshold.desc_for_automatic"),
}; };
} else { } else {
return { return {
label: t("config_page.mic_dynamic_energy_threshold.label_for_manual"), label: t("config_page.device.mic_dynamic_energy_threshold.label_for_manual"),
desc: t("config_page.mic_dynamic_energy_threshold.desc_for_manual"), desc: t("config_page.device.mic_dynamic_energy_threshold.desc_for_manual"),
}; };
} }
}; };
@@ -71,11 +71,11 @@ const Mic_Container = () => {
return ( return (
<div className={styles.mic_container}> <div className={styles.mic_container}>
<div className={styles.device_container} onMouseLeave={onMouseLeaveFunction}> <div className={styles.device_container} onMouseLeave={onMouseLeaveFunction}>
<LabelComponent label={t("config_page.mic_host_device.label")} /> <LabelComponent label={t("config_page.device.mic_host_device.label")} />
<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.mic_host_device.label_auto_select")}</p> <p className={styles.device_secondary_label}>{t("config_page.device.mic_host_device.label_auto_select")}</p>
<SwitchBox <SwitchBox
variable={currentEnableAutoMicSelect} variable={currentEnableAutoMicSelect}
toggleFunction={toggleEnableAutoMicSelect} toggleFunction={toggleEnableAutoMicSelect}
@@ -84,7 +84,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.mic_host_device.label_host")}</p> <p className={styles.device_secondary_label}>{t("config_page.device.mic_host_device.label_host")}</p>
<DropdownMenu <DropdownMenu
dropdown_id="mic_host" dropdown_id="mic_host"
selected_id={currentSelectedMicHost.data} selected_id={currentSelectedMicHost.data}
@@ -97,7 +97,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.mic_host_device.label_device")}</p> <p className={styles.device_secondary_label}>{t("config_page.device.mic_host_device.label_device")}</p>
<DropdownMenu <DropdownMenu
dropdown_id="mic_device" dropdown_id="mic_device"
selected_id={currentSelectedMicDevice.data} selected_id={currentSelectedMicDevice.data}
@@ -147,13 +147,13 @@ const Speaker_Container = () => {
const getLabels = () => { const getLabels = () => {
if (currentEnableAutomaticSpeakerThreshold.data === true) { if (currentEnableAutomaticSpeakerThreshold.data === true) {
return { return {
label: t("config_page.speaker_dynamic_energy_threshold.label_for_automatic"), label: t("config_page.device.speaker_dynamic_energy_threshold.label_for_automatic"),
desc: t("config_page.speaker_dynamic_energy_threshold.desc_for_automatic"), desc: t("config_page.device.speaker_dynamic_energy_threshold.desc_for_automatic"),
}; };
} else { } else {
return { return {
label: t("config_page.speaker_dynamic_energy_threshold.label_for_manual"), label: t("config_page.device.speaker_dynamic_energy_threshold.label_for_manual"),
desc: t("config_page.speaker_dynamic_energy_threshold.desc_for_manual"), desc: t("config_page.device.speaker_dynamic_energy_threshold.desc_for_manual"),
}; };
} }
@@ -162,11 +162,11 @@ const Speaker_Container = () => {
return ( return (
<div className={styles.speaker_container}> <div className={styles.speaker_container}>
<div className={styles.device_container} onMouseLeave={onMouseLeaveFunction}> <div className={styles.device_container} onMouseLeave={onMouseLeaveFunction}>
<LabelComponent label={t("config_page.speaker_device.label")} /> <LabelComponent label={t("config_page.device.speaker_device.label")} />
<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.speaker_device.label_auto_select")}</p> <p className={styles.device_secondary_label}>{t("config_page.device.speaker_device.label_auto_select")}</p>
<SwitchBox <SwitchBox
variable={currentEnableAutoSpeakerSelect} variable={currentEnableAutoSpeakerSelect}
toggleFunction={toggleEnableAutoSpeakerSelect} toggleFunction={toggleEnableAutoSpeakerSelect}
@@ -174,10 +174,10 @@ const Speaker_Container = () => {
</div> </div>
<div className={styles.device_dropdown}> <div className={styles.device_dropdown}>
<p className={styles.device_secondary_label}>{t("config_page.mic_host_device.label_device")}</p> <p className={styles.device_secondary_label}>{t("config_page.device.mic_host_device.label_device")}</p>
<DropdownMenu <DropdownMenu
dropdown_id="speaker_device" dropdown_id="speaker_device"
label={t("config_page.speaker_device.label")} label={t("config_page.device.speaker_device.label")}
selected_id={currentSelectedSpeakerDevice.data} selected_id={currentSelectedSpeakerDevice.data}
list={currentSpeakerDeviceList.data} list={currentSpeakerDeviceList.data}
selectFunction={selectFunction} selectFunction={selectFunction}

View File

@@ -48,7 +48,7 @@ const AutoClearMessageInputBoxContainer = () => {
return ( return (
<CheckboxContainer <CheckboxContainer
label={t("config_page.auto_clear_the_message_box.label")} label={t("config_page.others.auto_clear_the_message_box.label")}
variable={currentEnableAutoClearMessageInputBox} variable={currentEnableAutoClearMessageInputBox}
toggleFunction={toggleEnableAutoClearMessageInputBox} toggleFunction={toggleEnableAutoClearMessageInputBox}
/> />
@@ -60,7 +60,7 @@ const SendOnlyTranslatedMessagesContainer = () => {
return ( return (
<CheckboxContainer <CheckboxContainer
label={t("config_page.send_only_translated_messages.label")} label={t("config_page.others.send_only_translated_messages.label")}
variable={currentEnableSendOnlyTranslatedMessages} variable={currentEnableSendOnlyTranslatedMessages}
toggleFunction={toggleEnableSendOnlyTranslatedMessages} toggleFunction={toggleEnableSendOnlyTranslatedMessages}
/> />
@@ -74,8 +74,8 @@ const AutoExportMessageLogsContainer = () => {
return ( return (
<div className={styles.auto_export_message_logs_container}> <div className={styles.auto_export_message_logs_container}>
<LabelComponent <LabelComponent
label={t("config_page.auto_export_message_logs.label")} label={t("config_page.others.auto_export_message_logs.label")}
desc={t("config_page.auto_export_message_logs.desc")} desc={t("config_page.others.auto_export_message_logs.desc")}
/> />
<div className={styles.auto_export_message_logs_switch_section_container}> <div className={styles.auto_export_message_logs_switch_section_container}>
<ActionButton <ActionButton
@@ -96,8 +96,8 @@ export const VrcMicMuteSyncContainer = () => {
return ( return (
<CheckboxContainer <CheckboxContainer
label={t("config_page.vrc_mic_mute_sync.label")} label={t("config_page.others.vrc_mic_mute_sync.label")}
desc={t("config_page.vrc_mic_mute_sync.desc")} desc={t("config_page.others.vrc_mic_mute_sync.desc")}
variable={currentEnableVrcMicMuteSync} variable={currentEnableVrcMicMuteSync}
toggleFunction={toggleEnableVrcMicMuteSync} toggleFunction={toggleEnableVrcMicMuteSync}
/> />
@@ -109,8 +109,8 @@ const SendMessageToVrcContainer = () => {
return ( return (
<CheckboxContainer <CheckboxContainer
label={t("config_page.send_message_to_vrc.label")} label={t("config_page.others.send_message_to_vrc.label")}
desc={t("config_page.send_message_to_vrc.desc")} desc={t("config_page.others.send_message_to_vrc.desc")}
variable={currentEnableSendMessageToVrc} variable={currentEnableSendMessageToVrc}
toggleFunction={toggleEnableSendMessageToVrc} toggleFunction={toggleEnableSendMessageToVrc}
/> />
@@ -124,8 +124,8 @@ const SendReceivedMessageToVrcContainer = () => {
return ( return (
<CheckboxContainer <CheckboxContainer
label={t("config_page.send_received_message_to_vrc.label")} label={t("config_page.others.send_received_message_to_vrc.label")}
desc={t("config_page.send_received_message_to_vrc.desc")} desc={t("config_page.others.send_received_message_to_vrc.desc")}
variable={currentEnableSendReceivedMessageToVrc} variable={currentEnableSendReceivedMessageToVrc}
toggleFunction={toggleEnableSendReceivedMessageToVrc} toggleFunction={toggleEnableSendReceivedMessageToVrc}
/> />

View File

@@ -44,9 +44,10 @@ export const Transcription = () => {
const Mic_Container = () => { const Mic_Container = () => {
const { t } = useTranslation();
return ( return (
<div> <div>
<SectionLabelComponent label="Mic" /> <SectionLabelComponent label={t("config_page.transcription.section_label_mic")} />
<MicRecordTimeout_Box /> <MicRecordTimeout_Box />
<MicPhraseTimeout_Box /> <MicPhraseTimeout_Box />
<MicMaxWords_Box /> <MicMaxWords_Box />
@@ -75,8 +76,8 @@ const MicRecordTimeout_Box = () => {
return ( return (
<EntryContainer <EntryContainer
label={t("config_page.mic_record_timeout.label")} label={t("config_page.transcription.mic_record_timeout.label")}
desc={t("config_page.mic_record_timeout.desc")} desc={t("config_page.transcription.mic_record_timeout.desc")}
ui_variable={ui_variable} ui_variable={ui_variable}
onChange={onChangeFunction} onChange={onChangeFunction}
/> />
@@ -102,8 +103,8 @@ const MicPhraseTimeout_Box = () => {
return ( return (
<EntryContainer <EntryContainer
label={t("config_page.mic_phrase_timeout.label")} label={t("config_page.transcription.mic_phrase_timeout.label")}
desc={t("config_page.mic_phrase_timeout.desc")} desc={t("config_page.transcription.mic_phrase_timeout.desc")}
ui_variable={ui_variable} ui_variable={ui_variable}
onChange={onChangeFunction} onChange={onChangeFunction}
/> />
@@ -129,8 +130,8 @@ const MicMaxWords_Box = () => {
return ( return (
<EntryContainer <EntryContainer
label={t("config_page.mic_max_phrase.label")} label={t("config_page.transcription.mic_max_phrase.label")}
desc={t("config_page.mic_max_phrase.desc")} desc={t("config_page.transcription.mic_max_phrase.desc")}
ui_variable={ui_variable} ui_variable={ui_variable}
onChange={onChangeFunction} onChange={onChangeFunction}
/> />
@@ -142,8 +143,8 @@ const MicWordFilter_Box = () => {
return ( return (
<WordFilterContainer <WordFilterContainer
label={t("config_page.mic_word_filter.label")} label={t("config_page.transcription.mic_word_filter.label")}
desc={t("config_page.mic_word_filter.desc")} desc={t("config_page.transcription.mic_word_filter.desc")}
/> />
); );
}; };
@@ -152,9 +153,10 @@ const MicWordFilter_Box = () => {
const Speaker_Container = () => { const Speaker_Container = () => {
const { t } = useTranslation();
return ( return (
<div> <div>
<SectionLabelComponent label="Speaker" /> <SectionLabelComponent label={t("config_page.transcription.section_label_speaker")} />
<SpeakerRecordTimeout_Box /> <SpeakerRecordTimeout_Box />
<SpeakerPhraseTimeout_Box /> <SpeakerPhraseTimeout_Box />
<SpeakerMaxWords_Box /> <SpeakerMaxWords_Box />
@@ -182,8 +184,8 @@ const SpeakerRecordTimeout_Box = () => {
return ( return (
<EntryContainer <EntryContainer
label={t("config_page.speaker_record_timeout.label")} label={t("config_page.transcription.speaker_record_timeout.label")}
desc={t("config_page.speaker_record_timeout.desc")} desc={t("config_page.transcription.speaker_record_timeout.desc")}
ui_variable={ui_variable} ui_variable={ui_variable}
onChange={onChangeFunction} onChange={onChangeFunction}
/> />
@@ -209,8 +211,8 @@ const SpeakerPhraseTimeout_Box = () => {
return ( return (
<EntryContainer <EntryContainer
label={t("config_page.speaker_phrase_timeout.label")} label={t("config_page.transcription.speaker_phrase_timeout.label")}
desc={t("config_page.speaker_phrase_timeout.desc")} desc={t("config_page.transcription.speaker_phrase_timeout.desc")}
ui_variable={ui_variable} ui_variable={ui_variable}
onChange={onChangeFunction} onChange={onChangeFunction}
/> />
@@ -236,8 +238,8 @@ const SpeakerMaxWords_Box = () => {
return ( return (
<EntryContainer <EntryContainer
label={t("config_page.speaker_max_phrase.label")} label={t("config_page.transcription.speaker_max_phrase.label")}
desc={t("config_page.speaker_max_phrase.desc")} desc={t("config_page.transcription.speaker_max_phrase.desc")}
ui_variable={ui_variable} ui_variable={ui_variable}
onChange={onChangeFunction} onChange={onChangeFunction}
/> />
@@ -247,9 +249,10 @@ const SpeakerMaxWords_Box = () => {
const TranscriptionEngine_Container = () => { const TranscriptionEngine_Container = () => {
const { t } = useTranslation();
return ( return (
<div> <div>
<SectionLabelComponent label="Transcription Engines" /> <SectionLabelComponent label={t("config_page.transcription.section_label_transcription_engines")} />
<TranscriptionEngine_Box /> <TranscriptionEngine_Box />
<WhisperWeightType_Box /> <WhisperWeightType_Box />
<WhisperComputeDevice_Box /> <WhisperComputeDevice_Box />
@@ -263,7 +266,7 @@ const TranscriptionEngine_Box = () => {
return ( return (
<RadioButtonContainer <RadioButtonContainer
label={t("config_page.select_transcription_engine.label")} label={t("config_page.transcription.select_transcription_engine.label")}
selectFunction={setSelectedTranscriptionEngine} selectFunction={setSelectedTranscriptionEngine}
name="select_transcription_engine" name="select_transcription_engine"
options={[ options={[
@@ -294,13 +297,13 @@ const WhisperWeightType_Box = () => {
}; };
const new_labels = [ const new_labels = [
{ id: "tiny", label: t("config_page.whisper_weight_type.model_template", {model_name: "tiny", capacity: "74.5MB"}) }, { id: "tiny", label: t("config_page.transcription.whisper_weight_type.model_template", {model_name: "tiny", capacity: "74.5MB"}) },
{ id: "base", label: t("config_page.whisper_weight_type.recommended_model_template", {model_name: "base", capacity: "141MB"}) }, { id: "base", label: t("config_page.transcription.whisper_weight_type.recommended_model_template", {model_name: "base", capacity: "141MB"}) },
{ id: "small", label: t("config_page.whisper_weight_type.model_template", {model_name: "small", capacity: "463MB"}) }, { id: "small", label: t("config_page.transcription.whisper_weight_type.model_template", {model_name: "small", capacity: "463MB"}) },
{ id: "medium", label: t("config_page.whisper_weight_type.model_template", {model_name: "medium", capacity: "1.42GB"}) }, { id: "medium", label: t("config_page.transcription.whisper_weight_type.model_template", {model_name: "medium", capacity: "1.42GB"}) },
{ id: "large-v1", label: t("config_page.whisper_weight_type.model_template", {model_name: "large-v1", capacity: "2.87GB"}) }, { id: "large-v1", label: t("config_page.transcription.whisper_weight_type.model_template", {model_name: "large-v1", capacity: "2.87GB"}) },
{ id: "large-v2", label: t("config_page.whisper_weight_type.model_template", {model_name: "large-v2", capacity: "2.87GB"}) }, { id: "large-v2", label: t("config_page.transcription.whisper_weight_type.model_template", {model_name: "large-v2", capacity: "2.87GB"}) },
{ id: "large-v3", label: t("config_page.whisper_weight_type.model_template", {model_name: "large-v3", capacity: "2.87GB"}) }, { id: "large-v3", label: t("config_page.transcription.whisper_weight_type.model_template", {model_name: "large-v3", capacity: "2.87GB"}) },
]; ];
const whisper_weight_types = updateLabelsById(currentWhisperWeightTypeStatus.data, new_labels); const whisper_weight_types = updateLabelsById(currentWhisperWeightTypeStatus.data, new_labels);
@@ -308,9 +311,9 @@ const WhisperWeightType_Box = () => {
return ( return (
<> <>
<DownloadModelsContainer <DownloadModelsContainer
label={t("config_page.whisper_weight_type.label")} label={t("config_page.transcription.whisper_weight_type.label")}
desc={t( desc={t(
"config_page.whisper_weight_type.desc", "config_page.transcription.whisper_weight_type.desc",
{translator: t("main_page.translator")} {translator: t("main_page.translator")}
)} )}
name="whisper_weight_type" name="whisper_weight_type"
@@ -341,8 +344,8 @@ const WhisperComputeDevice_Box = () => {
return ( return (
<DropdownMenuContainer <DropdownMenuContainer
dropdown_id="whisper_compute_device" dropdown_id="whisper_compute_device"
label={t("config_page.whisper_compute_device.label")} label={t("config_page.transcription.whisper_compute_device.label")}
// desc={t("config_page.whisper_compute_device.label")} // desc={t("config_page.transcription.whisper_compute_device.label")}
selected_id={target_index} selected_id={target_index}
list={list_for_ui} list={list_for_ui}
selectFunction={selectFunction} selectFunction={selectFunction}

View File

@@ -46,8 +46,8 @@ const CTranslate2WeightType_Box = () => {
}; };
const new_labels = [ const new_labels = [
{ id: "small", label: t("config_page.ctranslate2_weight_type.small", {capacity: "418MB"}) }, { id: "small", label: t("config_page.translation.ctranslate2_weight_type.small", {capacity: "418MB"}) },
{ id: "large", label: t("config_page.ctranslate2_weight_type.large", {capacity: "1.2GB"}) }, { id: "large", label: t("config_page.translation.ctranslate2_weight_type.large", {capacity: "1.2GB"}) },
]; ];
const c_translate2_weight_types = updateLabelsById(currentCTranslate2WeightTypeStatus.data, new_labels); const c_translate2_weight_types = updateLabelsById(currentCTranslate2WeightTypeStatus.data, new_labels);
@@ -55,9 +55,9 @@ const CTranslate2WeightType_Box = () => {
return ( return (
<> <>
<DownloadModelsContainer <DownloadModelsContainer
label={t("config_page.ctranslate2_weight_type.label")} label={t("config_page.translation.ctranslate2_weight_type.label")}
desc={t( desc={t(
"config_page.ctranslate2_weight_type.desc", "config_page.translation.ctranslate2_weight_type.desc",
{translator: t("main_page.translator")} {translator: t("main_page.translator")}
)} )}
name="ctransalte2_weight_type" name="ctransalte2_weight_type"
@@ -87,8 +87,8 @@ const CTranslation2ComputeDevice_Box = () => {
return ( return (
<DropdownMenuContainer <DropdownMenuContainer
dropdown_id="ctranslate2_compute_device" dropdown_id="ctranslate2_compute_device"
label={t("config_page.ctranslate2_compute_device.label")} label={t("config_page.translation.ctranslate2_compute_device.label")}
// desc={t("config_page.ctranslate2_compute_device.label")} // desc={t("config_page.translation.ctranslate2_compute_device.label")}
selected_id={target_index} selected_id={target_index}
list={list_for_ui} list={list_for_ui}
selectFunction={selectFunction} selectFunction={selectFunction}
@@ -118,9 +118,9 @@ const DeeplAuthKey_Box = () => {
return ( return (
<> <>
<DeeplAuthKeyContainer <DeeplAuthKeyContainer
label={t("config_page.deepl_auth_key.label")} label={t("config_page.translation.deepl_auth_key.label")}
desc={t( desc={t(
"config_page.deepl_auth_key.desc", "config_page.translation.deepl_auth_key.desc",
{translator: t("main_page.translator")} {translator: t("main_page.translator")}
)} )}
variable={input_value} variable={input_value}

View File

@@ -112,15 +112,15 @@ const OverlaySettingsContainer = ({
return ( return (
<> <>
<SwitchBoxContainer <SwitchBoxContainer
label={t("overlay_settings.enable")} label={t("config_page.vr.enable")}
variable={current_is_enabled_overlay} variable={current_is_enabled_overlay}
toggleFunction={toggle_is_enabled_overlay} toggleFunction={toggle_is_enabled_overlay}
/> />
<PageSwitcherContainer <PageSwitcherContainer
toggleFunction={togglePositionRotationController} toggleFunction={togglePositionRotationController}
is_selected={is_opened_position_controller} is_selected={is_opened_position_controller}
label_1={t("overlay_settings.position")} label_1={t("config_page.vr.position")}
label_2={t("overlay_settings.rotation")} label_2={t("config_page.vr.rotation")}
/> />
<div className={styles.position_rotation_controls_box}> <div className={styles.position_rotation_controls_box}>
@@ -132,7 +132,7 @@ const OverlaySettingsContainer = ({
</div> </div>
<OtherControls settings={settings} onchangeFunction={onchangeFunction} ui_configs={ui_configs} /> <OtherControls settings={settings} onchangeFunction={onchangeFunction} ui_configs={ui_configs} />
<RadioButtonContainer <RadioButtonContainer
label={t("overlay_settings.tracker")} label={t("config_page.vr.tracker")}
selectFunction={selectTrackerFunction} selectFunction={selectTrackerFunction}
name={id} name={id}
options={[ options={[
@@ -174,7 +174,7 @@ const PositionControls = ({settings, onchangeFunction, ui_configs}) => {
return ( return (
<div className={styles.position_controls}> <div className={styles.position_controls}>
<div className={styles.position_wrapper}> <div className={styles.position_wrapper}>
<label className={clsx(styles.slider_label, styles.x_position_label)}>{t("overlay_settings.x_position")}</label> <label className={clsx(styles.slider_label, styles.x_position_label)}>{t("config_page.vr.x_position")}</label>
<Slider <Slider
className={styles.x_position_slider} className={styles.x_position_slider}
variable={settings.x_pos} variable={settings.x_pos}
@@ -185,7 +185,7 @@ const PositionControls = ({settings, onchangeFunction, ui_configs}) => {
/> />
</div> </div>
<div className={styles.position_wrapper}> <div className={styles.position_wrapper}>
<label className={clsx(styles.slider_label, styles.y_position_label)}>{t("overlay_settings.y_position")}</label> <label className={clsx(styles.slider_label, styles.y_position_label)}>{t("config_page.vr.y_position")}</label>
<Slider <Slider
className={styles.y_position_slider} className={styles.y_position_slider}
variable={settings.y_pos} variable={settings.y_pos}
@@ -197,7 +197,7 @@ const PositionControls = ({settings, onchangeFunction, ui_configs}) => {
/> />
</div> </div>
<div className={styles.position_wrapper}> <div className={styles.position_wrapper}>
<label className={clsx(styles.slider_label, styles.z_position_label)}>{t("overlay_settings.z_position")}</label> <label className={clsx(styles.slider_label, styles.z_position_label)}>{t("config_page.vr.z_position")}</label>
<Slider <Slider
className={styles.z_position_slider} className={styles.z_position_slider}
variable={settings.z_pos} variable={settings.z_pos}
@@ -218,7 +218,7 @@ const RotationControls = ({settings, onchangeFunction}) => {
return ( return (
<div className={styles.rotation_controls}> <div className={styles.rotation_controls}>
<div className={styles.rotation_wrapper}> <div className={styles.rotation_wrapper}>
<label className={clsx(styles.slider_label, styles.x_rotation_label)}>{t("overlay_settings.x_rotation")}</label> <label className={clsx(styles.slider_label, styles.x_rotation_label)}>{t("config_page.vr.x_rotation")}</label>
<Slider <Slider
className={styles.x_rotation_slider} className={styles.x_rotation_slider}
variable={-settings.x_rotation} variable={-settings.x_rotation}
@@ -231,7 +231,7 @@ const RotationControls = ({settings, onchangeFunction}) => {
/> />
</div> </div>
<div className={styles.rotation_wrapper}> <div className={styles.rotation_wrapper}>
<label className={clsx(styles.slider_label, styles.y_rotation_label)}>{t("overlay_settings.y_rotation")}</label> <label className={clsx(styles.slider_label, styles.y_rotation_label)}>{t("config_page.vr.y_rotation")}</label>
<Slider <Slider
className={styles.y_rotation_slider} className={styles.y_rotation_slider}
variable={settings.y_rotation} variable={settings.y_rotation}
@@ -242,7 +242,7 @@ const RotationControls = ({settings, onchangeFunction}) => {
/> />
</div> </div>
<div className={styles.rotation_wrapper}> <div className={styles.rotation_wrapper}>
<label className={clsx(styles.slider_label, styles.z_rotation_label)}>{t("overlay_settings.z_rotation")}</label> <label className={clsx(styles.slider_label, styles.z_rotation_label)}>{t("config_page.vr.z_rotation")}</label>
<Slider <Slider
className={styles.z_rotation_slider} className={styles.z_rotation_slider}
variable={settings.z_rotation} variable={settings.z_rotation}
@@ -267,7 +267,7 @@ const OtherControls = ({settings, onchangeFunction, ui_configs}) => {
<div className={styles.other_controls}> <div className={styles.other_controls}>
<div className={styles.other_controls_wrapper}> <div className={styles.other_controls_wrapper}>
<label className={clsx(styles.other_controls_slider_label, styles.opacity_label)}> <label className={clsx(styles.other_controls_slider_label, styles.opacity_label)}>
{t("overlay_settings.opacity")} {t("config_page.vr.opacity")}
</label> </label>
<Slider <Slider
className={clsx(styles.other_controls_slider, styles.opacity_slider)} className={clsx(styles.other_controls_slider, styles.opacity_slider)}
@@ -281,7 +281,7 @@ const OtherControls = ({settings, onchangeFunction, ui_configs}) => {
</div> </div>
<div className={styles.other_controls_wrapper}> <div className={styles.other_controls_wrapper}>
<label className={clsx(styles.other_controls_slider_label, styles.ui_scaling_label)}> <label className={clsx(styles.other_controls_slider_label, styles.ui_scaling_label)}>
{t("overlay_settings.ui_scaling")} {t("config_page.vr.ui_scaling")}
</label> </label>
<Slider <Slider
className={clsx(styles.other_controls_slider, styles.ui_scaling_slider)} className={clsx(styles.other_controls_slider, styles.ui_scaling_slider)}
@@ -294,7 +294,7 @@ const OtherControls = ({settings, onchangeFunction, ui_configs}) => {
/> />
</div> </div>
<div className={styles.other_controls_wrapper}> <div className={styles.other_controls_wrapper}>
<label className={clsx(styles.other_controls_slider_label, styles.display_duration_label)}>{t("overlay_settings.display_duration")}</label> <label className={clsx(styles.other_controls_slider_label, styles.display_duration_label)}>{t("config_page.vr.display_duration")}</label>
<Slider <Slider
className={clsx(styles.other_controls_slider, styles.display_duration_slider)} className={clsx(styles.other_controls_slider, styles.display_duration_slider)}
variable={settings.display_duration} variable={settings.display_duration}
@@ -306,7 +306,7 @@ const OtherControls = ({settings, onchangeFunction, ui_configs}) => {
/> />
</div> </div>
<div className={styles.other_controls_wrapper}> <div className={styles.other_controls_wrapper}>
<label className={clsx(styles.other_controls_slider_label, styles.fadeout_duration_label)}>{t("overlay_settings.fadeout_duration")}</label> <label className={clsx(styles.other_controls_slider_label, styles.fadeout_duration_label)}>{t("config_page.vr.fadeout_duration")}</label>
<Slider <Slider
className={clsx(styles.other_controls_slider, styles.fadeout_duration_slider)} className={clsx(styles.other_controls_slider, styles.fadeout_duration_slider)}
variable={settings.fadeout_duration} variable={settings.fadeout_duration}
@@ -330,7 +330,7 @@ const CommonSettingsContainer = () => {
<div className={styles.common_container}> <div className={styles.common_container}>
<SectionLabelComponent label="Common Settings" /> <SectionLabelComponent label="Common Settings" />
<CheckboxContainer <CheckboxContainer
label={t("overlay_settings.overlay_show_only_translated_messages.label")} label={t("config_page.vr.overlay_show_only_translated_messages.label")}
variable={currentOverlayShowOnlyTranslatedMessages} variable={currentOverlayShowOnlyTranslatedMessages}
toggleFunction={toggleOverlayShowOnlyTranslatedMessages} toggleFunction={toggleOverlayShowOnlyTranslatedMessages}
/> />

View File

@@ -1,3 +1,4 @@
import { useTranslation } from "react-i18next";
import clsx from "clsx"; import clsx from "clsx";
import styles from "./Topbar.module.scss"; import styles from "./Topbar.module.scss";
@@ -9,11 +10,11 @@ import { SectionTitleBox } from "./section_title_box/SectionTitleBox";
import { CompactSwitchBox } from "./compact_switch_box/CompactSwitchBox"; import { CompactSwitchBox } from "./compact_switch_box/CompactSwitchBox";
export const Topbar = () => { export const Topbar = () => {
const { t } = useTranslation();
const { currentIsOpenedConfigPage, setIsOpenedConfigPage } = useIsOpenedConfigPage(); const { currentIsOpenedConfigPage, setIsOpenedConfigPage } = useIsOpenedConfigPage();
const closeConfigPage = () => { const closeConfigPage = () => {
setIsOpenedConfigPage(false); setIsOpenedConfigPage(false);
}; };
return ( return (
<div className={clsx(styles.container, { <div className={clsx(styles.container, {
[styles.show_config]: currentIsOpenedConfigPage.data, [styles.show_config]: currentIsOpenedConfigPage.data,
@@ -24,7 +25,7 @@ export const Topbar = () => {
<ArrowLeftSvg className={styles.arrow_left_svg} /> <ArrowLeftSvg className={styles.arrow_left_svg} />
</div> </div>
<div className={styles.go_back_text_wrapper}> <div className={styles.go_back_text_wrapper}>
<p className={styles.go_back_text}>Go Back</p> <p className={styles.go_back_text}>{t("common.go_back_button_label")}</p>
</div> </div>

View File

@@ -8,10 +8,9 @@ export const LanguageSelector = ({ id, onClickFunction }) => {
const { t } = useTranslation(); const { t } = useTranslation();
const { currentSelectableLanguageList } = useSelectableLanguageList(); const { currentSelectableLanguageList } = useSelectableLanguageList();
const languageTitles = { const languageTitles = {
your_language: t("selectable_language_window.title_your_language"), your_language: t("main_page.language_selector.title_your_language"),
target_language: t("selectable_language_window.title_target_language") target_language: t("main_page.language_selector.title_target_language")
}; };
const language_selector_title = languageTitles[id] || ""; const language_selector_title = languageTitles[id] || "";

View File

@@ -1,10 +1,10 @@
import { useTranslation } from "react-i18next";
import styles from "./LanguageSelectorTopBar.module.scss"; import styles from "./LanguageSelectorTopBar.module.scss";
import { useStore_IsOpenedLanguageSelector } from "@store"; import { useStore_IsOpenedLanguageSelector } from "@store";
export const LanguageSelectorTopBar = (props) => { export const LanguageSelectorTopBar = (props) => {
const { t } = useTranslation();
const { updateIsOpenedLanguageSelector } = useStore_IsOpenedLanguageSelector(); const { updateIsOpenedLanguageSelector } = useStore_IsOpenedLanguageSelector();
const closeLanguageSelector = () => { const closeLanguageSelector = () => {
updateIsOpenedLanguageSelector({ updateIsOpenedLanguageSelector({
your_language: false, your_language: false,
@@ -15,7 +15,7 @@ export const LanguageSelectorTopBar = (props) => {
return ( return (
<div className={styles.container}> <div className={styles.container}>
<div className={styles.go_back_button_wrapper} onClick={closeLanguageSelector}> <div className={styles.go_back_button_wrapper} onClick={closeLanguageSelector}>
<p className={styles.go_back_button_label}>Go Back</p> <p className={styles.go_back_button_label}>{t("common.go_back_button_label")}</p>
</div> </div>
<p className={styles.title}>{props.title}</p> <p className={styles.title}>{props.title}</p>
</div> </div>

View File

@@ -42,7 +42,7 @@ export const MessageContainer = ({ messages, status, category, created_at }) =>
const is_translated_exist = messages.translated.length >= 1; const is_translated_exist = messages.translated.length >= 1;
const is_pending = status === "pending"; const is_pending = status === "pending";
const is_sent_message = category === "sent"; const is_sent_message = category === "sent";
const category_text = is_sent_message ? t("main_page.textbox_tab_sent") : t("main_page.textbox_tab_received"); const category_text = is_sent_message ? t("main_page.message_log.sent") : t("main_page.message_log.received");
const message_type_class_name = clsx({ const message_type_class_name = clsx({
[styles.sent_message]: is_sent_message, [styles.sent_message]: is_sent_message,

View File

@@ -58,7 +58,7 @@ const OpenVrcMicMuteSyncQuickSetting = () => {
return ( return (
<OpenQuickSettingButton <OpenQuickSettingButton
label={t("config_page.vrc_mic_mute_sync.label")} label={t("config_page.others.vrc_mic_mute_sync.label")}
variable={currentEnableVrcMicMuteSync.data} variable={currentEnableVrcMicMuteSync.data}
onClickFunction={onClickFunction} onClickFunction={onClickFunction}
/> />

View File

@@ -17,10 +17,10 @@ export const UpdateModal = () => {
return ( return (
<div className={styles.container}> <div className={styles.container}>
<p className={styles.label}>{t("main_page.confirmation_message.update_software")}</p> <p className={styles.label}>{t("main_page.update_software_desc")}</p>
<div className={styles.button_wrapper}> <div className={styles.button_wrapper}>
<button className={styles.deny_button} onClick={() => updateOpenedQuickSetting("")} >{t("main_page.confirmation_message.deny_update_software")}</button> <button className={styles.deny_button} onClick={() => updateOpenedQuickSetting("")} >{t("main_page.deny_update_software")}</button>
<button className={styles.accept_button} onClick={onClickUpdateSoftware}>{t("main_page.confirmation_message.accept_update_software")}</button> <button className={styles.accept_button} onClick={onClickUpdateSoftware}>{t("main_page.accept_update_software")}</button>
</div> </div>
</div> </div>
); );