[Refactor/Update] Organize localization files and apply to some labels.
This commit is contained in:
448
locales/en.yml
448
locales/en.yml
@@ -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
|
|
||||||
421
locales/ja.yml
421
locales/ja.yml
@@ -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: 設定ファイルを開く
|
|
||||||
385
locales/ko.yml
385
locales/ko.yml
@@ -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: 설정 파일 열기
|
|
||||||
@@ -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: 打开设置文件
|
||||||
@@ -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: 打開設定文件
|
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -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}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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}
|
||||||
|
|||||||
@@ -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}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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] || "";
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -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>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user