[Update] Migrate to tauri-app(Web UI)

This commit is contained in:
Sakamoto Shiina
2024-07-25 01:01:22 +09:00
parent 25899b63da
commit ebd1a8d70d
342 changed files with 14616 additions and 13428 deletions

24
.eslintrc.json Normal file
View File

@@ -0,0 +1,24 @@
{
"parser": "@typescript-eslint/parser",
"extends": [
"plugin:react/recommended"
],
"parserOptions": {
"ecmaFeatures": {
"jsx": true // Allows for the parsing of JSX
}
},
"rules": {
"react/prop-types": "off",
"@typescript-eslint/no-empty-interface": 0,
"no-unreachable": "warn",
"no-unused-vars": "warn",
"react/react-in-jsx-scope": "off",
"semi": ["error", "always"]
},
"settings": {
"react": {
"version": "detect"
}
}
}

33
.gitignore vendored
View File

@@ -12,3 +12,36 @@ weights/
error.log error.log
*.exe *.exe
*.ipynb *.ipynb
# Added by WebUI migration
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
.vscode
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.venv
# Customize
test-x86_64-pc-windows-msvc.spec
/build

86
data.js Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 715 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 763 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 969 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 679 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 703 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 855 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 785 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

14
index.html Normal file
View File

@@ -0,0 +1,14 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Tauri + React</title>
</head>
<body>
<div id="root"></div>
<script type="module" src="./src-ui/windows/main_window/index.jsx"></script>
</body>
</html>

29
locales/config.js Normal file
View File

@@ -0,0 +1,29 @@
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import translation_en from "./en.json";
import translation_ja from "./ja.json";
import translation_ko from "./ko.json";
import translation_zh_Hant from "./zh-Hant.json";
const resources = {
en: { translation: translation_en },
ja: { translation: translation_ja },
ko: { translation: translation_ko },
zh_Hant: { translation: translation_zh_Hant },
};
i18n
.use(initReactI18next) // passes i18n down to react-i18next
.init({
resources,
lng: "en",
fallbackLng: "en",
debug: true,
interpolation: {
escapeValue: false // react already safes from xss
}
});
export default i18n;

283
locales/en.json Normal file
View File

@@ -0,0 +1,283 @@
{
"main_window": {
"translation": "Translation",
"transcription_send": "Voice2Chatbox",
"transcription_receive": "Speaker2Log",
"foreground": "Foreground",
"language_settings": "Language Settings",
"your_language": "Your Language",
"translate_each_other_label": "Translate Each Other",
"swap_button_label": "Swap Languages",
"target_language": "Target Language",
"translator": "Translator",
"translator_ctranslate2": "Internal (Default)",
"textbox_tab_all": "All",
"textbox_tab_sent": "Sent",
"textbox_tab_received": "Received",
"textbox_tab_system": "System",
"textbox_system_message": {
"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;).",
"enabled_translation": "Translation feature is turned on.",
"disabled_translation": "Translation feature is turned off.",
"enabled_voice2chatbox": "Transcription from the microphone has started.",
"disabled_voice2chatbox": "Transcription from the microphone has been stopped.",
"enabled_speaker2log": "Transcription from the speaker has started.",
"disabled_speaker2log": "Transcription from the speaker has been stopped.",
"enabled_foreground": "The screen is fixed in the foreground.",
"disabled_foreground": "The foreground fixation has been released.",
"auth_key_success": "Auth key update completed.",
"auth_key_error": "Auth Key is incorrect or Usage limit reached.",
"no_mic_device_detected_error": "No mic device detected.",
"no_speaker_device_detected_error": "No speaker device detected.",
"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.",
"detected_by_word_filter": "The word %{detected_message} has not been sent due to detection by the word filter.",
"selected_your_language": "\"Your Language\" has set to %{your_language}.",
"selected_target_language": "\"Target Language\" has set to %{target_language}.",
"switched_language_preset_tab": "Switched to Language Preset Tab No.%{tab_no}.\"",
"latest_language_setting": "Currently, \"Your Language\" is set to %{your_language}, and \"Target Language\" is set to %{target_language}.",
"opened_web_page_booth": "Opened Booth page in your web browser.",
"opened_web_page_vrct_documents": "Opened VRCT Documents page in your web browser.\nFor 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!",
"state_text_enabled": "Enabled",
"state_text_disabled": "Disabled",
"cover_message": "The functionality is temporarily disabled until the settings window is closed.",
"close_settings_window": "Close the settings window",
"confirmation_message": {
"update_software": "Download the new version and automatically restart the app.\nIt'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}\nVRCT's window size may be larger than your display size.\n* 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",
"opacity": "Opacity",
"ui_scaling": "UI Scaling",
"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",
"display_duration": "Display duration",
"fadeout_duration": "Fadeout duration"
},
"config_window": {
"config_title": "Settings",
"compact_mode": "Compact Mode",
"version": "version %{version}",
"restart_message": "Apply changes with a restart.",
"common_error_message": {
"invalid_value": "Invalid value."
},
"side_menu_labels": {
"appearance": "Appearance",
"translation": "Translation",
"transcription": "Transcription",
"transcription_mic": "Mic",
"transcription_speaker": "Speaker",
"transcription_internal_model": "Transcription Model",
"vr": "VR",
"others": "Others",
"others_send_message_formats": "Message Formats (Send)",
"others_received_message_formats": "Message Formats (XSOverlay & Speaker2Chatbox)",
"others_speaker2chatbox": "Speaker2Chatbox",
"advanced_settings": "Advanced Settings",
"about_vrct": "About VRCT"
},
"transparency": {
"label": "Transparency",
"desc": "Change the main window's transparency."
},
"appearance_theme": {
"label": "Theme",
"desc": "Change the color theme."
},
"ui_size": {
"label": "UI Size"
},
"textbox_ui_size": {
"label": "Text Box Font Size",
"desc": "You can adjust the font size used in the logs relative to the UI size."
},
"message_box_ratio": {
"label": "Message Box Size",
"desc": "You can change the size of the input message box. It is in ratio to the text box.\n*No exact calculations."
},
"font_family": {
"label": "Font Family"
},
"ui_language": {
"label": "UI Language"
},
"to_restore_main_window_geometry": {
"label": "Remember The Main Window Position",
"desc": "Restore the position and size of the previous window upon startup."
},
"use_translation_feature": {
"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."
},
"ctranslate2_weight_type": {
"label": "Select Internal Translation Model",
"desc": "You can choose the translation model to use for the internal translation engine.",
"small": "Basic model (%{capacity})",
"large": "High accuracy model (%{capacity})"
},
"deepl_auth_key": {
"label": "DeepL Auth Key",
"desc": "Please select %{translator} on the main screen with DeepL_API when using. ※Some languages may not be supported.",
"open_auth_key_webpage": "Open DeepL Account Webpage",
"auth_key_success": "Auth key update completed.",
"auth_key_error": "Auth Key is incorrect or Usage limit reached."
},
"mic_host": {
"label": "Mic Host/Driver"
},
"mic_device": {
"label": "Mic Device"
},
"mic_dynamic_energy_threshold": {
"label_for_automatic": "Mic Energy Threshold (Current Setting: Automatic)",
"desc_for_automatic": "Automatically determine microphone input sensitivity.",
"label_for_manual": "Mic Energy Threshold (Current Setting: Manual)",
"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.",
"error_message": "You can set it with a value between 0 to %{max}."
},
"mic_record_timeout": {
"label": "Mic Record Timeout",
"desc": "Detects silence and, when the specified number of seconds has passed, considers the mic input to have ended. (Second(s))",
"error_message": "It cannot be greater than '%{mic_phrase_timeout_label}' with a value of 0 or more."
},
"mic_phrase_timeout": {
"label": "Mic Phrase Timeout",
"desc": "Transcription processing is performed at intervals of the specified number of seconds.",
"error_message": "It cannot be set lower than '%{mic_record_timeout_label}' with a value of 0 or more."
},
"mic_max_phrase": {
"label": "Mic Max Words",
"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.",
"error_message": "You can set a number equal to or greater than 0."
},
"mic_word_filter": {
"label": "Mic Word Filter",
"desc": "If a registered word is detected, the text will not be sent. To add multiple words at once, separate them with a \",\" (comma). \n*Duplicate words will not be registered.",
"add_button_label": "Add",
"count_desc": "Current registered word count: %{count}"
},
"speaker_device": {
"label": "Speaker Device"
},
"speaker_dynamic_energy_threshold": {
"label_for_automatic": "Speaker Energy Threshold (Current Setting: Automatic)",
"desc_for_automatic": "Automatically determine speaker input sensitivity.",
"label_for_manual": "Speaker Energy Threshold (Current Setting: Manual)",
"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.",
"error_message": "You can set it with a value between 0 to %{max}.",
"no_device_error_message": "No speaker device detected."
},
"speaker_record_timeout": {
"label": "Speaker Record Timeout",
"desc": "Detects silence and, when the specified number of seconds has passed, considers the speaker input to have ended. (Second(s))",
"error_message": "It cannot be greater than '%{speaker_phrase_timeout_label}' with a value of 0 or more."
},
"speaker_phrase_timeout": {
"label": "Speaker Phrase Timeout",
"desc": "Transcription processing is performed at intervals of the specified number of seconds.",
"error_message": "It cannot be set lower than '%{speaker_record_timeout_label}' with a value of 0 or more."
},
"speaker_max_phrase": {
"label": "Speaker Max Words",
"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.",
"error_message": "You can set a number equal to or greater than 0."
},
"use_whisper_feature": {
"label": "Use Whisper Model As Transcription",
"desc": "In some languages, the accuracy of speech recognition may improve. During speech recognition usage, CPU usage increases, so please consider your PC specs before using this feature."
},
"whisper_weight_type": {
"label": "Select Whisper Model",
"desc": "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.\n※Larger models, especially those exceeding medium size, can be challenging to run even depending on the CPU's performance.",
"model_template": "%{model_name} model (%{capacity})",
"recommended_model_template": "%{model_name} model (%{capacity}) (Recommended)"
},
"enable_overlay_small_log": {
"label": "Enable Overlay",
"open_overlay_settings": "Open Overlay Customized Settings"
},
"auto_clear_the_message_box": {
"label": "Auto Clear The Message Box"
},
"send_only_translated_messages": {
"label": "Send Only Translated Messages"
},
"send_message_button_type": {
"label": "Send Message Button",
"hide": "Hide (Use enter key to send)",
"show": "Show",
"show_and_disable_enter_key": "Show and disable to send when pressed enter key"
},
"notice_xsoverlay": {
"label": "Notification XSOverlay",
"desc": "Notify received messages by using XSOverlay's notification feature."
},
"auto_export_message_logs": {
"label": "Auto Export Message Logs",
"desc": "Automatically export the conversation messages as a text file."
},
"vrc_mic_mute_sync": {
"label": "VRC Mic Mute Sync",
"desc": "VRCT will not send the message to VRChat while VRChat's mic is muted.\n*There is a bit latency and Push-To-Talk is not supported."
},
"send_message_to_vrc": {
"label": "Send Message To VRChat",
"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_message_format": {
"label": "Message Format",
"desc": "You can change the decoration of the message you want to send.\n[message] will be replaced with the message.",
"example_text": "This is an example sentence. Fonts, line breaks, etc. may differ from the actual display.",
"error_message": "Cannot use the term '[message]'."
},
"send_message_format_with_t": {
"label": "Message Format (with Translation)",
"desc": "You can change the decoration of the message you want to send.\n[message] will be replaced with the message, and [translation] will be replaced with the translated message.",
"example_text": "This is an example sentence. Fonts, line breaks, etc. may differ from the actual display.",
"error_message": "Cannot use the terms '[message]' and '[translation]'."
},
"received_message_format": {
"label": "Format of Received Messages",
"desc": "Used for XSOverlay notification receiving feature.\n[message] will be replaced with the message. \n※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 term '[message]'."
},
"received_message_format_with_t": {
"label": "Format of Received Messages (with Translation)",
"desc": "Used for XSOverlay notification receiving feature.\n[message] will be replaced with the message, and [translation] will be replaced with the translated message.\n※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. However, this feature is intended for users who genuinely need it. Please consult with the developer."
},
"osc_ip_address": {
"label": "OSC IP Address"
},
"osc_port": {
"label": "OSC Port"
},
"open_config_filepath": {
"label": "Open Config File"
}
}
}

View File

@@ -1,300 +0,0 @@
main_window:
translation: Translation
transcription_send: Voice2Chatbox
transcription_receive: Speaker2Log
foreground: Foreground
language_settings: Language Settings
your_language: Your Language
translate_each_other_label: Translate Each Other
swap_button_label: Swap Languages
target_language: Target Language
translator: Translator
translator_ctranslate2: Internal (Default)
textbox_tab_all: All
textbox_tab_sent: Sent
textbox_tab_received: Received
textbox_tab_system: System
textbox_system_message:
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;).
enabled_translation: Translation feature is turned on.
disabled_translation: Translation feature is turned off.
enabled_voice2chatbox: Transcription from the microphone has started.
disabled_voice2chatbox: Transcription from the microphone has been stopped.
enabled_speaker2log: Transcription from the speaker has started.
disabled_speaker2log: Transcription from the speaker has been stopped.
enabled_foreground: The screen is fixed in the foreground.
disabled_foreground: The foreground fixation has been released.
auth_key_success: Auth key update completed.
auth_key_error: Auth Key is incorrect or Usage limit reached.
no_mic_device_detected_error: No mic device detected.
no_speaker_device_detected_error: No speaker device detected.
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.
detected_by_word_filter: The word %{detected_message} has not been sent due to detection by the word filter.
selected_your_language: "\"Your Language\" has set to %{your_language}."
selected_target_language: "\"Target Language\" has set to %{target_language}."
switched_language_preset_tab: Switched to Language Preset Tab No.%{tab_no}."
latest_language_setting: "Currently, \"Your Language\" is set to %{your_language}, and \"Target Language\" is set to %{target_language}."
opened_web_page_booth: Opened Booth page in your web browser.
opened_web_page_vrct_documents: "Opened VRCT Documents page in your web browser.\nFor 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!
state_text_enabled: Enabled
state_text_disabled: Disabled
cover_message: The functionality is temporarily disabled until the settings window is closed.
confirmation_message:
update_software: "Download the new version and automatically restart the app.\nIt'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}\nVRCT's window size may be larger than your display size.\n* 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
opacity: Opacity
ui_scaling: UI Scaling
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
display_duration: Display duration
fadeout_duration: Fadeout duration
config_window:
config_title: Settings
compact_mode: Compact Mode
version: version %{version}
restart_message: Apply changes with a restart.
common_error_message:
invalid_value: Invalid value.
side_menu_labels:
appearance: Appearance
translation: Translation
transcription: Transcription
transcription_mic: Mic
transcription_speaker: Speaker
transcription_internal_model: Transcription Model
vr: VR
others: Others
others_send_message_formats: Message Formats (Send)
others_received_message_formats: Message Formats (XSOverlay & Speaker2Chatbox)
others_speaker2chatbox: Speaker2Chatbox
advanced_settings: Advanced Settings
transparency:
label: Transparency
desc: Change the main window's transparency.
appearance_theme:
label: Theme
desc: Change the color theme.
ui_size:
label: UI Size
textbox_ui_size:
label: Text Box Font Size
desc: You can adjust the font size used in the logs relative to the UI size.
message_box_ratio:
label: Message Box Size
desc: "You can change the size of the input message box. It is in ratio to the text box.\n*No exact calculations."
font_family:
label: Font Family
ui_language:
label: UI Language
to_restore_main_window_geometry:
label: Remember The Main Window Position
desc: Restore the position and size of the previous window upon startup.
use_translation_feature:
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.
ctranslate2_weight_type:
label: Select Internal Translation Model
desc: You can choose the translation model to use for the internal translation engine.
small: "Basic model (%{capacity})"
large: "High accuracy model (%{capacity})"
deepl_auth_key:
label: DeepL Auth Key
desc: Please select %{translator} on the main screen with DeepL_API when using. ※Some languages may not be supported.
open_auth_key_webpage: Open DeepL Account Webpage
auth_key_success: Auth key update completed.
auth_key_error: Auth Key is incorrect or Usage limit reached.
mic_host:
label: Mic Host/Driver
mic_device:
label: Mic Device
mic_dynamic_energy_threshold:
label_for_automatic: "Mic Energy Threshold (Current Setting: Automatic)"
desc_for_automatic: "Automatically determine microphone input sensitivity."
label_for_manual: "Mic Energy Threshold (Current Setting: Manual)"
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."
error_message: You can set it with a value between 0 to %{max}.
mic_record_timeout:
label: Mic Record Timeout
desc: Detects silence and, when the specified number of seconds has passed, considers the mic input to have ended. (Second(s))
error_message: It cannot be greater than '%{mic_phrase_timeout_label}' with a value of 0 or more.
mic_phrase_timeout:
label: Mic Phrase Timeout
desc: Transcription processing is performed at intervals of the specified number of seconds.
error_message: It cannot be set lower than '%{mic_record_timeout_label}' with a value of 0 or more.
mic_max_phrase:
label: Mic Max Words
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.
error_message: You can set a number equal to or greater than 0.
mic_word_filter:
label: Mic Word Filter
desc: "If a registered word is detected, the text will not be sent. To add multiple words at once, separate them with a \",\" (comma). \n*Duplicate words will not be registered."
add_button_label: Add
count_desc: "Current registered word count: %{count}"
speaker_device:
label: Speaker Device
speaker_dynamic_energy_threshold:
label_for_automatic: "Speaker Energy Threshold (Current Setting: Automatic)"
desc_for_automatic: "Automatically determine speaker input sensitivity."
label_for_manual: "Speaker Energy Threshold (Current Setting: Manual)"
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."
error_message: You can set it with a value between 0 to %{max}.
no_device_error_message: No speaker device detected.
speaker_record_timeout:
label: Speaker Record Timeout
desc: Detects silence and, when the specified number of seconds has passed, considers the speaker input to have ended. (Second(s))
error_message: It cannot be greater than '%{speaker_phrase_timeout_label}' with a value of 0 or more.
speaker_phrase_timeout:
label: Speaker Phrase Timeout
desc: Transcription processing is performed at intervals of the specified number of seconds.
error_message: It cannot be set lower than '%{speaker_record_timeout_label}' with a value of 0 or more.
speaker_max_phrase:
label: Speaker Max Words
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.
error_message: You can set a number equal to or greater than 0.
use_whisper_feature:
label: Use Whisper Model As Transcription
desc: In some languages, the accuracy of speech recognition may improve. During speech recognition usage, CPU usage increases, so please consider your PC specs before using this feature.
whisper_weight_type:
label: Select Whisper Model
desc: "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.\n※Larger models, especially those exceeding medium size, can be challenging to run even depending on the CPU's performance."
model_template: "%{model_name} model (%{capacity})"
recommended_model_template: "%{model_name} model (%{capacity}) (Recommended)"
enable_overlay_small_log:
label: Enable Overlay
# desc:
open_overlay_settings: Open Overlay Customized Settings
auto_clear_the_message_box:
label: Auto Clear The Message Box
send_only_translated_messages:
label: Send Only Translated Messages
send_message_button_type:
label: Send Message Button
hide: Hide (Use enter key to send)
show: Show
show_and_disable_enter_key: Show and disable to send when pressed enter key
notice_xsoverlay:
label: Notification XSOverlay
desc: Notify received messages by using XSOverlay's notification feature.
auto_export_message_logs:
label: Auto Export Message Logs
desc: Automatically export the conversation messages as a text file.
vrc_mic_mute_sync:
label: VRC Mic Mute Sync
desc: "VRCT will not send the message to VRChat while VRChat's mic is muted.\n*There is a bit latency and Push-To-Talk is not supported."
send_message_to_vrc:
label: Send Message To VRChat
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_message_format:
label: Message Format
desc: "You can change the decoration of the message you want to send.\n[message] will be replaced with the message."
example_text: This is an example sentence. Fonts, line breaks, etc. may differ from the actual display.
error_message: "Cannot use the term '[message]'."
send_message_format_with_t:
label: Message Format (with Translation)
desc: "You can change the decoration of the message you want to send.\n[message] will be replaced with the message, and [translation] will be replaced with the translated message."
example_text: This is an example sentence. Fonts, line breaks, etc. may differ from the actual display.
error_message: "Cannot use the terms '[message]' and '[translation]'."
received_message_format:
label: Format of Received Messages
desc: "Used for XSOverlay notification receiving feature.\n[message] will be replaced with the message. \n※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 term '[message]'."
received_message_format_with_t:
label: Format of Received Messages (with Translation)
desc: "Used for XSOverlay notification receiving feature.\n[message] will be replaced with the message, and [translation] will be replaced with the translated message.\n※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]'."
# Note: Speaker2Chatbox localization is fine only in English. Do not translate it into other languages.
# Speaker2Chatbox
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. However, this feature is intended for users who genuinely need it. Please consult with the developer.
# Speaker2Chatbox
osc_ip_address:
label: OSC IP Address
osc_port:
label: OSC Port
open_config_filepath:
label: Open Config File

274
locales/ja.json Normal file
View File

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

View File

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

252
locales/ko.json Normal file
View File

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

View File

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

277
locales/zh-Hant.json Normal file
View File

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

View File

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

5380
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

35
package.json Normal file
View File

@@ -0,0 +1,35 @@
{
"name": "tauri-app",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"setup-python": "install.bat",
"build-python": "pyinstaller -F src-python/test.py --distpath src-tauri/bin --clean -n test-x86_64-pc-windows-msvc",
"dev": "vite",
"build": "vite build",
"preview": "vite preview",
"tauri": "tauri"
},
"dependencies": {
"@tauri-apps/api": "^1",
"@typescript-eslint/eslint-plugin": "^7.11.0",
"@typescript-eslint/parser": "^7.11.0",
"clsx": "^2.1.1",
"eslint": "^8.57.0",
"eslint-plugin-react": "^7.34.2",
"i18next": "^23.11.5",
"jotai": "^2.8.3",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-i18next": "^14.1.2",
"react-resizable-layout": "^0.7.2"
},
"devDependencies": {
"@tauri-apps/cli": "^1.5.14",
"@vitejs/plugin-react": "^4.2.1",
"sass": "^1.77.4",
"vite": "^5.0.0",
"vite-plugin-svgr": "^4.2.0"
}
}

View File

@@ -1,12 +1,9 @@
pillow == 10.0.0 pillow == 10.0.0
PyAudioWPatch == 0.2.12.6 PyAudioWPatch == 0.2.12.6
python-osc == 1.8.3 python-osc == 1.8.3
customtkinter == 5.2.0
deepl == 1.15.0 deepl == 1.15.0
flashtext == 2.7 flashtext == 2.7
pyyaml == 6.0.1 pyyaml == 6.0.1
python-i18n == 0.3.9
CTkToolTip == 0.8
pyinstaller==6.2.0 pyinstaller==6.2.0
transformers[torch]==4.37.2 transformers[torch]==4.37.2
sentencepiece==0.1.99 sentencepiece==0.1.99

40
src-python/test.py Normal file
View File

@@ -0,0 +1,40 @@
import sys
import json
import time
def main():
received_data = sys.stdin.readline().strip()
received_data = json.loads(received_data)
with open('process.log', 'a') as f:
f.write(f"received_data: {received_data}\n")
if received_data:
response_data = {
"status": "ok",
"id": received_data["id"],
"data": received_data["data"],
}
response = json.dumps(response_data)
time.sleep(2)
print(response, flush=True)
# with open('process.log', 'a') as f:
# f.write(f"Received data: {received_data}\n")
# f.write(f"Response: {response}\n")
# # 標準出力に結果を出力
# for i in range(10):
# print(str(i), flush=True)
# time.sleep(1)
if __name__ == "__main__":
try:
print(json.dumps({"init_key_from_py": "Initialization from Python."}), flush=True)
while True:
main()
except Exception:
import traceback
with open('error.log', 'a') as f:
traceback.print_exc(file=f)

11
src-tauri/.gitignore vendored Normal file
View File

@@ -0,0 +1,11 @@
# Generated by Cargo
# will have compiled files and executables
/target/
# Generated by Tauri
# will have schema files for capabilities auto-completion
/gen/schemas
# Customize
/bin

3765
src-tauri/Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

20
src-tauri/Cargo.toml Normal file
View File

@@ -0,0 +1,20 @@
[package]
name = "tauri-app"
version = "0.0.0"
description = "A Tauri App"
authors = ["you"]
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[build-dependencies]
tauri-build = { version = "1", features = [] }
[dependencies]
tauri = { version = "1", features = [ "window-set-always-on-top", "window-create", "window-close", "shell-sidecar", "shell-open", "devtools"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[features]
# This feature is used for production builds or when a dev server is not specified, DO NOT REMOVE!!
custom-protocol = ["tauri/custom-protocol"]

3
src-tauri/build.rs Normal file
View File

@@ -0,0 +1,3 @@
fn main() {
tauri_build::build()
}

BIN
src-tauri/icons/128x128.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
src-tauri/icons/32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Some files were not shown because too many files have changed in this diff Show More