Makes dictation delivery, capture, recovery, model fallback, AEC, and localized status behavior reliable across macOS, Windows, and Linux.
2629 lines
170 KiB
JSON
2629 lines
170 KiB
JSON
{
|
||
"backendUnreachable": {
|
||
"contact_recent": "Nó vẫn phản hồi cách đây {{ago}} rồi ngừng phản hồi — rất có thể nó đã gặp sự cố hoặc bị buộc dừng giữa một yêu cầu.",
|
||
"contact_never": "Nó chưa hề phản hồi trong phiên này — có thể nó chưa bao giờ khởi động.",
|
||
"dev": "Không thể kết nối tới backend VoiceStudio cục bộ. {{contact}} Với `bun run dev`, backend chạy ở chế độ tự tải lại: bất kỳ thay đổi tệp nào — kể cả lưu khi đang có yêu cầu — sẽ khởi động lại nó và làm mất kết nối. Hãy thử lại thao tác trước; nếu là do tải lại thì sẽ chạy được. Nếu vẫn lỗi, xem terminal đang chạy `bun run dev` để tìm traceback Python hoặc thông báo thoát, và omnivoice.log trong thư mục dữ liệu VoiceStudio.",
|
||
"server": "Không thể kết nối tới máy chủ backend VoiceStudio. {{contact}} Hãy kiểm tra log máy chủ để tìm nguyên nhân (ví dụ `docker logs <container>` hoặc `journalctl`) — và lưu ý nếu Docker phục vụ trang này thì chính trang này cũng có thể sập cùng backend.",
|
||
"misrouted": "Máy chủ trả lời tại {{url}} không phải là backend của VoiceStudio — nó đã trả về trang 404 của chính nó. Các yêu cầu API đang đi tới sai máy chủ: hãy kiểm tra Backend URL trong Cài đặt → Chia sẻ, hoặc nếu một reverse proxy phục vụ giao diện này, hãy kiểm tra tuyến đường của nó cho các đường dẫn API.",
|
||
"desktop": "Không thể kết nối tới backend VoiceStudio cục bộ. {{contact}} Hãy mở thông báo sự cố nếu có, hoặc vào Cài đặt → Nhật ký → Backend để xem điều cuối cùng nó ghi lại — \"{{retry}}\" khởi động lại nó, và \"{{cleanRetry}}\" dựng lại môi trường nếu nó không quay lại."
|
||
},
|
||
"nav": {
|
||
"clone": "Nhân bản",
|
||
"design": "Thiết kế",
|
||
"dub": "Lồng tiếng",
|
||
"settings": "Cài đặt",
|
||
"stories": "Kịch bản",
|
||
"launchpad": "Bệ phóng",
|
||
"gallery": "Thư viện ảnh",
|
||
"transcripts": "bảng điểm",
|
||
"omnidrive": "OmniDrive",
|
||
"catalogue": "Danh mục",
|
||
"move_rail_right": "Di chuyển đường ray sang phải",
|
||
"move_rail_left": "Di chuyển đường ray sang trái",
|
||
"flip_rail": "Mặt đường ray lật",
|
||
"voice": "Giọng nói",
|
||
"audiobook": "Sách nói",
|
||
"workspaces": "Không gian làm việc"
|
||
},
|
||
"catalogue": {
|
||
"title": "Danh mục mô hình",
|
||
"tab_engines": "Engine",
|
||
"tab_models": "Mô hình",
|
||
"moved_title": "Đã chuyển sang Danh mục mô hình",
|
||
"moved_engines_body": "Việc chọn engine mặc định cho giọng nói, chuyển lời nói thành văn bản và LLM đã chuyển sang không gian làm việc Danh mục mô hình.",
|
||
"moved_models_body": "Việc duyệt, cài đặt và xoá mô hình đã tải đã chuyển sang không gian làm việc Danh mục mô hình.",
|
||
"open_engines": "Mở engine",
|
||
"open_models": "Mở mô hình"
|
||
},
|
||
"settings": {
|
||
"remote_backend_test": "Kiểm tra kết nối",
|
||
"remote_backend_save": "Lưu và tải lại",
|
||
"remote_backend_recovery_title": "Không thể kết nối với backend từ xa",
|
||
"remote_backend_recovery_hint": "Bạn có thể đổi backend từ xa sau trong Cài đặt → Chia sẻ.",
|
||
"remote_backend_use_local": "Dùng backend cục bộ",
|
||
"remote_backend_error_tls": "Không thể xác minh kết nối bảo mật. Hãy kiểm tra chứng chỉ và dùng cổng HTTP API của VoiceStudio.",
|
||
"remote_backend_error_cors": "Backend từ xa đã chặn ứng dụng này. Hãy cho phép nguồn của ứng dụng trong cài đặt CORS.",
|
||
"remote_backend_error_network": "Không thể truy cập backend từ xa. Hãy kiểm tra địa chỉ, mạng và tường lửa.",
|
||
"remote_backend_error_timeout": "Backend từ xa không phản hồi kịp thời.",
|
||
"remote_backend_error_http": "Backend từ xa trả về HTTP {{status}}.",
|
||
"remote_backend_error_wrong_port": "Dịch vụ này có vẻ không phải HTTP API của VoiceStudio. Cổng 7443 thường dùng để điều khiển worker từ xa; hãy thử cổng 3900.",
|
||
"openapi": "API VoiceStudio",
|
||
"general": "Chung",
|
||
"theme": "Giao diện",
|
||
"language": "Ngôn ngữ",
|
||
"language_desc": "Chọn ngôn ngữ giao diện",
|
||
"appearance": "Cá nhân hóa",
|
||
"sharing": "Chia sẻ",
|
||
"models": "Mô hình",
|
||
"engines": "Công cụ",
|
||
"capture": "Phím tắt",
|
||
"credentials": "Xác thực",
|
||
"llm_providers": "Nhà cung cấp LLM",
|
||
"llmp_desc": "Cung cấp năng lực cho bản dịch Cinematic và Autofit — LLM viết lại từng dòng cho vừa quỹ thời gian của phân đoạn để giữ đúng nhịp thời gian của video. Khóa được lưu ở dạng mã hóa; nhà cung cấp cục bộ (Ollama/LM Studio) hoạt động hoàn toàn ngoại tuyến.",
|
||
"llmp_catalogue_note": "Nhà cung cấp được đánh dấu đang hoạt động là bên trả lời khi nhóm engine LLM trong danh mục được đặt là \"tương thích OpenAI\".",
|
||
"llmp_catalogue_link": "Mở nhóm LLM trong danh mục",
|
||
"llmp_provider": "Nhà cung cấp",
|
||
"llmp_provider_hint": "Chọn nhà cung cấp để cấu hình. Nhà cung cấp đang hoạt động sẽ được dùng cho bản dịch Cinematic/Autofit. Nhà cung cấp cục bộ không cần khóa nhưng máy chủ của chúng phải đang chạy.",
|
||
"llmp_local_tag": "cục bộ",
|
||
"llmp_about": "Giới thiệu",
|
||
"llmp_get_key": "Lấy khóa API",
|
||
"llmp_account_id": "ID tài khoản",
|
||
"llmp_account_placeholder": "ID tài khoản Cloudflare",
|
||
"llmp_api_key": "Khóa API",
|
||
"llmp_key_env": "đặt qua biến môi trường (.env) — ghi đè trường này",
|
||
"llmp_key_stored": "đã lưu — gõ để thay thế",
|
||
"llmp_key_paste": "dán khóa API của bạn",
|
||
"llmp_base_url": "URL cơ sở",
|
||
"llmp_model": "Mô hình",
|
||
"llmp_model_placeholder": "tên mô hình",
|
||
"llmp_fetch_models": "Lấy danh sách mô hình",
|
||
"llmp_models_loaded": "{{count}} mô hình khả dụng từ nhà cung cấp này",
|
||
"llmp_status": "Trạng thái",
|
||
"llmp_save": "Lưu",
|
||
"llmp_save_active": "Lưu và dùng cho bản dịch",
|
||
"llmp_save_keep": "Lưu và giữ nhà cung cấp đang hoạt động",
|
||
"llmp_test": "Kiểm tra",
|
||
"llmp_active_badge": "đang hoạt động",
|
||
"llmp_test_ok": "ok — {{model}} · {{ms}} ms",
|
||
"llmp_err_config": "Thiếu khóa API hoặc URL cơ sở — hãy điền và lưu.",
|
||
"llmp_err_auth": "Khóa bị từ chối (401/403) — kiểm tra khóa API của bạn.",
|
||
"llmp_err_not_found": "Không tìm thấy (404) — kiểm tra tên mô hình và đường dẫn của URL cơ sở.",
|
||
"llmp_err_rate_limit": "Bị giới hạn tốc độ (429) — khóa vẫn hoạt động; hãy thử lại sau giây lát.",
|
||
"llmp_err_network": "Không thể kết nối tới nhà cung cấp — kiểm tra URL cơ sở, mạng của bạn, hoặc máy chủ cục bộ có đang chạy không.",
|
||
"llmp_err_error": "Kiểm tra thất bại",
|
||
"llmp_load_failed": "Không tải được danh sách nhà cung cấp",
|
||
"llmp_save_failed": "Lưu không thành công",
|
||
"updates": "Cập nhật",
|
||
"logs": "Nhật ký",
|
||
"about": "Giới thiệu",
|
||
"privacy": "Bảo mật",
|
||
"title": "Cài đặt",
|
||
"ui_scale": "Quy mô giao diện người dùng",
|
||
"ui_scale_setup_screen": "Màn hình: {{width}} × {{height}}",
|
||
"ui_scale_setup_title": "Chọn kích thước giao diện dễ nhìn",
|
||
"ui_scale_setup_desc": "Xem bản xem trước trực tiếp và chọn tỷ lệ phù hợp nhất với màn hình này. Bạn có thể thay đổi sau trong Cài đặt.",
|
||
"ui_scale_setup_suggested": "Đề xuất",
|
||
"ui_scale_setup_preview_title": "Bản xem trước trực tiếp",
|
||
"ui_scale_setup_current_suggestion": "Mức khởi đầu đề xuất: {{percent}}%",
|
||
"ui_scale_setup_continue": "Dùng {{percent}}%",
|
||
"proxy": "ủy quyền",
|
||
"proxy_desc": "Proxy HTTP/SOCKS5 cho tải xuống (tải video, Hugging Face). Hỗ trợ http://, https://, socks5://. Áp dụng ngay cho các lượt tải xuống mới.",
|
||
"proxy_saved": "Đã đặt proxy — các lượt tải xuống mới sẽ sử dụng nó",
|
||
"proxy_save_failed": "Không lưu được proxy",
|
||
"proxy_cleared": "Đã xóa proxy",
|
||
"proxy_clear": "Xóa",
|
||
"ffmpeg": "FFmpeg",
|
||
"ffmpeg_found": "Đã tìm thấy",
|
||
"ffmpeg_missing": "Không tìm thấy",
|
||
"ffmpeg_current": "Đường dẫn hiện tại",
|
||
"ffmpeg_desc": "Đặt đường dẫn ffmpeg tùy chỉnh nếu tính năng tự động phát hiện không thành công.",
|
||
"ffmpeg_saved": "Đã đặt đường dẫn FFmpeg - khởi động lại chương trình phụ trợ để áp dụng.",
|
||
"diagnostics_copied": "Đã sao chép chẩn đoán — dán vào báo cáo sự cố của bạn.",
|
||
"updater_desktop": "Trình cập nhật chỉ chạy trong ứng dụng dành cho máy tính để bàn.",
|
||
"latest_version": "Bạn đang dùng phiên bản mới nhất.",
|
||
"logs_load_failed": "Không tải được nhật ký: {{message}}",
|
||
"clear_frontend_confirm": "Xóa bộ đệm nhật ký lối vào trong bộ nhớ?",
|
||
"clear_frontend_title": "Xóa nhật ký",
|
||
"frontend_logs_cleared": "Đã xóa nhật ký giao diện người dùng",
|
||
"clear_tauri_confirm": "Cắt bớt các tệp nhật ký phía Tauri? Hệ điều hành sẽ tiếp tục viết các mục mới.",
|
||
"clear_tauri_title": "Xóa nhật ký Tauri",
|
||
"nothing_to_clear": "Không có gì để xóa - chưa có tệp nhật ký Tauri trên đĩa.",
|
||
"cleared_tauri_one": "Đã xóa tệp nhật ký {{count}} Tauri",
|
||
"cleared_tauri_other": "Đã xóa {{count}} tệp nhật ký Tauri",
|
||
"clear_tauri_failed": "Không xóa được nhật ký Tauri: {{message}}",
|
||
"clear_backend_confirm": "Xóa thời gian chạy phụ trợ + nhật ký sự cố? Điều này không thể hoàn tác được.",
|
||
"clear_backend_title": "Xóa nhật ký",
|
||
"backend_logs_cleared": "Đã xóa nhật ký phụ trợ",
|
||
"clear_backend_failed": "Không thể xóa nhật ký",
|
||
"copy_failed": "Sao chép không thành công: {{message}}",
|
||
"update_check_failed": "Kiểm tra cập nhật không thành công: {{message}}",
|
||
"save_failed": "Lưu không thành công: {{message}}",
|
||
"clear_failed": "Xóa không thành công: {{message}}",
|
||
"engine_switched": "Đã chuyển {{family}} sang {{engine}}",
|
||
"channel_set_failed": "Không đặt được kênh: {{message}}",
|
||
"updater_downloading": "Đang tải xuống {{version}}…",
|
||
"updater_installed": "Đã cài đặt - khởi chạy lại.",
|
||
"updater_available_title": "Đã có bản cập nhật",
|
||
"updater_available_body": "Đã có phiên bản {{version}}.\n\n{{notes}}\n\nTải xuống và cài đặt ngay bây giờ?",
|
||
"updater_notes_fallback": "Xem ghi chú phát hành trên GitHub.",
|
||
"shortcut_load_failed": "Không thể tải phím tắt: {{message}}",
|
||
"shortcut_set": "Phím tắt đọc chính tả được đặt thành {{shortcut}}",
|
||
"shortcut_register_failed": "Không thể đăng ký: {{message}}",
|
||
"shortcut_reset": "Đặt lại về mặc định",
|
||
"shortcut_reset_failed": "Đặt lại không thành công: {{message}}",
|
||
"cancel": "Hủy",
|
||
"hf_token_also_clear": "Đồng thời xóa",
|
||
"hf_token_clear_btn": "Xóa token",
|
||
"hf_token_clear_confirm": "Xóa token HuggingFace từ nguồn Ứng dụng?",
|
||
"hf_token_clear_dialog": "Xóa token",
|
||
"hf_token_input": "Token HuggingFace",
|
||
"hf_token_sources": "Nguồn token HF",
|
||
"hf_token_test_now": "Kiểm tra ngay",
|
||
"hf_token_test_now_title": "Chạy lại whoami cho mọi nguồn",
|
||
"color_theme": "Chủ đề màu sắc",
|
||
"font": "Phông chữ",
|
||
"autoplay_preview": "Tự động phát bản xem trước",
|
||
"autoplay_preview_label": "Phát đầu ra ngay khi kết xuất kết thúc",
|
||
"autoplay_preview_hint": "Khi tắt, kết xuất đã hoàn thành không còn tự bắt đầu phát nữa — hữu ích khi tạo các phân đoạn hàng loạt.",
|
||
"appearance_help": "Các điều khiển này từng nằm ở thanh nhật ký dưới cùng — được di chuyển vào đây để chân trang có thể tập trung vào nhật ký. Các thay đổi sẽ được áp dụng ngay lập tức và duy trì qua các lần ra mắt.",
|
||
"advanced": "Nâng cao",
|
||
"shortcut": "Phím tắt đọc chính tả",
|
||
"credentials_desc": "Khóa API và mã thông báo, được đặt cho phiên này.",
|
||
"credentials_more": "Thêm nhà cung cấp",
|
||
"group_general": "chung",
|
||
"group_voice": "Giọng nói & Động cơ",
|
||
"group_system": "Hệ thống",
|
||
"group_app": "ứng dụng",
|
||
"search_placeholder": "Cài đặt tìm kiếm…",
|
||
"restart_required": "Yêu cầu khởi động lại",
|
||
"applies_now": "Áp dụng ngay bây giờ",
|
||
"dictation": "chính tả",
|
||
"pronunciation": "phát âm",
|
||
"translation": "Dịch thuật",
|
||
"network": "Mạng",
|
||
"performance": "Hiệu suất & Thiết bị",
|
||
"storage": "Lưu trữ",
|
||
"device": "Thiết bị & tính toán",
|
||
"device_desc": "Phần cứng trực tiếp và phần đọc phụ trợ.",
|
||
"network_desc": "Đường dẫn proxy và FFmpeg để tải xuống và xử lý phương tiện.",
|
||
"translation_desc": "Cách lồng tiếng sẽ dịch đoạn hội thoại và công cụ nào thực hiện việc đó.",
|
||
"translate_quality": "Chất lượng dịch thuật",
|
||
"translate_quality_desc": "Nhanh là nghĩa đen và nhanh chóng; Cinematic sử dụng LLM để diễn đạt tự nhiên.",
|
||
"translate_fast": "Nhanh",
|
||
"translate_cinematic": "Điện ảnh",
|
||
"translation_providers": "Nhà cung cấp dịch thuật",
|
||
"translation_providers_desc": "Khóa API dành cho người dịch trực tuyến, được đặt cho phiên này.",
|
||
"review_mode": "Chế độ xem lại",
|
||
"review_mode_on": "Xem lại",
|
||
"review_mode_off": "Bắn nhanh",
|
||
"review_mode_desc": "Tạm dừng giữa các giai đoạn quy trình để bạn có thể xem lại đầu ra ASR/bản dịch.",
|
||
"header_live_stats": "Hiển thị số liệu hệ thống trực tiếp trong tiêu đề",
|
||
"header_live_stats_desc": "Thêm màn hình RAM/CPU/VRAM trực tiếp vào thanh trên cùng (tắt theo mặc định).",
|
||
"nav_style": "Kiểu điều hướng",
|
||
"nav_style_desc": "Chuyển không gian làm việc bằng thanh biểu tượng ở cạnh cửa sổ hoặc bằng các thẻ trên thanh tiêu đề.",
|
||
"nav_style_rail": "Thanh bên",
|
||
"nav_style_tabs": "Thẻ trên thanh tiêu đề",
|
||
"storage_desc": "Nơi VoiceStudio lưu giữ dữ liệu và kết quả đầu ra của bạn.",
|
||
"history_retention": "Lịch sử tạo",
|
||
"history_retention_desc": "Số bản thu được giữ trước khi dọn các bản cũ nhất.",
|
||
"history_retention_help": "Sau mỗi lần tạo, các bản thu cũ nhất chưa gắn sao vượt quá giới hạn này sẽ bị xóa cùng tệp âm thanh. Bản thu đã gắn sao luôn được giữ lại. 0 = giữ tất cả.",
|
||
"history_retention_cap": "Số bản thu cần giữ",
|
||
"history_retention_cap_hint": "Bản thu gắn sao không bao giờ bị dọn · 0 = không giới hạn",
|
||
"history_retention_saved": "Đã lưu giới hạn lưu trữ",
|
||
"history_retention_save_failed": "Không thể lưu",
|
||
"history_retention_invalid": "Nhập 0 trở lên",
|
||
"workers_title": "Máy phụ từ xa",
|
||
"workers_desc": "Gửi từng tác vụ tới GPU trên các máy khác của bạn. Kết quả sẽ quay lại đây. Không có gì được gửi đi cho đến khi bạn thêm một máy phụ và phê duyệt nó.",
|
||
"workers_enable": "Dùng máy phụ từ xa",
|
||
"workers_enable_hint": "Khi tắt, không kết nối nào được chấp nhận và không có gì rời khỏi máy này.",
|
||
"workers_port_conflict": "Worker từ xa không khả dụng vì một phiên bản VoiceStudio khác đang nhận chúng trên cổng này. Hãy đóng phiên bản kia, hoặc đặt OMNIVOICE_WORKER_PORT sang cổng khác rồi khởi động lại VoiceStudio.",
|
||
"workers_endpoint": "Máy phụ kết nối tới",
|
||
"workers_endpoint_hint": "Máy phụ phải truy cập được địa chỉ này. Trên các mạng khác nhau, VPN như Tailscale là cách đáng tin cậy.",
|
||
"workers_add": "Thêm máy phụ",
|
||
"workers_add_hint": "Tạo mã, rồi dán vào OmniVoice trên máy kia.",
|
||
"workers_new_token": "Tạo mã",
|
||
"workers_token_once": "Hãy sao chép ngay — mã chỉ hiển thị một lần, chỉ dùng được một lần và hết hạn sau 15 phút.",
|
||
"workers_copy": "Sao chép",
|
||
"workers_copied": "Đã sao chép",
|
||
"workers_copy_failed": "Không thể sao chép.",
|
||
"workers_none": "Chưa có máy phụ nào. Tạo mã để thêm máy đầu tiên.",
|
||
"workers_load": "Tác vụ {{active}} / {{slots}}",
|
||
"workers_needs_consent": "Chưa phê duyệt",
|
||
"workers_status_online": "Trực tuyến",
|
||
"workers_status_offline": "Ngoại tuyến",
|
||
"workers_status_paused": "Đã tạm dừng",
|
||
"workers_status_disabled": "Đã tắt",
|
||
"workers_resume": "Tiếp tục",
|
||
"workers_disable": "Tắt",
|
||
"workers_enable_one": "Bật",
|
||
"workers_remove": "Xóa",
|
||
"workers_remove_title": "Xóa máy phụ?",
|
||
"workers_remove_confirm": "Xóa {{name}}? Khóa của nó bị thu hồi, nên không thể kết nối lại nếu không có mã mới.",
|
||
"workers_rename": "Đổi tên máy phụ",
|
||
"inbound_add_person": "Thêm một người",
|
||
"inbound_add_person_hint": "Tạo chuỗi kết nối cho một người. Hãy cấp cho mỗi người một chuỗi riêng, để việc xóa một chuỗi không ngắt kết nối của tất cả mọi người.",
|
||
"inbound_bind": "Có thể truy cập từ",
|
||
"inbound_bind_apply": "Áp dụng",
|
||
"inbound_bind_exposed": "Bất kỳ ai truy cập được {{address}} đều có thể kết nối bằng chuỗi hợp lệ. TLS mã hóa phiên và ghim chứng chỉ của máy này; hãy giữ riêng tư từng chuỗi và xóa quyền truy cập không còn cần thiết.",
|
||
"inbound_bind_local": "Chỉ máy này truy cập được. Nhập địa chỉ mạng của bạn để các máy khác có thể kết nối.",
|
||
"inbound_connect": "Kết nối",
|
||
"inbound_connect_desc": "Dán chuỗi kết nối mà bạn được cấp. Máy đó phải đang chấp nhận kết nối thì mới hoạt động.",
|
||
"inbound_connect_hint": "Bắt đầu bằng ovnode:// và chứa khóa, địa chỉ, cổng cùng dấu vân tay chứng chỉ.",
|
||
"inbound_connect_placeholder": "ovnode://…@192.168.0.110:7444?fingerprint=…",
|
||
"inbound_request_failed": "Không thể kết nối tới máy GPU đó. Hãy kiểm tra máy đang trực tuyến và chấp nhận kết nối, rồi thử lại.",
|
||
"inbound_connect_row": "Chuỗi kết nối",
|
||
"inbound_connect_title": "Kết nối tới một máy có GPU",
|
||
"inbound_connected": "đã kết nối",
|
||
"inbound_connected_now": "Đang kết nối lúc này",
|
||
"inbound_connecting": "đang kết nối…",
|
||
"inbound_create": "Tạo",
|
||
"inbound_desc": "Cho phép các máy khác kết nối để nhiều người cùng chia sẻ GPU này. Mọi kết nối đều được mã hóa và ghim vào chứng chỉ của máy này.",
|
||
"inbound_disconnect": "Ngắt kết nối",
|
||
"inbound_enable": "Chấp nhận kết nối",
|
||
"inbound_enable_hint": "Người khác kết nối tới máy này, thay vì máy này kết nối tới họ. Không ai vào được nếu không có chuỗi kết nối do bạn tạo.",
|
||
"inbound_exposed_badge": "Trên mạng của bạn",
|
||
"inbound_forget": "Xóa",
|
||
"inbound_hours_ago": "{{count}} giờ trước",
|
||
"inbound_jobs_run": "{{count}} tác vụ",
|
||
"inbound_just_now": "vừa xong",
|
||
"inbound_label": "Tên",
|
||
"inbound_label_placeholder": "Máy tính của Alice",
|
||
"inbound_last_seen": "dùng lần cuối {{when}}",
|
||
"inbound_minutes_ago": "{{count}} phút trước",
|
||
"inbound_nobody": "Không có ai đang kết nối.",
|
||
"inbound_people": "Những người có quyền truy cập",
|
||
"inbound_revoke": "Xóa",
|
||
"inbound_revoke_confirm": "Thu hồi quyền truy cập của {{label}}? Chuỗi kết nối của họ sẽ ngừng hoạt động ngay lập tức. Tất cả những người khác vẫn được kết nối.",
|
||
"inbound_revoke_title": "Thu hồi quyền truy cập?",
|
||
"inbound_shown_once": "Hãy sao chép ngay — chuỗi này sẽ không hiển thị lại. Chỉ đưa cho {{label}}.",
|
||
"inbound_shown_once_warning": "Hãy coi nó như mật khẩu và gửi riêng tư. Dấu vân tay chứng chỉ ghim kết nối đã mã hóa vào máy GPU này.",
|
||
"inbound_title": "Chia sẻ GPU này với người khác",
|
||
"history_retention_load_failed": "Không thể tải giới hạn lưu trữ hiện tại",
|
||
"models_dir_help": "Nơi lưu trọng số mô hình. Chọn ổ đĩa lớn hơn hoặc nhanh hơn khi cần; thay đổi có hiệu lực sau khi khởi động lại.",
|
||
"models_dir_saved": "Đã lưu thư mục mô hình — khởi động lại để áp dụng",
|
||
"models_dir_reverted": "Đã khôi phục thư mục mặc định — khởi động lại để áp dụng",
|
||
"models_dir_reset_hint": "Trở về vị trí bộ nhớ đệm mặc định",
|
||
"models_dir_effective": "Đang sử dụng",
|
||
"models_dir_configured": "Đã cấu hình",
|
||
"models_dir_default": "Dùng mặc định",
|
||
"models_dir_restart": "↻ Khởi động lại VoiceStudio để dùng vị trí mới.",
|
||
"worker_join": "Tham gia",
|
||
"worker_join_code": "Mã tham gia",
|
||
"worker_join_code_hint": "Dùng một lần và hết hạn sau 15 phút. Hãy tạo trên máy sẽ gửi việc.",
|
||
"worker_join_desc": "Cho phép một bản VoiceStudio khác gửi tác vụ tới máy này. Dán mã tham gia mà nó hiển thị — hoặc quét QR của nó bằng điện thoại rồi dán vào đây.",
|
||
"worker_join_env": "OMNIVOICE_WORKER_MODE đã được đặt trong môi trường của máy này, nên nó quyết định — hãy thay đổi ở đó.",
|
||
"worker_join_no_endpoint": "Chưa lưu control plane nào.",
|
||
"worker_join_ok": "Đã tham gia. Máy này hiện đang nhận việc.",
|
||
"worker_join_placeholder": "ovw_…",
|
||
"worker_join_rejoin": "Tham gia máy khác",
|
||
"worker_join_stopped": "Đã dừng",
|
||
"worker_join_take_work": "Nhận việc từ",
|
||
"worker_join_title": "Cho mượn GPU của máy này",
|
||
"worker_join_working": "Đang làm việc",
|
||
"workers_add_hint_qr": "Tạo mã, rồi quét QR từ máy kia hoặc dán mã vào phần cài đặt Máy phụ từ xa của máy đó.",
|
||
"workers_approve": "Phê duyệt",
|
||
"workers_last_seen": "lần cuối thấy {{when}}",
|
||
"workers_qr_alt": "Mã QR chứa mã này — hãy quét từ máy kia",
|
||
"workers_secret_done": "Xong",
|
||
"workers_seen_hr": "{{count}} giờ trước",
|
||
"workers_seen_min": "{{count}} phút trước",
|
||
"workers_seen_now": "vừa xong",
|
||
"workers_step_1": "Cài VoiceStudio trên máy có GPU.",
|
||
"workers_step_2": "Tạo mã ở phía trên.",
|
||
"workers_step_3": "Quét QR ở đó, hoặc dán mã vào phần cài đặt Máy phụ từ xa của máy đó.",
|
||
"workers_summary_none": "Chưa có ai kết nối",
|
||
"workers_summary_online": "{{count}} trực tuyến",
|
||
"workers_token_expired": "Đã hết hạn — hãy tạo mã mới",
|
||
"workers_token_expires_in": "Hết hạn sau {{time}}",
|
||
"workers_token_qr_hint": "Trên máy kia: Cài đặt → Hệ thống → Máy phụ từ xa → Tham gia, rồi quét hoặc dán.",
|
||
"compute_device": "Thiết bị tính toán",
|
||
"compute_device_title": "Thiết bị tính toán",
|
||
"compute_device_desc": "Backend chạy mô hình trên thiết bị nào. Tự động phù hợp với hầu hết mọi người.",
|
||
"compute_device_env_pinned": "Được ghim bởi biến môi trường OMNIVOICE_DEVICE",
|
||
"compute_device_ignored": "Không phát hiện thiết bị đó trên máy này — Tự động đang có hiệu lực",
|
||
"compute_device_restart": "Có hiệu lực sau khi khởi động lại ứng dụng",
|
||
"compute_device_note": "Chỉ liệt kê các thiết bị được phát hiện trên máy này. CPU luôn hoạt động; ghim một thiết bị không bao giờ bịa ra phần cứng.",
|
||
"compute_device_auto": "Tự động (khuyên dùng)",
|
||
"device_family_cuda": "NVIDIA GPU (CUDA)",
|
||
"device_family_rocm": "AMD GPU (ROCm)",
|
||
"device_family_xpu": "Intel GPU (XPU)",
|
||
"device_family_mps": "Apple GPU (MPS)",
|
||
"device_family_cpu": "CPU",
|
||
"device_load_failed": "Không tải được cài đặt thiết bị",
|
||
"perf_save_failed": "Không lưu được cài đặt"
|
||
},
|
||
"bootstrap": {
|
||
"title": "VoiceStudio",
|
||
"checking": "Đang kiểm tra môi trường…",
|
||
"downloading_uv": "Đang tải xuống uv (trình quản lý gói Python)…",
|
||
"creating_venv": "Đang tạo môi trường ảo Python…",
|
||
"installing_deps": "Đang cài đặt các thư viện — chạy lần đầu, khoảng 5-10 phút.",
|
||
"starting_backend": "Đang khởi động dịch vụ…",
|
||
"ready": "Sẵn sàng",
|
||
"failed": "Cài đặt thất bại",
|
||
"what_to_try": "Hướng giải quyết:",
|
||
"retry": "Thử lại",
|
||
"clean_retry": "Dọn dẹp & Thử lại",
|
||
"clean_retry_confirm": "Thao tác này sẽ xóa môi trường ảo hiện tại và tải lại toàn bộ tài nguyên cần thiết (mất khoảng 5-10 phút). Tiếp tục?",
|
||
"hide_logs": "Ẩn nhật ký",
|
||
"show_logs": "Hiện nhật ký",
|
||
"lines_one": "{{count}} dòng",
|
||
"lines_other": "{{count}} dòng",
|
||
"copy": "Sao chép",
|
||
"copied": "Đã sao chép!",
|
||
"waiting_output": "Đang chờ dữ liệu…",
|
||
"auto_detect": "Tự động nhận diện",
|
||
"suggest_lang": "Chuyển sang Tiếng Việt?",
|
||
"select_lang": "Ngôn ngữ:",
|
||
"region_global": "Toàn cầu (trực tiếp)",
|
||
"region_china": "Trung Quốc (gương)",
|
||
"region_russia": "Nga (gương)",
|
||
"region_restricted": "Bị hạn chế (gương)",
|
||
"unknown_error": "Lỗi không xác định",
|
||
"retrying": "Đang thử lại…",
|
||
"hint_readme": "README.md bị thiếu trong gói. Lỗi này hiện được tự động sửa — thử lại sẽ hoạt động.",
|
||
"hint_python_mirror": "Mạng không truy cập được bản tải Python (bản phát hành github.com). Hãy đổi khu vực trong Cài đặt → Mạng (Trung Quốc / Nga / Hạn chế đi qua máy chủ gương), hoặc cài Python 3.11+ trên hệ thống để ứng dụng dùng bản đó.",
|
||
"hint_uv_timeout": "Hết thời gian chờ mạng khi tải uv. Kiểm tra kết nối internet hoặc thử khu vực khác trong Cài đặt → Mạng.",
|
||
"hint_uv_sync": "Cài đặt phụ thuộc thất bại. \"Dọn dẹp & Thử lại\" sẽ xóa venv trong bộ nhớ đệm và bắt đầu lại.",
|
||
"hint_build_backend": "Lỗi backend build của Python. \"Dọn dẹp & Thử lại\" sẽ xóa venv hỏng để xây dựng lại từ đầu.",
|
||
"hint_ffmpeg": "Tải ffmpeg thất bại. Không nghiêm trọng — thử lại hoặc tự cài ffmpeg thủ công.",
|
||
"hint_port": "Cổng 3900 đang được sử dụng. Hãy đóng các phiên bản VoiceStudio khác hoặc ứng dụng đang dùng cổng đó.",
|
||
"hint_silent_crash": "Backend bị lỗi mà không có thông báo. \"Dọn dẹp & Thử lại\" thường khắc phục được sự cố venv bị hỏng.",
|
||
"hint_github_blocked": "Mạng của bạn có thể đang chặn GitHub. Cài Python 3.11+ từ python.org (thêm vào PATH) rồi khởi động lại, hoặc đặt UV_PYTHON_INSTALL_MIRROR — xem docs/install/troubleshooting.md.",
|
||
"hint_intel_mac": "Máy Mac này dùng vi xử lý Intel và PyTorch không còn phát hành bản dựng cho Mac Intel — không thể cài backend AI cục bộ, và thử lại cũng không thay đổi được. Bạn vẫn có thể trỏ ứng dụng tới backend từ xa chạy trên máy khác (Cài đặt → Chia sẻ → Backend từ xa), hoặc dùng VoiceStudio trên Mac Apple Silicon, Windows hoặc Linux. Chi tiết: docs/install/macos.md.",
|
||
"hint_default": "Hãy thử \"Thử lại\" trước. Nếu vẫn lỗi, \"Dọn dẹp & Thử lại\" sẽ xây dựng lại môi trường từ đầu.",
|
||
"hint_stuck": "Phần phụ trợ chưa hoàn thành việc bắt đầu. Từ nguồn, trước tiên hãy chạy `uv sync` và đảm bảo `uv` và Python nằm trên PATH của bạn, sau đó Thử lại. Kiểm tra nhật ký bên dưới (hoặc Cài đặt → Nhật ký → Phần cuối) để biết điểm dừng chính xác.",
|
||
"lines": "{{count}} dòng"
|
||
},
|
||
"stories": {
|
||
"title": "Biên tập truyện",
|
||
"subtitle": "Sách nói nhiều bản nhạc với giọng nói của mỗi nhân vật",
|
||
"cast": "Truyền",
|
||
"castTitle": "Truyền - gán giọng nói cho từng nhân vật",
|
||
"addCharacter": "Thêm nhân vật",
|
||
"character": "nhân vật",
|
||
"characterName": "Tên nhân vật",
|
||
"narratorLocked": "Người kể chuyện luôn có mặt",
|
||
"removeCharacter": "Xóa ký tự",
|
||
"noProfiles": "Chưa cài đặt cấu hình giọng nói nào - trước tiên hãy sao chép hoặc thiết kế giọng nói.",
|
||
"pasteSplit": "Dán & Tách",
|
||
"import": "Nhập khẩu",
|
||
"autocast": "Tự động truyền",
|
||
"autocastHint": "Phát hiện ai đang nói và tự động gán giọng nói",
|
||
"autocastEmpty": "Không có gì để tự động truyền — trước tiên hãy dán hoặc nhập câu chuyện.",
|
||
"autocastDone": "Tự động truyền {{lines}} dòng qua {{voices}} giọng nói",
|
||
"importFailed": "Không thể đọc tập tin đó.",
|
||
"addLine": "Thêm dòng",
|
||
"addChapter": "Thêm chương",
|
||
"chapterN": "Chương {{n}}",
|
||
"stems": "thân cây",
|
||
"stemsDone": "Đã xuất {{count}} gốc ký tự",
|
||
"format": "Định dạng xuất",
|
||
"mp3Fallback": "Không có mã hóa MP3 — thay vào đó, hãy tải xuống WAV.",
|
||
"projects": "Dự án",
|
||
"newStory": "Câu chuyện mới",
|
||
"save": "Lưu",
|
||
"untitled": "Truyện không tên",
|
||
"projectName": "Tên dự án",
|
||
"deleteProject": "Xóa dự án",
|
||
"noProjects": "Chưa có câu chuyện nào được lưu - Lưu để giữ câu chuyện này.",
|
||
"projectSaved": "Đã lưu câu chuyện",
|
||
"generateAll": "Tạo",
|
||
"splitPlaceholder": "Dán một đoạn văn dài. Chúng ta sẽ chia nó thành các phân đoạn ở ranh giới câu.",
|
||
"maxChars": "Ký tự tối đa trên mỗi phân đoạn",
|
||
"segmentsHint": "~{{count}} phân đoạn ở {{max}} ký tự",
|
||
"pasteAbove": "Dán văn bản ở trên",
|
||
"cancel": "Hủy bỏ",
|
||
"splitIntoTracks": "Chia thành dòng",
|
||
"emptyText": "Bắt đầu câu chuyện của bạn bằng cách thêm lời thoại và lời kể. Gán cho mỗi nhân vật một giọng nói trong Cast.",
|
||
"addFirst": "Thêm dòng đầu tiên",
|
||
"linePlaceholder": "Nhập đoạn hội thoại hoặc tường thuật… sử dụng [tạm dừng 0,5 giây] để nghỉ im lặng",
|
||
"text": "văn bản",
|
||
"voice": "giọng nói",
|
||
"defaultVoice": "Mặc định",
|
||
"inlineVoice": "Đặt giọng nói nội tuyến",
|
||
"inlineVoiceHint": "Chuyển giọng nói cho văn bản được đánh dấu (hoặc chèn một công tắc ở con trỏ)",
|
||
"resetInlineVoice": "Đặt lại về giọng nói",
|
||
"insertPause": "Chèn dấu ngắt [tạm dừng 0,5 giây]",
|
||
"preview": "Xem trước dòng này",
|
||
"removeLine": "Xóa dòng",
|
||
"tune": "Giai điệu & tốc độ",
|
||
"speed": "Tốc độ",
|
||
"reset": "Đặt lại",
|
||
"tones": {
|
||
"laugh": "Cười",
|
||
"sigh": "Thở dài",
|
||
"question": "Câu hỏi",
|
||
"surprise": "bất ngờ",
|
||
"confirm": "Xác nhận",
|
||
"dissatisfaction": "Hừm"
|
||
},
|
||
"lines": "{{count}} dòng",
|
||
"characters": "{{count}} ký tự",
|
||
"minutes": "~{{count}} phút",
|
||
"chars": "{{count}} ký tự",
|
||
"exportDone": "Đã tải sách nói xuống",
|
||
"exportFailed": "Xuất không thành công - kiểm tra xem chương trình phụ trợ có đang chạy không.",
|
||
"global_speed": "Tốc độ",
|
||
"global_speed_hint": "Tốc độ đọc cho tất cả các dòng mà không cần ghi đè tốc độ riêng",
|
||
"deleteProjectConfirm": "Xóa vĩnh viễn dự án này?"
|
||
},
|
||
"common": {
|
||
"open": "Mở",
|
||
"cancel": "Hủy bỏ",
|
||
"save": "Lưu",
|
||
"delete": "Xóa",
|
||
"loading": "Đang tải…",
|
||
"error": "Đã xảy ra lỗi",
|
||
"languages_count": "646 ngôn ngữ",
|
||
"clear": "Xóa",
|
||
"refresh": "Làm mới",
|
||
"close": "Đóng",
|
||
"minimize_window": "Thu nhỏ cửa sổ",
|
||
"maximize_restore_window": "Phóng to hoặc khôi phục cửa sổ",
|
||
"close_window": "Đóng cửa sổ",
|
||
"back": "Quay lại",
|
||
"play": "Chơi",
|
||
"pause": "Tạm dừng",
|
||
"reload": "Buộc tải lại giao diện người dùng",
|
||
"backend": "Phần phụ trợ",
|
||
"frontend": "Giao diện người dùng",
|
||
"tauri": "Tauri",
|
||
"cancelOp": "Hủy thao tác",
|
||
"dismiss": "Loại bỏ",
|
||
"dismissStatus": "Trạng thái loại bỏ",
|
||
"search": "Tìm kiếm…",
|
||
"no_matches": "Không có kết quả phù hợp",
|
||
"recent_and_popular": "Gần đây & Phổ biến",
|
||
"popular_label": "phổ biến",
|
||
"showing_of": "Đang hiển thị {{shown}} trong tổng số {{total}}. Nhập để tìm kiếm…",
|
||
"yes": "Có",
|
||
"no": "Không",
|
||
"more_info": "Thêm thông tin",
|
||
"learn_more": "Tìm hiểu thêm",
|
||
"saving": "Đang lưu…",
|
||
"remove": "Xóa {{term}}",
|
||
"not_set": "Chưa đặt"
|
||
},
|
||
"launchpad": {
|
||
"greeting": "xin chào ở đó",
|
||
"hero_title": "Tạo giọng nói <1>nghe giống bạn</1>.",
|
||
"hero_desc": "Sao chép giọng nói, thiết kế giọng nói mới hoặc lồng video sang <1>{{count}} ngôn ngữ</1>. Được thiết kế dành cho những người sáng tạo quan tâm đến âm thanh của nó.",
|
||
"clone_title": "Bản sao giọng nói",
|
||
"clone_desc": "Đưa vào một đoạn clip ngắn - chúng tôi sẽ phản chiếu nó. Một mẫu thường là đủ.",
|
||
"design_title": "Thiết kế giọng nói",
|
||
"design_desc": "Xây dựng một giọng nói mới từ một câu. Giới tính, tuổi tác, giọng nói, tâm trạng — quyết định của bạn.",
|
||
"dub_title": "Lồng tiếng video",
|
||
"dub_desc": "Phiên âm, dịch, lồng tiếng lại. Giữ từng loa, sắp xếp thời gian, gửi nó.",
|
||
"ab_compare": "So sánh A/B",
|
||
"ab_compare_title": "Hãy thử hai giọng nói cạnh nhau",
|
||
"cloned_voices": "Giọng nói nhân bản",
|
||
"designed_voices": "Giọng nói được thiết kế",
|
||
"dubbing_projects": "Dự án lồng tiếng",
|
||
"empty_hint": "Chưa có gì ở đây - hãy chọn một thẻ ở trên.",
|
||
"demo_callout": "Thử giọng nói demo — nhấn Tạo để nghe.",
|
||
"locked": "ĐÃ KHÓA",
|
||
"open": "Mở",
|
||
"try_it": "Hãy thử nó",
|
||
"audio_only": "Chỉ âm thanh",
|
||
"stories_title": "Truyện",
|
||
"stories_desc": "Sách nói nhiều giọng nói — chọn nhân vật, nhập tập lệnh, xuất theo chương.",
|
||
"gallery_title": "Thư viện giọng nói",
|
||
"gallery_desc": "Duyệt qua các giọng nói được thiết kế sẵn theo giọng, độ tuổi và phong cách — không cần thiết lập.",
|
||
"transcripts_title": "bảng điểm",
|
||
"transcripts_desc": "Biến âm thanh hoặc video thành văn bản có thể chỉnh sửa, tìm kiếm được — trên 646 ngôn ngữ.",
|
||
"recent_files": "Các tập tin gần đây",
|
||
"view_all_files": "Xem tất cả các tập tin",
|
||
"file": "tập tin",
|
||
"audiobook_title": "Sách nói",
|
||
"audiobook_desc": "Biến một tập lệnh dài hoặc EPUB thành sách nói có nhiều chương — bìa, siêu dữ liệu, một người kể chuyện."
|
||
},
|
||
"clone": {
|
||
"prompt": "Lời nhắc",
|
||
"language": "Ngôn ngữ",
|
||
"steps": "bước",
|
||
"voice_source": "Nguồn giọng nói",
|
||
"saved_profiles": "Hồ sơ đã lưu",
|
||
"transcript": "bảng điểm",
|
||
"style": "phong cách",
|
||
"save_as_profile": "Lưu dưới dạng hồ sơ giọng nói",
|
||
"profile_name": "Tên hồ sơ…",
|
||
"save": "Lưu",
|
||
"cancel": "Hủy bỏ",
|
||
"synthesize": "Tổng hợp âm thanh",
|
||
"synthesizing": "Đang tổng hợp… ({{seconds}}s)",
|
||
"drop_audio": "Thả âm thanh vào đây — hoặc nhấp vào. WAV, MP3, M4A… 🎤",
|
||
"record": "Ghi lại",
|
||
"cleaning": "Dọn dẹp…",
|
||
"using_profile": "Sử dụng hồ sơ: {{name}}",
|
||
"clear": "rõ ràng",
|
||
"production_overrides": "Ghi đè sản xuất",
|
||
"denoise": "Khử nhiễu",
|
||
"postprocess": "Hậu xử lý",
|
||
"duration": "Thời lượng",
|
||
"auto": "Tự động",
|
||
"optional": "(Tùy chọn)",
|
||
"toggle_sidebar": "Chuyển đổi thanh bên",
|
||
"delete_profile": "Xóa hồ sơ",
|
||
"personality_narrator": "Người kể chuyện",
|
||
"personality_casual": "Bình thường",
|
||
"personality_news_anchor": "Người dẫn tin tức",
|
||
"personality_storyteller": "Người kể chuyện",
|
||
"personality_corporate": "Công ty",
|
||
"personality_energetic": "tràn đầy năng lượng",
|
||
"preset_narrator": "🎙️ Có thẩm quyền",
|
||
"preset_excited_child": "🧒 Trẻ hào hứng",
|
||
"preset_anxious_whisper": "🤫 Thì thầm",
|
||
"preset_surprised_woman": "😲 Ngạc nhiên",
|
||
"preset_elderly_story": "👴 Người cao tuổi",
|
||
"preset_sichuan": "🌶️ 四川话",
|
||
"prompt_placeholder": "Giọng nói này nên nói gì?",
|
||
"design_placeholder": "Mô tả giọng nói, sau đó nhập nội dung nó nói…",
|
||
"speed": "Tốc độ",
|
||
"tshift": "t_shift",
|
||
"pos_temp": "Nhiệt độ Pos",
|
||
"class_temp": "Nhiệt độ lớp",
|
||
"layer_pen": "Bút lớp",
|
||
"auto_kicker": "· ô tô",
|
||
"cat_Gender": "Giới tính",
|
||
"cat_Age": "Tuổi",
|
||
"cat_Pitch": "Cao độ",
|
||
"cat_Style": "phong cách",
|
||
"cat_EnglishAccent": "Giọng Anh",
|
||
"cat_ChineseDialect": "Phương ngữ Trung Quốc",
|
||
"opt_Auto": "✨ Ô tô",
|
||
"opt_male": "nam giới",
|
||
"opt_female": "nữ",
|
||
"opt_child": "đứa trẻ",
|
||
"opt_teenager": "thiếu niên",
|
||
"opt_young_adult": "thanh niên",
|
||
"opt_middle_aged": "trung niên",
|
||
"opt_elderly": "người già",
|
||
"opt_very_low_pitch": "âm vực rất thấp",
|
||
"opt_low_pitch": "âm vực thấp",
|
||
"opt_moderate_pitch": "cao độ vừa phải",
|
||
"opt_high_pitch": "cao độ",
|
||
"opt_very_high_pitch": "âm vực rất cao",
|
||
"opt_whisper": "thì thầm",
|
||
"style_placeholder": "ví dụ: thì thầm",
|
||
"stop_playback": "Dừng phát",
|
||
"describe_label": "Mô tả giọng nói của bạn",
|
||
"describe_placeholder": "vd. a warm elderly British storyteller, slightly raspy",
|
||
"describe_hint": "Mô tả của bạn (bằng tiếng Anh) sẽ thiết lập các điều khiển bên dưới — bạn vẫn có thể tinh chỉnh sau.",
|
||
"describe_unmatched": "Không thể ánh xạ: {{items}}",
|
||
"describe_no_match": "Chưa nhận ra đặc điểm giọng nói nào — hãy thử các từ như deep, elderly hoặc British.",
|
||
"define_by_design": "Theo thiết kế",
|
||
"define_from_audio": "Từ âm thanh",
|
||
"define_voice": "Xác định giọng nói",
|
||
"save_design_as_profile": "Lưu thiết kế dưới dạng hồ sơ",
|
||
"generating_done_status": "Đã tạo xong",
|
||
"generating_status": "Đang tạo âm thanh…",
|
||
"identity": "Danh tính",
|
||
"identity_auto": "Tự động — mô hình tự quyết định",
|
||
"insert": "Chèn",
|
||
"insert_token": "Chèn token biểu cảm",
|
||
"script": "Kịch bản",
|
||
"starting_points": "Điểm khởi đầu",
|
||
"voice_kicker": "Giọng nói",
|
||
"seed_label": "Hạt giống",
|
||
"seed_placeholder": "ngẫu nhiên mỗi lần",
|
||
"seed_keep": "Giữ hạt giống này",
|
||
"seed_reroll": "Hạt giống mới",
|
||
"seed_reroll_hint": "Cuộn một hạt giống ngẫu nhiên mới và giữ nó"
|
||
},
|
||
"about": {
|
||
"app": "ứng dụng",
|
||
"version": "Phiên bản",
|
||
"tauri_runtime": "thời gian chạy Tauri",
|
||
"platform": "Nền tảng",
|
||
"architecture": "Kiến trúc",
|
||
"python": "Python",
|
||
"compute_device": "Thiết bị tính toán",
|
||
"gpu_active": "GPU đang hoạt động",
|
||
"ram": "RAM",
|
||
"vram": "VRAM",
|
||
"backend": "Phần phụ trợ",
|
||
"active_model": "Mô hình hoạt động",
|
||
"asr_model": "mô hình ASR",
|
||
"translator": "Người phiên dịch",
|
||
"hf_token": "Bộ mã thông báo HF",
|
||
"data_dir": "Thư mục dữ liệu",
|
||
"outputs": "đầu ra",
|
||
"crash_log": "Nhật ký sự cố",
|
||
"update_endpoint": "Cập nhật điểm cuối",
|
||
"yes": "vâng",
|
||
"no": "không",
|
||
"web_preview": "xem trước trang web",
|
||
"downloading": "Đang tải xuống…",
|
||
"check_updates": "Kiểm tra các bản cập nhật",
|
||
"copy_diagnostics": "Sao chép chẩn đoán",
|
||
"github": "VoiceStudio trên GitHub",
|
||
"commercial_license": "Giấy phép thương mại",
|
||
"update_channel": "Kênh cập nhật",
|
||
"channel_stable": "Ổn định",
|
||
"channel_preview": "Xem trước",
|
||
"channel_set": "Đã đặt kênh cập nhật thành {{channel}}",
|
||
"channel_preview_hint": "Bản xem trước theo dõi bản dựng main mới nhất — tính năng mới hơn, ít được kiểm thử hơn. Quay lại bản ổn định nếu có bản phát hành ổn định mới hơn.",
|
||
"self_check": "Chạy tự kiểm tra",
|
||
"self_check_failed": "Tự kiểm tra thất bại: {{message}}",
|
||
"self_check_ok": "Ổn",
|
||
"self_check_warn": "Cảnh báo",
|
||
"self_check_fail": "Thất bại",
|
||
"self_check_healthy": "Tất cả kiểm tra đều đạt — bản cài đặt này có vẻ ổn.",
|
||
"self_check_attention": "{{count}} kiểm tra thất bại — xem gợi ý ở trên.",
|
||
"save_bundle": "Lưu gói chẩn đoán",
|
||
"bundle_saved": "Đã lưu gói chẩn đoán: {{filename}}",
|
||
"bundle_failed": "Không thể tạo gói chẩn đoán: {{message}}"
|
||
},
|
||
"privacy": {
|
||
"desc": "Mọi thứ đều chạy trên <1>máy này</1>. Âm thanh, video và bản ghi của bạn không bao giờ rời khỏi máy tính của bạn trừ khi bạn sử dụng một cách rõ ràng một trình dịch trực tuyến (Google, DeepL, v.v.) hoặc đẩy tới HuggingFace.",
|
||
"uploads_at": "Tải lên được lưu trữ tại",
|
||
"outputs_at": "Đầu ra được lưu trữ tại",
|
||
"gen_history": "Lịch sử thế hệ",
|
||
"network_calls": "Cuộc gọi mạng",
|
||
"model_telemetry": "mô hình đo từ xa",
|
||
"local_sqlite": "SQLite cục bộ",
|
||
"translator_online": "Người dịch đang trực tuyến: {{provider}}",
|
||
"translator_offline": "Trình dịch ngoại tuyến",
|
||
"no_tracking": "Không có - không theo dõi",
|
||
"watermark_title": "Hình mờ vô hình",
|
||
"watermark_subtitle": "Bật theo mặc định. Đánh dấu âm thanh được tạo là do AI tạo ra để có thể nhận biết về sau. Chỉ ảnh hưởng đến âm thanh được tạo từ giờ trở đi.",
|
||
"watermark_on_toast": "Đã bật hình mờ vô hình cho âm thanh mới.",
|
||
"watermark_off_toast": "Đã tắt hình mờ vô hình cho âm thanh mới.",
|
||
"watermark_failed": "Không thể thay đổi cài đặt hình mờ."
|
||
},
|
||
"consent": {
|
||
"title": "Giúp cải thiện VoiceStudio?",
|
||
"step_label": "Cải thiện VoiceStudio",
|
||
"body": "Thống kê sử dụng ẩn danh, không chứa nội dung: engine nào được dùng, thời gian tạo mất bao lâu và loại lỗi. Không bao giờ gửi văn bản, âm thanh, tệp của bạn hay bất cứ thứ gì nhận dạng bạn. Không có gì được gửi trừ khi bạn đồng ý, và bạn có thể đổi ý bất cứ lúc nào trong Cài đặt → Quyền riêng tư.",
|
||
"learn_more": "Chính xác thì những gì được gửi?",
|
||
"yes": "Có, chia sẻ thống kê ẩn danh",
|
||
"no": "Không, cảm ơn",
|
||
"dismiss": "Đóng (phân tích vẫn tắt)"
|
||
},
|
||
"langPrompt": {
|
||
"offer": "VoiceStudio đã mở bằng {{language}}. Bạn muốn dùng tiếng Anh?",
|
||
"switch": "Chuyển sang tiếng Anh",
|
||
"keep": "Giữ {{language}}"
|
||
},
|
||
"credentials": {
|
||
"title": "Thông tin xác thực",
|
||
"desc": "Khóa API và mã thông báo chỉ được đặt <1>cho phiên này</1>. Để duy trì sự kiên trì trong quá trình khởi động lại, hãy đặt chúng làm biến môi trường trong cấu hình shell của bạn.",
|
||
"hf_token": "Mã thông báo ôm mặt",
|
||
"hf_help": "Cần thiết để phân loại loa và tải xuống mô hình nhanh hơn. Nhận của bạn tại ôm mặt.co/settings/tokens.",
|
||
"translate_key": "Khóa API LLM",
|
||
"translate_help": "Tùy chọn — dành cho DeepL, OpenAI hoặc nhà cung cấp dịch thuật trả phí. Không cần thiết cho Google Dịch (cấp miễn phí).",
|
||
"save": "Lưu",
|
||
"saved": "✓ Đặt",
|
||
"not_set": "✗ Chưa đặt",
|
||
"get_token": "Nhận mã thông báo →",
|
||
"saved_session": "{{key}} đã lưu cho phiên này",
|
||
"save_failed": "Không lưu được",
|
||
"save_error": "Lưu không thành công: {{message}}",
|
||
"deepl_key": "Khóa API DeepL",
|
||
"deepl_help": "Đối với công cụ dịch DeepL. Nhận chìa khóa của bạn tại deepl.com/pro-api.",
|
||
"deepl_base_url": "URL cơ sở DeepL",
|
||
"deepl_base_url_help": "Điểm cuối API DeepL tùy chỉnh (mặc định: https://api.deepl.com/v2). Thay đổi cho proxy/tự lưu trữ.",
|
||
"microsoft_key": "Khóa dịch của Microsoft",
|
||
"microsoft_help": "Đối với công cụ Microsoft Translator. Nhận khóa của bạn từ Azure Portal.",
|
||
"microsoft_base_url": "URL cơ sở của Microsoft Translator",
|
||
"microsoft_base_url_help": "Điểm cuối Azure Translator tùy chỉnh (mặc định: https://api.cognitive.microsofttranslator.com).",
|
||
"llm_base_url": "URL cơ sở LLM",
|
||
"llm_base_url_help": "Đối với chất lượng điện ảnh hoặc công cụ LLM. Bất kỳ điểm cuối tương thích OpenAI nào (OpenAI, Ollama, LM Studio, v.v.).",
|
||
"llm_model": "Mô hình LLM",
|
||
"llm_model_help": "Tên mô hình để sử dụng với công cụ LLM (ví dụ: gpt-4o, deepseek-chat, qwen2.5).",
|
||
"group_huggingface": "ôm mặt",
|
||
"group_translate": "Dịch thuật (LLM / Điện ảnh)",
|
||
"group_deepl": "Điểm cuối tùy chỉnh DeepL",
|
||
"group_microsoft": "Điểm cuối tùy chỉnh của Microsoft Translator"
|
||
},
|
||
"engines": {
|
||
"banners_on": "Biểu ngữ sân khấu bật",
|
||
"banners_off": "Tắt biểu ngữ sân khấu",
|
||
"backend": "Phần phụ trợ",
|
||
"status": "Trạng thái",
|
||
"ready": "sẵn sàng",
|
||
"unavailable": "không có sẵn",
|
||
"use": "sử dụng",
|
||
"configureProviders": "Cấu hình nhà cung cấp",
|
||
"loading": "Đang tải động cơ…",
|
||
"refresh": "Làm mới",
|
||
"matrixTitle": "Ma trận tương thích động cơ",
|
||
"loadFailed": "Không tải được động cơ: {{message}}",
|
||
"couldNotLoad": "Không thể tải động cơ: {{message}}",
|
||
"retry": "Thử lại",
|
||
"activeEngine": "Đang hoạt động {{family}}: {{engine}}",
|
||
"engineCompatLabel": "{{family}} khả năng tương thích động cơ",
|
||
"active": "hoạt động",
|
||
"whyUnavailable": "Cần những gì",
|
||
"sectionReady": "Sẵn sàng sử dụng",
|
||
"sectionMore": "Thêm động cơ khác",
|
||
"lastError": "Lỗi cuối cùng: {{error}}",
|
||
"installedAndReady": "Đã cài đặt và sẵn sàng",
|
||
"notInstalled": "Chưa được cài đặt",
|
||
"available": "Có sẵn",
|
||
"subprocessTitle": "Chạy trong quy trình con + venv của chính nó",
|
||
"inProcessTitle": "Chạy trong quy trình VoiceStudio Python",
|
||
"testEngine": "Động cơ thử nghiệm",
|
||
"testing": "Đang thử nghiệm…",
|
||
"recheck": "Kiểm tra lại",
|
||
"rechecking": "Đang kiểm tra lại…",
|
||
"latencyMs": "{{ms}} mili giây",
|
||
"failed": "thất bại",
|
||
"acceptLicense": "Chấp nhận giấy phép",
|
||
"noBackends": "Không có phụ trợ được đăng ký.",
|
||
"switch_failed": "Không thể chuyển đổi động cơ",
|
||
"routingAccelerated": "GPU đang hoạt động",
|
||
"routingCpuFallback": "Dự phòng CPU",
|
||
"routingCpuOnly": "CPU",
|
||
"routingRemote": "Từ xa",
|
||
"routingUnknown": "Không xác định",
|
||
"routingEffectiveChip": "Chạy trên {{device}} trên máy này",
|
||
"routingCaveatTitle": "Đã chọn GPU nhưng: {{reason}}",
|
||
"selectCpuFallback": "{{engine}}: đang chạy trên CPU — {{reason}}",
|
||
"selectWithCaveat": "Đã chuyển sang {{engine}} — {{reason}}",
|
||
"generateCaveat": "{{engine}} có thể chạy chậm trên máy này — {{reason}}",
|
||
"cpuLongText": "{{engine}} chạy trên CPU ở đây và văn bản này dài — quá trình tạo có thể vượt quá giới hạn thời gian. Văn bản ngắn hơn hoặc một engine tối ưu cho CPU (OmniVoice GGUF, Supertonic-3) sẽ nhanh hơn nhiều.",
|
||
"cpuLongTextTuned": "{{engine}} chạy trên CPU ở đây và văn bản này dài — quá trình tạo có thể vượt quá giới hạn thời gian. Văn bản ngắn hơn, hoặc chia thành vài phần, sẽ nhanh hơn nhiều.",
|
||
"familyMatrixTitle": "Công cụ {{family}}",
|
||
"familyDesc_tts": "Chuyển kịch bản thành giọng nói. Studio, Lồng tiếng và Hàng loạt dùng công cụ đang hoạt động.",
|
||
"familyDesc_asr": "Chuyển âm thanh thành văn bản để phiên âm, lồng tiếng, tạo phụ đề và đọc chính tả.",
|
||
"familyDesc_llm": "Trợ lý văn bản tùy chọn cho dịch thuật và viết lại. “Tắt” sẽ bỏ qua các bước này."
|
||
},
|
||
"capture": {
|
||
"desc": "Phím nóng chung chỉ hoạt động trong ứng dụng máy tính để bàn. Giao diện người dùng web sử dụng phím tắt <1>Ctrl+Shift+Space</1> trong trang trong khi cửa sổ đang có tiêu điểm.",
|
||
"desc_detail": "Phím nóng hoạt động trên toàn hệ thống trong khi VoiceStudio đang chạy — nó tập trung vào cửa sổ và bắt đầu đọc chính tả. Tránh các tổ hợp đã được hệ điều hành xác nhận quyền sở hữu (trên macOS, <1>⌘+Space</1> là Spotlight và <2>⌘+⇧+Space</2> xoay vòng các nguồn đầu vào). Nếu đăng ký không thành công, hãy chọn một combo khác.",
|
||
"active_shortcut": "Phím tắt hoạt động",
|
||
"new_shortcut": "Phím tắt mới",
|
||
"press_key": "Nhấn tổ hợp phím…",
|
||
"listening": "⌨︎ nghe (Esc để hủy)",
|
||
"record_shortcut": "Ghi phím tắt",
|
||
"recording": "Đang ghi…",
|
||
"save": "Lưu",
|
||
"reset_default": "Đặt lại về mặc định",
|
||
"listening_label": "Đang nghe…",
|
||
"transcribing_label": "Phiên âm…",
|
||
"a11y_setup": "Cho phép Trợ năng để đọc chính tả có thể gõ thay bạn",
|
||
"pasted": "Đã dán",
|
||
"inserted": "Đã nhập",
|
||
"copied": "Đã sao chép vào bảng nhớ tạm",
|
||
"no_speech": "Không phát hiện thấy giọng nói nào",
|
||
"mic_denied": "Quyền truy cập micrô bị từ chối",
|
||
"mic_denied_toast": "Quyền truy cập micrô bị từ chối. {{hint}}",
|
||
"mic_hint_mac": "macOS: mở Cài đặt hệ thống → Quyền riêng tư & bảo mật → Micrô và bật VoiceStudio.",
|
||
"mic_hint_windows": "Windows: mở Cài đặt → Quyền riêng tư & bảo mật → Micrô, bật 'Quyền truy cập micrô' và 'Cho phép ứng dụng máy tính truy cập micrô của bạn', sau đó cho phép VoiceStudio.",
|
||
"mic_hint_linux": "Linux: kiểm tra xem người dùng của bạn có thuộc nhóm âm thanh hay không và WebView có quyền truy cập micrô.",
|
||
"transcription_failed": "Phiên âm không thành công: {{message}}",
|
||
"mic_not_found": "Không tìm thấy micrô. Hãy kết nối hoặc bật micrô rồi thử lại.",
|
||
"mic_in_use": "Micrô đang bận hoặc không khả dụng. Hãy đóng các ứng dụng khác có thể đang sử dụng micrô rồi thử lại.",
|
||
"mic_error_generic": "Không thể khởi động micrô: {{message}}"
|
||
},
|
||
"logs": {
|
||
"no_tauri_log": "Chưa có bản đăng nhập Tauri nào trên đĩa - khởi chạy thông qua bản dựng máy tính để bàn để tạo một bản ghi",
|
||
"empty_frontend": "Chưa có mục nhập bảng điều khiển giao diện người dùng nào được ghi lại. Tương tác với ứng dụng — mọi bảng điều khiển.* sẽ xuất hiện ở đây.",
|
||
"empty_tauri": "Không có nhật ký Tauri. Chỉ chạy trong vỏ máy tính để bàn.",
|
||
"empty_backend": "Nhật ký thời gian chạy trống. Hoạt động sẽ xuất hiện ở đây khi chương trình phụ trợ ghi lại hoạt động đó.",
|
||
"title": "Nhật ký",
|
||
"source_backend": "Phần phụ trợ",
|
||
"source_frontend": "Giao diện người dùng",
|
||
"source_tauri": "Tauri",
|
||
"expand": "Mở rộng nhật ký",
|
||
"collapse": "Thu gọn nhật ký",
|
||
"expand_aria": "Mở rộng bảng nhật ký",
|
||
"collapse_aria": "Thu gọn bảng nhật ký",
|
||
"drag_resize": "Kéo để thay đổi kích thước",
|
||
"refresh": "Làm mới",
|
||
"refresh_aria": "Làm mới nhật ký",
|
||
"copy_visible": "Sao chép nhật ký hiển thị",
|
||
"copy_visible_aria": "Sao chép nhật ký hiển thị",
|
||
"clear": "Xóa",
|
||
"clear_aria": "Xóa nhật ký",
|
||
"report_issue": "Báo cáo sự cố (chẩn đoán sao chép)",
|
||
"report_issue_aria": "Báo cáo vấn đề",
|
||
"close": "Đóng",
|
||
"close_aria": "Đóng bảng nhật ký",
|
||
"join_discord": "Tham gia Discord của chúng tôi",
|
||
"join_discord_aria": "Tham gia cộng đồng Discord của chúng tôi",
|
||
"support_project": "Hỗ trợ dự án này",
|
||
"support_project_aria": "Hỗ trợ dự án này",
|
||
"empty_frontend_short": "Chưa có đầu ra bảng điều khiển giao diện người dùng.",
|
||
"empty_lines": "Không có dòng.",
|
||
"all_clear": "✅ Tất cả đều ổn - không phát hiện vấn đề gì",
|
||
"log_cleared": "{{source}} đã xóa nhật ký",
|
||
"clear_failed": "Xóa không thành công: {{message}}",
|
||
"log_copied": "Đã sao chép nhật ký {{source}}",
|
||
"copy_failed": "Sao chép không thành công: {{message}}",
|
||
"report_copied": "Đã sao chép báo cáo chẩn đoán — dán báo cáo đó vào vấn đề GitHub.",
|
||
"report_failed": "Báo cáo không thành công: {{message}}",
|
||
"version_updates": "Kiểm tra các bản cập nhật",
|
||
"version_updates_aria": "Mở bản cập nhật — phiên bản ứng dụng {{v}}",
|
||
"update_available": "Đã có bản cập nhật ({{version}}) — nhấp để cập nhật",
|
||
"update_available_aria": "Đã có bản cập nhật ({{version}}) — mở bản cập nhật",
|
||
"contact": "Liên hệ",
|
||
"contact_aria": "Mở trang liên hệ"
|
||
},
|
||
"voice_profile": {
|
||
"test_text": "Xin chào - đây là bài kiểm tra giọng nói này.",
|
||
"not_found": "Không tìm thấy giọng nói.",
|
||
"needs_name": "Cấu hình giọng nói cần có tên.",
|
||
"saved": "Đã lưu",
|
||
"save_failed": "Lưu không thành công: {{message}}",
|
||
"delete_confirm": "Xóa \"{{name}}\" vĩnh viễn? Điều này cũng loại bỏ âm thanh tham chiếu trên đĩa.",
|
||
"deleted": "Đã xóa giọng nói",
|
||
"delete_failed": "Xóa không thành công: {{message}}",
|
||
"unlock_confirm": "Mở khóa giọng nói này? Các thế hệ tương lai sẽ không còn có thể tái tạo bit nữa.",
|
||
"unlocked": "Đã mở khóa bằng giọng nói",
|
||
"unlock_failed": "Mở khóa không thành công: {{message}}",
|
||
"gen_failed": "Thế hệ không thành công: {{message}}",
|
||
"designed": "Được thiết kế",
|
||
"cloned": "nhân bản",
|
||
"edit": "Chỉnh sửa",
|
||
"name_placeholder": "Tên giọng nói",
|
||
"locked": "Đã khóa",
|
||
"free": "miễn phí",
|
||
"locked_ref": "Tham chiếu bị khóa",
|
||
"ref_audio": "Âm thanh tham khảo",
|
||
"details": "Chi tiết",
|
||
"style_instruct": "hướng dẫn phong cách",
|
||
"style_placeholder": "ví dụ: thì thầm, phấn khích, nhẹ nhàng",
|
||
"language": "Ngôn ngữ",
|
||
"ref_transcript": "Bảng điểm tham khảo",
|
||
"ref_help": "Âm thanh tham chiếu nói gì Được sử dụng để cải thiện độ chính xác của bản sao.",
|
||
"locked_explain": "Giọng nói này có thể tái tạo được một chút. Mọi thế hệ đều sử dụng cùng một tài liệu tham khảo + hạt giống.",
|
||
"unlock": "Mở khóa",
|
||
"try_voice": "Hãy thử giọng nói này",
|
||
"test_phrase": "Cụm từ kiểm tra",
|
||
"test_help": "Nhập bất cứ thứ gì - chúng tôi sẽ tạo nó bằng cài đặt hiện tại của giọng nói này.",
|
||
"test_placeholder": "Nhập nội dung nào đó để nghe giọng nói này nói…",
|
||
"gen_preview": "Tạo bản xem trước",
|
||
"generating": "Đang tạo…",
|
||
"used_title": "Giọng nói này đã được sử dụng ở đâu",
|
||
"used_empty": "Giọng nói này vẫn chưa được sử dụng. Tạo bản xem trước ở trên hoặc chọn nó trong bản lồng tiếng.",
|
||
"synth_clips_one": "{{count}} clip tổng hợp",
|
||
"synth_clips_other": "{{count}} clip tổng hợp",
|
||
"projects_count_one": "dự án {{count}}",
|
||
"projects_count_other": "{{count}} dự án",
|
||
"dubbed_segments_one": "{{count}} phân đoạn được lồng tiếng",
|
||
"dubbed_segments_other": "{{count}} phân đoạn được lồng tiếng",
|
||
"verified": "Đã xác minh",
|
||
"persona_export": "Xuất khẩu nhân vật",
|
||
"persona_exporting": "Xây dựng nhân cách…",
|
||
"persona_exported": "Persona được xuất khẩu",
|
||
"persona_export_no_audio": "Giọng nói này không có âm thanh có thể đọc được để tạo bản xem trước.",
|
||
"persona_export_failed": "Xuất không thành công.",
|
||
"persona_include_ref": "Bao gồm clip thoại",
|
||
"persona_include_ref_hint": "Bao gồm clip tham khảo thô. Tắt = chỉ chia sẻ bản xem trước có hình mờ (được khuyến nghị).",
|
||
"consent_title": "Quyền sở hữu giọng nói",
|
||
"consent_explain": "Ghi lại chính mình đọc câu dưới đây để xác minh đây là giọng nói của chính bạn. Sẽ cần phải xác minh đối với các tính năng tác nhân và chia sẻ trong cộng đồng — không bao giờ đối với tổng hợp cục bộ.",
|
||
"consent_statement": "Tôi xác nhận rằng cấu hình giọng nói này là giọng nói của chính tôi và tôi đồng ý để VoiceStudio nhân danh nó thay mặt tôi.",
|
||
"consent_record": "Ghi lại tuyên bố đồng ý",
|
||
"consent_stop": "Dừng ghi",
|
||
"consent_saved": "Đã xác minh quyền sở hữu giọng nói",
|
||
"consent_failed": "Xác minh không thành công: {{message}}",
|
||
"consent_verified_explain": "Bạn đã ghi lại tuyên bố đồng ý vào {{date}}. Việc thu hồi sẽ xóa bản ghi và trạng thái đã xác minh.",
|
||
"consent_revoke": "Thu hồi",
|
||
"consent_revoke_confirm": "Thu hồi xác minh quyền sở hữu giọng nói? Bản ghi sự đồng ý sẽ bị xóa và các tính năng của nhân viên hỗ trợ sẽ không thể sử dụng giọng nói này nữa.",
|
||
"consent_revoked": "Đã thu hồi xác minh"
|
||
},
|
||
"dub": {
|
||
"install_engine_pkg": "Cài đặt {{pkg}}",
|
||
"needs_install_short": "Cần cài đặt",
|
||
"install_popover_title": "Cài đặt công cụ này",
|
||
"install_popover_frozen_body": "Bản đóng gói này không thể cài công cụ — môi trường Python của nó chỉ đọc và đã ký. Hãy chạy lệnh bên dưới trong bản cài từ mã nguồn, hoặc chuyển sang công cụ Argos tích hợp sẵn.",
|
||
"switch_to_argos": "Chuyển sang Argos (tích hợp, ngoại tuyến)",
|
||
"copy_command": "Sao chép lệnh",
|
||
"install_cmd_copied": "Đã sao chép lệnh",
|
||
"dismiss_error": "Bỏ qua",
|
||
"transcribe": "Phiên âm",
|
||
"translate": "Dịch",
|
||
"generate": "Tạo",
|
||
"export": "Xuất khẩu",
|
||
"no_video": "Không có video nào được tải",
|
||
"segments": "phân đoạn",
|
||
"speakers": "loa",
|
||
"video_dubbing_studio": "Studio lồng tiếng video",
|
||
"drop_here": "Thả video hoặc âm thanh vào đây",
|
||
"paste_url": "…hoặc dán URL YouTube/video",
|
||
"ingest": "Nhập",
|
||
"pull_captions": "Kéo phụ đề YouTube + bản dịch tự động",
|
||
"youtube_auth": "Đăng nhập YouTube (tùy chọn)",
|
||
"youtube_cookie_file": "Chọn bản xuất cookies.txt",
|
||
"remove_cookie_file": "Xóa tệp cookie",
|
||
"cookie_transport_error": "Tệp cookie xuất yêu cầu HTTPS hoặc ứng dụng máy tính cục bộ.",
|
||
"cookie_size_error": "Tệp cookie xuất phải có dung lượng không quá 1 MB.",
|
||
"save": "Lưu",
|
||
"reset": "Đặt lại",
|
||
"save_project": "Lưu dự án",
|
||
"change_file": "Thay đổi tập tin",
|
||
"import_srt": "Nhập .srt",
|
||
"import_srt_alt": "Thay vào đó hãy nhập .srt",
|
||
"cast": "ĐÚNG",
|
||
"speaker": "Diễn giả {{n}}:",
|
||
"default": "Mặc định",
|
||
"language": "Ngôn ngữ",
|
||
"auto": "Tự động",
|
||
"iso_code": "Mã ISO",
|
||
"style": "phong cách",
|
||
"style_placeholder": "ví dụ: nữ",
|
||
"optional": "tùy chọn",
|
||
"translate_all": "Dịch tất cả",
|
||
"translating": "Đang dịch…",
|
||
"retranslate": "Dịch lại",
|
||
"transcript": "bảng điểm",
|
||
"generate_dub": "Tạo lồng tiếng",
|
||
"export_mp4": "MP4",
|
||
"export_wav": "WAV",
|
||
"export_srt": "SRT",
|
||
"upload_transcribe": "Tải lên và chép lời",
|
||
"multi_lang": "Đa ngôn ngữ",
|
||
"prep_download": "Đang tải xuống video…",
|
||
"prep_extract": "Đang trích xuất âm thanh…",
|
||
"prep_demucs": "Tách biệt vocal/nhạc (Demucs)…",
|
||
"prep_scene": "Đang phát hiện các đoạn cắt cảnh…",
|
||
"prep_cached": "Sử dụng kết quả được lưu trong bộ nhớ đệm…",
|
||
"prep_preparing": "Đang chuẩn bị…",
|
||
"prep_chip_download": "tải về",
|
||
"prep_chip_extract": "chiết xuất",
|
||
"prep_chip_demucs": "dân chủ",
|
||
"prep_chip_scene": "bối cảnh",
|
||
"prep_chip_cached": "được lưu vào bộ nhớ đệm",
|
||
"prep_demucs_note": "Demucs có thể mất vài phút trên các video dài. Âm thanh dài = chờ đợi lâu hơn.",
|
||
"transcribing": "Đang phiên âm…",
|
||
"elapsed": "trôi qua",
|
||
"remaining": "còn lại",
|
||
"sidebar_toggle": "Chuyển đổi thanh bên",
|
||
"retry_transcription": "Thử chép lại",
|
||
"supported_formats": "MP4 · MOV · MKV · WEBM · MP3 · WAV · FLAC · M4A",
|
||
"pull_captions_title": "Khi URL là máy chủ chứa phụ đề (YouTube, Vimeo, TED…), hãy lấy cả phụ đề gốc và mọi bản dịch tự động của YouTube. Tạo trình soạn thảo mà không cần chạy Whisper; bỏ qua Dịch tất cả đối với các ngôn ngữ mà YouTube đã hỗ trợ.",
|
||
"time_col": "thời gian",
|
||
"spkr_col": "Spkr",
|
||
"text_col": "văn bản",
|
||
"voice_col": "Giọng nói",
|
||
"segs": "phân đoạn",
|
||
"preview": "Xem trước",
|
||
"original_audio": "Bản gốc",
|
||
"dubbed_audio": "Được mệnh danh là ({{code}})",
|
||
"first_play_hint": "lần chơi đầu tiên có thể mất một chút thời gian để chuyển đổi",
|
||
"cast_title": "Gán giọng nói cho mỗi người nói được phát hiện. Bản sao đa ngôn ngữ giữ nguyên danh tính người nói trong một ngôn ngữ mới.",
|
||
"from_video": "🎤 Từ video · {{duration}}s",
|
||
"clone_profiles": "Hồ sơ nhân bản",
|
||
"design_presets": "Cài đặt trước thiết kế",
|
||
"edit_settings": "Chỉnh sửa cài đặt dịch",
|
||
"style_label_prefix": "phong cách:",
|
||
"collapse_settings": "Thu gọn cài đặt dịch",
|
||
"quality_label": "chất lượng",
|
||
"quality_title": "Điện ảnh = sàng lọc LLM 3 bước (dịch → phản ánh → điều chỉnh). Cần cấu hình LLM.",
|
||
"fast_quality": "Nhanh",
|
||
"cinematic_quality": "Điện ảnh",
|
||
"auto_glossary_label": "Bảng thuật ngữ tự động",
|
||
"auto_glossary_title": "Một lượt LLM bổ sung đọc toàn bộ bản chép lời và trích xuất chủ đề video cùng các thuật ngữ chính, giúp tên riêng và thuật ngữ nhất quán giữa các phân đoạn. Mục thuật ngữ bạn nhập thủ công luôn được ưu tiên.",
|
||
"reflect_label": "Lượt tinh chỉnh",
|
||
"reflect_title": "Sau bản dịch trực tiếp của mỗi phân đoạn, LLM sẽ nhận xét rồi viết lại thành lời thoại tự nhiên. Dùng 3 lần gọi LLM mỗi phân đoạn thay vì 1; nếu tinh chỉnh thất bại, bản dịch trực tiếp được giữ nguyên.",
|
||
"restore": "↺ Khôi phục",
|
||
"restore_title": "Khôi phục tất cả các phân đoạn về văn bản được phiên âm gốc",
|
||
"clean_up": "Dọn dẹp",
|
||
"clean_up_title": "Hợp nhất các đoạn nhỏ và các đoạn ngắn liền kề",
|
||
"popular": "phổ biến",
|
||
"all_languages": "Tất cả ngôn ngữ",
|
||
"engine_label": "Động cơ",
|
||
"install_engine": "Cài đặt công cụ này",
|
||
"installing_engine": "…cài đặt",
|
||
"needs_dev_install": "cần cài đặt dev",
|
||
"install_disabled_title": "Cài đặt bị vô hiệu hóa trong các bản dựng đóng gói",
|
||
"needs_install_suffix": "- cần cài đặt",
|
||
"glossary_title": "Ghim bản dịch cho các thuật ngữ định kỳ (tên, từ thương hiệu, biệt ngữ)",
|
||
"glossary_btn": "+ Bảng thuật ngữ ({{count}})",
|
||
"selected_count": "{{count}} đã chọn",
|
||
"set_voice": "Đặt giọng nói…",
|
||
"clear_voice": "⊘ Mặc định",
|
||
"set_lang": "Đặt ngôn ngữ…",
|
||
"default_lang": "(Mặc định)",
|
||
"delete_selected": "Xóa",
|
||
"clear_selection": "Xóa",
|
||
"tracks_done": "Xong! Bài hát: {{tracks}}",
|
||
"segments_changed": "{{count}} phân đoạn đã thay đổi kể từ lần tạo cuối cùng",
|
||
"all_up_to_date": "tất cả các phân đoạn {{count}} được cập nhật",
|
||
"output_options": "Tùy chọn đầu ra:",
|
||
"mix_bg_audio": "Trộn âm thanh BG",
|
||
"dual_subs": "Phụ đề kép",
|
||
"dual_subs_title": "Xuất phụ đề với văn bản dịch ở trên và bản gốc in nghiêng bên dưới.",
|
||
"burn_subs": "Ghi phụ đề",
|
||
"burn_subs_title": "Hiển thị phụ đề trực tiếp vào luồng video MP4 (hardsub). Sử dụng định dạng phụ đề kép khi phụ đề kép được bật.",
|
||
"timing_smart_fit": "Khớp thông minh",
|
||
"timing_smart_fit_title": "Chia đôi gánh nặng: tăng nhẹ tốc độ âm thanh (giữ cao độ, tối đa 1,5×) và làm chậm nhẹ đoạn video đó (tối đa 2×) để lời thoại ở nhịp tự nhiên vừa khít. Phần vượt giới hạn sẽ bị cắt và được đánh dấu. Xuất sẽ mã hóa lại video.",
|
||
"voice_match": "Khớp giọng:",
|
||
"voice_match_title": "Khớp giọng — mỗi câu lồng tiếng được nhân bản từ đoạn nguồn của chính nó, hay mọi câu của một người nói dùng chung một tham chiếu.",
|
||
"voice_match_per_line": "Theo câu",
|
||
"voice_match_per_line_title": "Mỗi câu được nhân bản từ đoạn âm thanh nguồn của chính nó. Ngữ điệu khớp nhất theo từng câu, nhưng bản sắc giọng có thể trôi giữa các câu.",
|
||
"voice_match_consistent": "Nhất quán",
|
||
"voice_match_consistent_title": "Mọi câu của một người nói được nhân bản từ một tham chiếu chung (bản sao giọng người nói, hoặc đoạn đơn tốt nhất nếu không có). Bản sắc giọng ổn định hơn trong toàn bộ bản lồng tiếng.",
|
||
"timing_lip_sync": "Đồng bộ môi",
|
||
"default_track": "Bản nhạc mặc định:",
|
||
"original_track": "Bản gốc",
|
||
"selected_dub": "{{code}} (Lồng tiếng được chọn)",
|
||
"dub_track": "{{code}} (Dub)",
|
||
"export_tracks": "Xuất bản nhạc:",
|
||
"stopping": "Đang dừng…",
|
||
"stop_progress": "Dừng lại ({{current}}/{{total}})",
|
||
"regen_changed": "Regen {{count}} đã thay đổi",
|
||
"export_btn": "Xuất khẩu…",
|
||
"prep_stop": "Dừng lại",
|
||
"install_progress": "Đang cài đặt {{engine}}…",
|
||
"install_restart": "{{engine}} đã được cài đặt. Khởi động lại phần phụ trợ để tải nó.",
|
||
"install_already": "{{engine}} đã được cài đặt",
|
||
"install_ok": "{{engine}} đã cài đặt",
|
||
"install_failed": "Cài đặt không thành công: {{message}}",
|
||
"prep_elapsed": "{{time}} đã trôi qua",
|
||
"add_language": "Thêm ngôn ngữ",
|
||
"search_languages": "Tìm kiếm ngôn ngữ…",
|
||
"languages_selected_one": "{{count}} ngôn ngữ đã chọn",
|
||
"languages_selected_other": "{{count}} ngôn ngữ đã chọn",
|
||
"more_to_narrow": "+{{count}} thêm — gõ để thu hẹp",
|
||
"no_matches": "Không có kết quả phù hợp",
|
||
"diagnostic_copied": "Đã sao chép chẩn đoán",
|
||
"copy_failed": "Sao chép không thành công",
|
||
"open_docs": "Mở tài liệu",
|
||
"copy_diagnostic": "Sao chép chẩn đoán",
|
||
"dialect_label": "Phương ngữ",
|
||
"dialect_default": "Mặc định",
|
||
"dialect_title": "Phương ngữ và từ vựng vùng miền cho bản dịch (vd. Argentina → “vos sos” thay vì “tú eres”). Áp dụng bởi các engine LLM (OpenAI/Ollama) và chất lượng Cinematic.",
|
||
"num_speakers_label": "Người nói",
|
||
"num_speakers_auto": "Tự động",
|
||
"num_speakers_help": "Video này có bao nhiêu người nói? Để trống để tự động phát hiện. Đặt một con số nếu tính năng tự động gộp nhiều người nói thành một.",
|
||
"advanced": "Nâng cao",
|
||
"cinematic_needs_llm_hint": "Điện ảnh cần có LLM. Cấu hình trong Cài đặt → Xác thực → Điểm cuối LLM (Ollama chạy cục bộ, không cần khóa).",
|
||
"generate_dub_multi": "Tạo {{count}} bản lồng tiếng",
|
||
"pipeline": "Quy trình lồng tiếng",
|
||
"preview_language": "Ngôn ngữ xem trước",
|
||
"target_language": "Lồng tiếng sang",
|
||
"transcript_after_extract": "Bản chép lời sẽ xuất hiện sau khi trích xuất.",
|
||
"qc_btn": "Xác minh thời gian lồng tiếng (kiểm tra lần thứ hai)",
|
||
"verify": "Xác minh",
|
||
"qc_running": "Đang kiểm tra thời gian lồng tiếng…",
|
||
"qc_result": "{{flagged}} trong số {{total}} dòng có thể cần nghe lại",
|
||
"qc_clean": "Tất cả các dòng {{total}} đều khớp với tập lệnh",
|
||
"qc_failed": "Kiểm tra thời gian không thành công: {{message}}",
|
||
"paste_translation_btn": "Dán bản dịch",
|
||
"paste_translation_title": "Dán một bản dịch",
|
||
"paste_translation_desc": "Dán bản dịch bạn đã làm ở nơi khác (ChatGPT, DeepL, người dịch). Nó sẽ được ánh xạ vào các phân đoạn sẵn có — thời điểm và bản ghi gốc giữ nguyên.",
|
||
"paste_translation_placeholder": "Dán phụ đề (SRT/VTT), các dòng đánh số (1. …), hoặc mỗi phân đoạn một dòng đã dịch — hoặc thả tệp .srt/.vtt vào đây.",
|
||
"paste_translation_load_file": "Tải tệp .srt / .vtt",
|
||
"paste_translation_mode_timestamped": "Có dấu thời gian (SRT/VTT)",
|
||
"paste_translation_mode_numbered": "Dòng đánh số",
|
||
"paste_translation_mode_plain": "Dòng thuần",
|
||
"paste_translation_counts": "{{segments}} phân đoạn · {{lines}} dòng · {{unmatched}} không khớp",
|
||
"paste_translation_unused": "{{count}} dòng đã dán không được dùng",
|
||
"paste_translation_none_matched": "Không có gì khớp. Hãy kiểm tra xem văn bản đã dán có tương ứng với các phân đoạn bên dưới không.",
|
||
"paste_translation_row_unmatched": "không khớp — giữ nguyên",
|
||
"paste_translation_apply": "Áp dụng cho {{count}} phân đoạn",
|
||
"paste_translation_cancel": "Hủy",
|
||
"paste_translation_more_rows": "+ {{count}} dòng nữa",
|
||
"languages_selected": "Đã chọn {{count}} ngôn ngữ",
|
||
"multi_translating": "Đang dịch → {{lang}} ({{current}}/{{total}})…",
|
||
"multi_lang_skipped": "Không thể dịch {{langs}}; các bản lồng tiếng đó đã được bỏ qua để tránh tạo bản nhạc sai ngôn ngữ.",
|
||
"manage_languages": "Quản lý ngôn ngữ",
|
||
"languages_done": "Hoàn tất",
|
||
"languages_pending": "Đang chờ"
|
||
},
|
||
"glossary": {
|
||
"title": "Thuật ngữ",
|
||
"load_error": "Không tải được bảng thuật ngữ: {{message}}",
|
||
"needs_project": "Bảng thuật ngữ cần một dự án được tải.",
|
||
"add_error": "Thêm không thành công: {{message}}",
|
||
"update_error": "Cập nhật không thành công: {{message}}",
|
||
"delete_error": "Xóa không thành công: {{message}}",
|
||
"clear_auto_confirm": "Xóa tất cả các thuật ngữ được trích xuất tự động? Các mục nhập thủ công được lưu giữ.",
|
||
"clear_error": "Xóa không thành công: {{message}}",
|
||
"pick_target": "Chọn một ngôn ngữ mục tiêu đầu tiên.",
|
||
"no_segments": "Không có phân đoạn nào để quét.",
|
||
"auto_empty": "Tự động trích xuất không tìm thấy thuật ngữ mới.",
|
||
"auto_added_one": "Đã thêm {{count}} thuật ngữ tự động. Xem lại và chỉnh sửa trước khi dịch.",
|
||
"auto_added_other": "Đã thêm {{count}} điều khoản tự động. Xem lại và chỉnh sửa trước khi dịch.",
|
||
"auto_error": "Tự động giải nén không thành công: {{message}}",
|
||
"count": "{{count}} điều khoản",
|
||
"count_one": "{{count}} kỳ hạn",
|
||
"count_other": "{{count}} điều khoản",
|
||
"auto_count": "{{count}} tự động",
|
||
"auto_title": "Yêu cầu LLM quét các phân đoạn để tìm danh từ riêng + thuật ngữ định kỳ",
|
||
"auto_btn": "Tự động",
|
||
"clear_auto_title": "Xóa tất cả các thuật ngữ được trích xuất tự động, giữ lại các thuật ngữ thủ công",
|
||
"clear_auto_btn": "Xóa tự động",
|
||
"empty_save": "Lưu bản lồng tiếng dưới dạng dự án để bắt đầu bảng thuật ngữ.",
|
||
"source": "Nguồn",
|
||
"target": "Mục tiêu",
|
||
"note": "Lưu ý",
|
||
"no_terms": "Chưa có điều khoản nào. Thêm một mục bên dưới hoặc nhấp vào Tự động.",
|
||
"source_placeholder": "Nguồn ({{lang}})",
|
||
"target_placeholder": "Mục tiêu ({{lang}})",
|
||
"note_placeholder": "Lưu ý (tùy chọn)",
|
||
"add_term": "Thêm thuật ngữ",
|
||
"hint": "Bảng thuật ngữ được đưa vào mỗi lời nhắc dịch thuật điện ảnh. Các mục nhập thủ công được ưu tiên.",
|
||
"auto_badge": "tự động",
|
||
"manual_badge": "hướng dẫn sử dụng",
|
||
"close": "Thu gọn bảng thuật ngữ"
|
||
},
|
||
"segment": {
|
||
"time": "thời gian",
|
||
"spkr": "Spkr",
|
||
"text": "văn bản",
|
||
"lang": "Lang",
|
||
"voice": "Giọng nói",
|
||
"vol": "tập",
|
||
"vol_title": "Âm lượng (0–200%)",
|
||
"search_placeholder": "Tìm kiếm văn bản…",
|
||
"all_speakers": "Tất cả các loa",
|
||
"select_all_title": "Chọn tất cả đã lọc",
|
||
"sel_count": "{{count}} sel",
|
||
"select_title": "Chọn phân đoạn (shift+click cho phạm vi)",
|
||
"sync_title": "Âm thanh được tạo có thời lượng {{pct}}% của bản gốc",
|
||
"sync_label": "Đồng bộ hóa: {{pct}}%",
|
||
"rate_title": "Tốc độ nói phù hợp: {{ratio}}× so với vị trí{{error}}",
|
||
"speaker_id": "ID người nói",
|
||
"translate_error_title": "Lỗi dịch thuật: {{error}}",
|
||
"translate_degraded_title": "Đã dịch (thô) — bước trau chuốt bị bỏ qua: {{reason}}",
|
||
"budget_title": "Văn bản chiếm {{pct}}% so với bản gốc — hãy cân nhắc tốc độ cao hơn hoặc cụm từ ngắn hơn",
|
||
"text_title": "Ctrl+D để phân chia tại con trỏ · Ctrl+M để hợp nhất với phần tiếp theo",
|
||
"orig_label": "nguồn gốc",
|
||
"restore_title": "Khôi phục văn bản gốc",
|
||
"lang_default": "(Def)",
|
||
"voice_default": "Mặc định",
|
||
"from_video": "Từ Video",
|
||
"clone_profiles": "Hồ sơ nhân bản",
|
||
"design_presets": "Cài đặt trước thiết kế",
|
||
"preview_title": "Xem trước trực tiếp",
|
||
"set_direction": "Đặt hướng…",
|
||
"edit_direction": "Chỉnh sửa hướng…",
|
||
"split_label": "Tách ở con trỏ",
|
||
"merge_label": "Hợp nhất với tiếp theo",
|
||
"direction_title": "Phương hướng: {{dir}}",
|
||
"more_actions_title": "Thêm hành động",
|
||
"speaker_pick": "Chọn…",
|
||
"speaker_title_detected": "Loa - chọn từ được phát hiện hoặc nhập tên tùy chỉnh",
|
||
"speaker_title_custom": "Người nói - nhập tên (không phát hiện thấy bản sao nhật ký)",
|
||
"time_edit_title": "Bấm để chỉnh sửa thời gian bắt đầu (m:ss.s). Enter để cam kết, Esc để hủy.",
|
||
"fit_fits": "Phù hợp",
|
||
"fit_fits_title": "Âm thanh tốc độ tự nhiên vừa vặn bên trong khe cắm.",
|
||
"fit_overflows": "Tràn +{{seconds}}s",
|
||
"fit_overflows_title": "Văn bản được dịch dài hơn vị trí ban đầu {{seconds}}s. Âm thanh đã được cắt bớt cứng; rút ngắn văn bản hoặc chuyển Thời gian thành \"Căng video\".",
|
||
"fit_stretched": "Video {{ratio}}×",
|
||
"fit_stretched_title": "Chế độ Kéo dài video: video của phân đoạn này được giảm tốc độ xuống {{ratio}}× để phù hợp với âm thanh lồng tiếng tự nhiên.",
|
||
"fit_slowed": "làm chậm {{ratio}}×",
|
||
"fit_slowed_title": "Câu lồng tiếng ngắn hơn khung thời gian — làm chậm {{ratio}}× (giữ cao độ) để lời nói phủ hết thời gian thoại gốc thay vì để khoảng trống",
|
||
"fit_compressed_title": "Âm thanh TTS chiếm {{pct}}% dung lượng khe — bị nén rất nhiều.",
|
||
"fit_audio_title": "Âm thanh vừa vặn bên trong khe cắm.",
|
||
"fit_ratio_title": "Âm thanh TTS chiếm {{pct}}% dung lượng khe.",
|
||
"qc_verify": "Xác minh",
|
||
"qc_verify_title": "Đã nghe thấy ASR vượt qua lần thứ hai: \"{{heard}}\" — nghe lại hoặc lồng tiếng lại dòng này."
|
||
},
|
||
"timeline": {
|
||
"track_label": "Dòng thời gian phân đoạn",
|
||
"keyboard_hint": "Phím mũi tên chọn phân đoạn · Enter bật/tắt chế độ chỉnh sửa · Delete xóa · S hít vào điểm bắt đầu giọng nói gần nhất",
|
||
"segment_aria": "Phân đoạn {{index}}: {{start}} đến {{end}}",
|
||
"overlap_warning": "Chồng lấn phân đoạn liền kề — cả hai lời thoại sẽ phát cùng lúc",
|
||
"moved_announce": "Phân đoạn {{index}} đã chuyển đến {{start}}",
|
||
"resized_announce": "Phân đoạn {{index}}: {{start}} đến {{end}}",
|
||
"deleted_announce": "Đã xóa phân đoạn {{index}}",
|
||
"snapped_announce": "Cạnh đã hít vào điểm bắt đầu giọng nói tại {{time}}",
|
||
"edit_mode_on": "Chế độ chỉnh sửa: mũi tên dịch điểm đầu, Shift điểm cuối, Alt cả phân đoạn, Esc kết thúc",
|
||
"edit_mode_off": "Đã tắt chế độ chỉnh sửa",
|
||
"play_slot": "Phát đoạn này",
|
||
"preview_dub": "Nghe thử lồng tiếng tại đây"
|
||
},
|
||
"voice": {
|
||
"personality": "Tính cách",
|
||
"pick_personality": "Chọn cài đặt trước về tính cách…",
|
||
"instruct": "Hướng dẫn",
|
||
"reference_text": "Văn bản tham khảo",
|
||
"language": "Ngôn ngữ",
|
||
"generate": "Tạo",
|
||
"name": "Tên"
|
||
},
|
||
"tools": {
|
||
"title": "Công cụ",
|
||
"desc": "Xử lý âm thanh, chuyển đổi định dạng và tiện ích",
|
||
"directorial_ai": "AI đạo diễn",
|
||
"directorial_desc": "Nhập hướng ngôn ngữ tự nhiên - xem mã thông báo phân loại mà nó ánh xạ tới + hướng dẫn TTS + gợi ý dịch + xu hướng tốc độ giọng nói.",
|
||
"direction": "Hướng",
|
||
"parse": "Phân tích cú pháp",
|
||
"method": "phương pháp:",
|
||
"tts_instruct": "tts hướng dẫn:",
|
||
"translate_hint": "dịch gợi ý:",
|
||
"rate_bias": "thiên vị tỷ lệ:",
|
||
"tokens": "mã thông báo",
|
||
"taxonomy": "phân loại học",
|
||
"speech_rate_fit": "Phù hợp với tốc độ nói",
|
||
"speech_rate_desc": "Kiểm tra xem một dòng đã dịch so với khe thời gian của nó như thế nào.",
|
||
"translated_line": "Dòng dịch",
|
||
"slot_seconds": "Khe (giây)",
|
||
"target_language": "Ngôn ngữ mục tiêu",
|
||
"fit": "Phù hợp",
|
||
"ratio": "tỷ lệ:",
|
||
"attempts": "cố gắng:",
|
||
"result": "kết quả:",
|
||
"probe_file": "Tập tin thăm dò",
|
||
"probe_desc": "trình bao bọc ffprobe - kiểm tra codec, luồng, độ sâu bit, thời lượng.",
|
||
"absolute_path": "Đường dẫn tuyệt đối",
|
||
"probe": "thăm dò",
|
||
"probe_placeholder": "/Users/bạn/Phim/sample.mp4",
|
||
"probe_failed": "Thăm dò không thành công: {{message}}",
|
||
"parse_failed": "Phân tích cú pháp không thành công: {{message}}",
|
||
"fit_failed": "Lắp không thành công: {{message}}"
|
||
},
|
||
"projects": {
|
||
"title": "Dự án",
|
||
"empty": "Chưa có dự án nào",
|
||
"create": "Dự án mới",
|
||
"all": "Tất cả",
|
||
"dub_projects": "Dự án lồng tiếng",
|
||
"voice_profiles": "Hồ sơ giọng nói",
|
||
"transcripts": "bảng điểm",
|
||
"history": "Lịch sử",
|
||
"exports": "Xuất khẩu",
|
||
"search_placeholder": "Tìm kiếm bản lồng tiếng, bản sao, bản ghi, xuất khẩu…",
|
||
"card_grid": "Lưới thẻ",
|
||
"list": "Danh sách",
|
||
"no_matches": "Không có kết quả phù hợp cho \"{{query}}\"",
|
||
"empty_hint": "Chưa có gì ở đây. Bắt đầu lồng tiếng, thiết kế giọng nói hoặc tạo âm thanh để xem nó xuất hiện.",
|
||
"generated_audio": "Âm thanh được tạo",
|
||
"export": "Xuất khẩu",
|
||
"transcription": "Phiên âm",
|
||
"designed_voice": "Giọng nói được thiết kế",
|
||
"cloned_voice": "Giọng nói nhân bản",
|
||
"stories": "Truyện",
|
||
"untitled_story": "Truyện không tên",
|
||
"story_lines": "dòng {{count}}",
|
||
"story_lines_plural": "{{count}} dòng",
|
||
"story_voices": "{{count}} giọng nói",
|
||
"story_voices_plural": "{{count}} giọng nói",
|
||
"audiobooks": "Sách nói",
|
||
"audiobook": "Sách nói",
|
||
"story": "Câu chuyện"
|
||
},
|
||
"batch": {
|
||
"title": "Lồng tiếng hàng loạt",
|
||
"active": "Đang hoạt động",
|
||
"completed": "Đã hoàn thành",
|
||
"failed": "thất bại",
|
||
"back": "← Quay lại",
|
||
"refresh": "Làm mới",
|
||
"add_videos": "Thêm Video",
|
||
"file_input_label": "Chọn tệp video",
|
||
"cancel": "Hủy bỏ",
|
||
"delete": "Xóa",
|
||
"no_active": "Không có công việc đang hoạt động.",
|
||
"no_completed": "Gần đây chưa có gì được hoàn thành.",
|
||
"no_failed": "Không có công việc thất bại - hãy tận hưởng sự im lặng.",
|
||
"drop_hint": "Thả video ở trên để bắt đầu lồng tiếng hàng loạt.",
|
||
"enqueue_failed": "Không thể xếp hàng {{name}}: {{message}}",
|
||
"enqueued": "{{count}} video đã được thêm vào hàng đợi",
|
||
"job_cancelled": "Công việc đã bị hủy",
|
||
"cancel_failed": "Hủy không thành công: {{message}}",
|
||
"job_deleted": "Đã xóa công việc",
|
||
"delete_failed": "Xóa không thành công: {{message}}",
|
||
"completed_in": "Hoàn thành trong {{duration}}",
|
||
"seg": "phân đoạn {{current}}/{{total}}",
|
||
"stage_extract": "🎬 Trích xuất âm thanh…",
|
||
"stage_transcribe": "📝 Phiên âm…",
|
||
"stage_translate": "🌐 Dịch…",
|
||
"stage_generate": "🗣️ Tạo lời nói…",
|
||
"stage_mix": "🎛️ Trộn âm thanh…",
|
||
"stage_complete": "✅ Hoàn thiện",
|
||
"status_queued": "xếp hàng",
|
||
"status_running": "đang chạy",
|
||
"status_done": "xong",
|
||
"status_failed": "thất bại",
|
||
"status_cancelled": "đã hủy bỏ",
|
||
"add_to_queue_title": "Thêm video vào hàng đợi",
|
||
"drop_hint_text": "Thả tập tin video vào đây hoặc nhấp để duyệt",
|
||
"drop_formats": "MP4 · MOV · MKV · WEBM",
|
||
"files_kicker": "TẬP TIN ({{count}})",
|
||
"file_size_mb": "{{size}} MB",
|
||
"target_languages": "NGÔN NGỮ MỤC TIÊU",
|
||
"voice_kicker": "GIỌNG NÓI",
|
||
"default_option": "Mặc định",
|
||
"clone_profiles": "Hồ sơ nhân bản",
|
||
"presets": "cài đặt trước",
|
||
"preserve_bg": "Giữ nguyên âm thanh nền (âm nhạc/FX)",
|
||
"estimate": "{{videos}} video × {{langs}} lang = {{jobs}} công việc",
|
||
"select_files_langs": "Chọn tập tin và ngôn ngữ",
|
||
"add_to_queue": "Thêm vào hàng đợi"
|
||
},
|
||
"gallery": {
|
||
"title": "VoiceStudio Thư viện ảnh",
|
||
"search_placeholder": "Tìm kiếm YouTube…",
|
||
"all_voices": "Tất cả các giọng nói ({{count}})",
|
||
"no_voices": "Chưa có tiếng nói nào",
|
||
"download_hint": "Tìm kiếm ở trên để tải clip",
|
||
"search_btn": "Tìm kiếm",
|
||
"download_btn": "Tải xuống",
|
||
"saving": "Đang lưu…",
|
||
"trim": "Cắt tỉa",
|
||
"delete_confirm": "Xóa đoạn thoại này?",
|
||
"view_mode_list": "Danh sách",
|
||
"view_mode_grid": "Lưới",
|
||
"youtube_results": "Kết quả YouTube ({{count}})",
|
||
"clone_profile": "Sao chép hồ sơ",
|
||
"crop_audio": "Cắt âm thanh",
|
||
"subtitle": "Hàng trăm giọng nói được thiết kế sẵn — hãy chọn một giọng nói và sử dụng.",
|
||
"zone_archetypes": "nguyên mẫu",
|
||
"zone_imports": "Nhập khẩu của tôi",
|
||
"all": "Tất cả",
|
||
"favorites": "Yêu thích",
|
||
"favorite": "yêu thích",
|
||
"reset": "Đặt lại",
|
||
"preview": "Xem trước",
|
||
"use_voice": "Sử dụng giọng nói",
|
||
"more_actions": "Thao tác khác",
|
||
"use_in_stories": "Dùng trong Kịch bản",
|
||
"set_audiobook_default": "Đặt làm giọng mặc định cho Sách nói",
|
||
"open_designer": "Mở trong Trình thiết kế",
|
||
"no_matches": "Không có giọng nói nào phù hợp với các bộ lọc này.",
|
||
"load_more": "Tải thêm",
|
||
"saved_as_profile": "Đã thêm \"{{name}}\" vào giọng nói của bạn.",
|
||
"use_failed": "Không thể tạo ra giọng nói đó: {{message}}",
|
||
"preview_failed": "Không có bản xem trước: {{message}}",
|
||
"import_explainer": "Dán URL mà bạn có quyền (hoặc tải tệp lên), cắt bớt phần bạn cần và lưu nó dưới dạng giọng nói. Bạn chịu trách nhiệm cấp phép cho bất cứ thứ gì bạn nhập khẩu.",
|
||
"import_placeholder": "Dán URL video/âm thanh hoặc nhập để tìm kiếm…",
|
||
"imported_clip": "Đoạn phim đã nhập",
|
||
"upload": "Tải tập tin lên",
|
||
"import": "Nhập khẩu",
|
||
"my_imports": "Nhập khẩu của tôi",
|
||
"no_imports": "Chưa có gì được nhập khẩu. Dán URL ở trên để bắt đầu.",
|
||
"search_results": "{{count}} kết quả",
|
||
"download_failed": "Tải xuống không thành công: {{msg}}",
|
||
"search_failed": "Tìm kiếm không thành công: {{message}}",
|
||
"upload_failed": "Tải lên không thành công: {{message}}",
|
||
"save_failed": "Không thể lưu hồ sơ: {{message}}",
|
||
"confirm_delete": "Xóa \"{{name}}\"?",
|
||
"trim_load_failed": "Không thể tải âm thanh để cắt: {{message}}",
|
||
"delete": "Xóa",
|
||
"community_empty": "Chưa tải được giọng nói cộng đồng nào — hãy kết nối internet rồi mở lại, hoặc trở thành người đầu tiên gửi một giọng nói.",
|
||
"community_explainer": "Các cài đặt trước được thiết kế và giọng nói ghi âm do cộng đồng chia sẻ, được tải từ omnivoice-gallery.",
|
||
"no_designer": "Giọng nói ghi âm — hãy dùng \"Sử dụng giọng nói\" thay thế.",
|
||
"no_preview": "Không có bản xem trước — thêm bằng \"Sử dụng giọng nói\" để nghe thử.",
|
||
"submit_failed": "Không thể mở biểu mẫu gửi.",
|
||
"submit_preset": "Gửi cài đặt trước",
|
||
"submit_voice": "Gửi giọng nói",
|
||
"zone_community": "Cộng đồng",
|
||
"import_persona": "Nhập gói cá nhân .ovsvoice",
|
||
"persona_imported": "Đã nhập \"{{name}}\"{{unverified}}.",
|
||
"persona_unverified_suffix": "(chưa được xác minh)",
|
||
"persona_too_large": "Gói đó quá lớn (tối đa 100 MB).",
|
||
"persona_import_failed": "Không thể nhập gói cá nhân đó.",
|
||
"filters": "Bộ lọc"
|
||
},
|
||
"transcriptions": {
|
||
"title": "Phiên âm",
|
||
"entries": "{{count}} mục",
|
||
"search_placeholder": "Tìm kiếm bản chép lời…",
|
||
"export": "Xuất khẩu",
|
||
"clear": "Xóa",
|
||
"export_title": "Xuất tất cả",
|
||
"clear_title": "Xóa tất cả",
|
||
"empty_title": "No transcriptions yet",
|
||
"empty_desc": "Chọn Bắt đầu đọc chính tả hoặc nhấn {{shortcut}} để ghi và chép lại âm thanh.",
|
||
"capture": "Bắt đầu đọc chính tả",
|
||
"capture_failed": "Không thể bắt đầu đọc chính tả. Hãy kiểm tra quyền truy cập micrô rồi thử lại.",
|
||
"empty_search_title": "Không có bản chép lời phù hợp",
|
||
"empty_search_desc": "Hãy thử một cụm từ tìm kiếm khác.",
|
||
"copy": "Sao chép",
|
||
"delete": "Xóa",
|
||
"segments_title": "Phân đoạn",
|
||
"copied": "Đã sao chép vào bảng nhớ tạm",
|
||
"copy_failed": "Sao chép không thành công",
|
||
"exported": "Bản chép lời đã xuất",
|
||
"just_now": "Vừa rồi",
|
||
"m_ago": "{{count}}phút trước",
|
||
"h_ago": "{{count}}giờ trước"
|
||
},
|
||
"setup": {
|
||
"welcome": "Chào mừng",
|
||
"system_check": "Kiểm tra hệ thống",
|
||
"install_models": "Cài đặt mô hình",
|
||
"pick_engines": "Chọn động cơ",
|
||
"system_check_desc": "Thăm dò RAM, đĩa, GPU, ffmpeg và mạng. Trình chặn được gắn cờ trước để bạn biết trước khi tải xuống.",
|
||
"install_models_desc": "Tải xuống ~2,4 GB trọng số — chỉ bắt buộc mô hình TTS. Thêm các mô hình phiên âm được chọn cho phần cứng của bạn ngay bây giờ hoặc sau này trong Cài đặt.",
|
||
"pick_engines_desc": "Chọn phụ trợ TTS / ASR / LLM. Các cài đặt mặc định hoạt động ngay lập tức — tùy chỉnh bất cứ lúc nào trong Cài đặt.",
|
||
"hero_desc": "Lồng tiếng, sao chép giọng nói và thiết kế giọng nói — tất cả đều chạy cục bộ trên máy của bạn.",
|
||
"first_run": "Lần chạy đầu tiên mất 5–10 phút để tải xuống. Sau đó, mọi lần khởi chạy đều diễn ra ngay lập tức và hoàn toàn ngoại tuyến.",
|
||
"get_started": "Bắt đầu",
|
||
"back": "Quay lại",
|
||
"continue_ok": "Tất cả đều tốt - tiếp tục",
|
||
"continue_warn": "Tiếp tục (có cảnh báo)",
|
||
"continue_blocked": "Giải quyết các trình chặn để tiếp tục",
|
||
"waiting_models": "Đang chờ các mẫu được yêu cầu…",
|
||
"models_ready": "Các mô hình bắt buộc đã sẵn sàng - tiếp tục",
|
||
"still_needed": "Vẫn cần thiết:",
|
||
"enter_studio": "Vào studio",
|
||
"probing": "Hệ thống thăm dò…",
|
||
"checking": "Đang kiểm tra thiết lập…",
|
||
"system_preflight": "Đèn chiếu trước hệ thống",
|
||
"recheck": "Kiểm tra lại",
|
||
"resolve_blockers": "Hãy giải quyết các bước kiểm tra không thành công ở trên để tiếp tục.",
|
||
"footer_downloads": "Tải xuống từ ômface.co",
|
||
"open_finder": "Mở trong Finder",
|
||
"open": "Mở",
|
||
"install_required_models": "Cài đặt các mô hình cần thiết ở trên để tiếp tục.",
|
||
"try_dictation": "Thử đọc chính tả",
|
||
"next_try_dictation": "Tiếp theo: Thử đọc chính tả",
|
||
"step_aria": "Bước {{num}}: {{label}}",
|
||
"step_completed": "đã hoàn thành",
|
||
"cache_label": "Bộ đệm mô hình"
|
||
},
|
||
"donate": {
|
||
"title": "Hỗ trợ",
|
||
"desc": "Nếu bạn thích dự án này, hãy cân nhắc quyên góp để hỗ trợ sự phát triển của chúng tôi.",
|
||
"hero_title": "Hỗ trợ VoiceStudio",
|
||
"hero_desc": "VoiceStudio miễn phí, mã nguồn mở và chạy hoàn toàn trên phần cứng của bạn. Nếu nó mang lại giá trị cho quy trình làm việc của bạn, hãy cân nhắc việc hỗ trợ nhóm nòng cốt.",
|
||
"github_desc": "Định kỳ hoặc một lần - trực tiếp thông qua GitHub.",
|
||
"coffee_desc": "Mua cho đội một ly cà phê. Không cần tài khoản.",
|
||
"paypal_desc": "Nhanh chóng một lần hoặc định kỳ qua PayPal.",
|
||
"platforms": "Nền tảng",
|
||
"footer": "Mọi đóng góp đều giúp mở rộng ranh giới của AI địa phương.",
|
||
"back": "Quay lại Studio",
|
||
"commercial": "Giấy phép thương mại",
|
||
"pill": "Hỗ trợ VoiceStudio",
|
||
"suggested_title": "Chọn một số tiền",
|
||
"most_common": "phổ biến nhất",
|
||
"custom": "tùy chỉnh",
|
||
"choose_method": "Chọn cách cho đi",
|
||
"choose_method_amount": "Tiếp tục với ${{amount}}",
|
||
"goal": {
|
||
"title": "Quỹ Claude Max",
|
||
"of": "của",
|
||
"per_month": "/ tháng",
|
||
"aria": "{{raised}} trong số {{goal}} mục tiêu hàng tháng",
|
||
"remaining": "{{amount}} đi",
|
||
"met": "🎉 Đã đạt mục tiêu — {{raised}} tăng lên. Cảm ơn!",
|
||
"social_proof": "Tham gia cùng những người ủng hộ {{count}} tài trợ cho AI địa phương"
|
||
},
|
||
"postcard": {
|
||
"title": "Quỹ Claude Max",
|
||
"lead_default": "Vui mừng vì nó đã hiệu quả! VoiceStudio là miễn phí và hoàn toàn cục bộ. Nếu việc này giúp bạn tiết kiệm thời gian, một khoản chip-in nhỏ hàng tháng sẽ tài trợ cho Claude Max đằng sau nó.",
|
||
"lead_first_clone": "Bản sao giọng nói đầu tiên của bạn đã hoàn tất - thật tuyệt! VoiceStudio chạy hoàn toàn trên máy của bạn và bộ phận hỗ trợ của bạn sẽ duy trì hoạt động đó.",
|
||
"lead_tenth_dub": "Mười bản lồng tiếng - rõ ràng bạn đang thực hiện nó. Một khoản chip-in nhỏ hàng tháng sẽ tài trợ cho Claude Max cung cấp các tính năng này.",
|
||
"lead_sustained": "Bạn đã sử dụng VoiceStudio được một tháng. Nếu nó giành được một vị trí trong quy trình làm việc của bạn, hãy cân nhắc việc hỗ trợ tài trợ cho những gì tiếp theo.",
|
||
"chip_in": "Chip vào",
|
||
"later": "Có lẽ sau này",
|
||
"star": "Sao trên GitHub",
|
||
"opt_out": "Đừng hỏi lại",
|
||
"dismiss_aria": "Loại bỏ"
|
||
}
|
||
},
|
||
"enterprise": {
|
||
"title": "Giấy phép thương mại",
|
||
"desc": "Cấp phép chuyên nghiệp và hỗ trợ kỹ thuật cho người dùng thương mại.",
|
||
"back": "Quay lại Studio",
|
||
"badge": "Giấy phép thương mại",
|
||
"hero_title": "Vận chuyển giọng nói AI trong quá trình sản xuất",
|
||
"hero_desc": "VoiceStudio là phần mềm tự do, mã nguồn mở theo giấy phép GNU Affero General Public License v3 (AGPL-3.0) — miễn phí sử dụng, bao gồm cả mục đích thương mại và sử dụng nội bộ doanh nghiệp. Bạn chỉ cần giấy phép thương mại nếu muốn nhúng VoiceStudio vào sản phẩm hoặc dịch vụ mã nguồn đóng hay độc quyền mà không chịu các nghĩa vụ copyleft của AGPL-3.0.",
|
||
"why_title": "Tại sao doanh nghiệp chọn VoiceStudio",
|
||
"pricing_title": "Định giá",
|
||
"faq_title": "Câu hỏi thường gặp",
|
||
"pricing_desc": "Các cấp độ và giá cả vẫn đang được hoàn thiện.",
|
||
"pricing_detail": "Cho đến khi chúng được công khai, mọi hoạt động triển khai thương mại đều được báo giá riêng lẻ để chúng tôi có thể điều chỉnh quy mô phù hợp với nhóm và khối lượng công việc của bạn.",
|
||
"request_quote": "Yêu cầu báo giá",
|
||
"footer_email": "Câu hỏi? Hãy liên hệ tại VoiceStudio@palash.dev",
|
||
"footer_discord": "Tham gia Discord của chúng tôi để được hỗ trợ cộng đồng.",
|
||
"benefit_ip": "Quyền sở hữu IP đầy đủ",
|
||
"benefit_ip_desc": "Bạn sở hữu mọi đầu ra, mọi mô hình, mọi công cụ phái sinh. Không có thuê chung, không có rò rỉ dữ liệu.",
|
||
"benefit_cost": "Không có chi phí mỗi phút",
|
||
"benefit_cost_desc": "Không có hóa đơn API, không có tình trạng dư thừa bất ngờ. Chạy trên phần cứng của riêng bạn ngay từ ngày đầu tiên.",
|
||
"benefit_team": "Quyền truy cập toàn nhóm",
|
||
"benefit_team_desc": "Một giấy phép bao gồm số lượng người dùng không giới hạn trong tổ chức của bạn.",
|
||
"benefit_support": "Hỗ trợ trực tiếp",
|
||
"benefit_support_desc": "Hỗ trợ qua email và cuộc gọi video ưu tiên từ nhóm kỹ thuật cốt lõi.",
|
||
"benefit_source": "Lõi có sẵn nguồn",
|
||
"benefit_source_desc": "Hiển thị đầy đủ vào ngăn xếp. Kiểm tra, phân nhánh và điều chỉnh theo các điều khoản cấp phép.",
|
||
"benefit_lang": "646 ngôn ngữ",
|
||
"benefit_lang_desc": "Phiên âm, dịch và lồng tiếng trên 646 ngôn ngữ với chất lượng ngang tầm con người.",
|
||
"hero_note": "Sử dụng, tự lưu trữ và dùng cho mục đích thương mại đều miễn phí theo AGPL-3.0 — kể cả ở quy mô lớn. AGPL là giấy phép copyleft qua mạng: nếu bạn chỉnh sửa VoiceStudio và cung cấp phiên bản chỉnh sửa đó cho người khác qua mạng, bạn phải chia sẻ mã nguồn đã chỉnh sửa theo cùng điều khoản. Giấy phép thương mại sẽ gỡ bỏ các nghĩa vụ copyleft này cho các triển khai độc quyền, mã nguồn đóng. Các gói giá sẽ sớm ra mắt — trong lúc đó hãy liên hệ với chúng tôi.",
|
||
"hero_simple": "VoiceStudio là nguồn mở và miễn phí theo AGPL-3.0 — bao gồm cả mục đích sử dụng cho mục đích thương mại và nội bộ doanh nghiệp. Bạn chỉ cần giấy phép thương mại để nhúng nó vào sản phẩm nguồn đóng mà không có nghĩa vụ về bản quyền của AGPL.",
|
||
"contact_lead": "Giá được báo cho mỗi lần triển khai để phù hợp với nhóm và khối lượng công việc của bạn. Hãy cho tôi biết trường hợp sử dụng của bạn và tôi sẽ nhận được báo giá cho bạn."
|
||
},
|
||
"exportModal": {
|
||
"export": "Xuất khẩu",
|
||
"export_options": "Tùy chọn xuất",
|
||
"close_drawer": "Đóng ngăn xuất khẩu",
|
||
"presets": "CÀI ĐẶT TRƯỚC",
|
||
"preset_title": "Chuyển tới tab {{tab}} với giá trị mặc định {{label}}",
|
||
"preset_youtube": "YouTube",
|
||
"preset_archive": "Lưu trữ",
|
||
"preset_web": "Web",
|
||
"preset_podcast": "Podcast",
|
||
"preset_studyset": "Bộ học tập",
|
||
"tracks": "BÀI HÁT",
|
||
"track_all": "Tất cả",
|
||
"track_none": "không có",
|
||
"track_dubs_only": "Chỉ bản lồng tiếng",
|
||
"primary": "chính",
|
||
"tab_video": "Video",
|
||
"tab_audio": "Âm thanh",
|
||
"tab_subs": "phụ đề",
|
||
"tab_pkg": "Gói",
|
||
"container": "thùng chứa",
|
||
"mp4_h264": "MP4 (H.264)",
|
||
"default_audio_track": "Bản âm thanh mặc định",
|
||
"default_audio_hint": "Luồng âm thanh nào phát theo mặc định khi người xem mở tệp",
|
||
"original": "Bản gốc",
|
||
"dub_suffix": "(Lồng tiếng)",
|
||
"bg_audio": "Âm thanh nền",
|
||
"mix_bg_video": "Trộn nhạc/FX dưới mỗi bản nhạc lồng tiếng",
|
||
"subs_in_video": "Phụ đề trong video",
|
||
"hardsub": "Ghi phụ đề thành hình ảnh (hardsub)",
|
||
"dual_subs_video": "Dual (dịch trên đầu bản gốc in nghiêng)",
|
||
"format": "định dạng",
|
||
"wav_lossless": "WAV (không mất dữ liệu)",
|
||
"mp3_compressed": "MP3 (đã nén)",
|
||
"bitrate": "Tốc độ bit",
|
||
"what_to_export": "Xuất khẩu cái gì",
|
||
"export_each_dub": "Mỗi bản lồng tiếng đã chọn (tệp riêng biệt)",
|
||
"export_single_lang": "Ngôn ngữ đơn",
|
||
"mix_bg_audio": "Mix nhạc/FX dưới giọng lồng tiếng",
|
||
"both": "Cả hai",
|
||
"layout": "Bố cục",
|
||
"single_line": "Dòng đơn",
|
||
"dual_subs": "Kép (bản dịch + bản gốc)",
|
||
"languages": "Ngôn ngữ",
|
||
"current_target": "Mục tiêu hiện tại ({{code}})",
|
||
"all_selected_dubs": "Tất cả các bản lồng tiếng đã chọn ({{count}})",
|
||
"subs_note": "Phụ đề được tạo từ văn bản phân đoạn nguyên trạng — hãy chỉnh sửa bảng phân đoạn trước khi xuất nếu bạn phát hiện lỗi chính tả.",
|
||
"retime_note": "Việc căn lại thời gian video theo từng phân đoạn sẽ mã hóa lại toàn bộ video khi xuất — dự kiến mất khoảng 0,5–2× thời lượng video trên CPU.",
|
||
"pkg_clips_title": "Clip theo từng đoạn (.zip)",
|
||
"pkg_clips_body": "Mỗi phân đoạn được tạo dưới dạng WAV được đánh số bên trong một tệp zip — phù hợp để đánh giá, đăng bài lồng tiếng hoặc xây dựng tập dữ liệu.",
|
||
"pkg_clips_cta": "Xuất clip zip",
|
||
"pkg_stems_title": "Thân cây (.zip)",
|
||
"pkg_stems_body": "Bản nhạc + nhạc nền riêng biệt (nhạc/FX) dưới dạng WAV riêng biệt. Hữu ích cho việc chỉnh sửa âm thanh xuôi dòng.",
|
||
"pkg_stems_cta": "Xuất khẩu thân zip",
|
||
"pkg_audio_title": "Bản âm thanh (tệp riêng lẻ)",
|
||
"pkg_audio_body_one": "Chuyển tới tab Âm thanh để xuất bản lồng tiếng theo từng ngôn ngữ ở dạng WAV hoặc MP3 (có sẵn bản lồng tiếng {{count}}).",
|
||
"pkg_audio_body_other": "Chuyển tới tab Âm thanh để xuất bản lồng tiếng theo từng ngôn ngữ ở định dạng WAV hoặc MP3 (có sẵn {{count}} bản lồng tiếng).",
|
||
"pkg_audio_cta": "Mở tab âm thanh",
|
||
"license_text": "Việc sử dụng thương mại đòi hỏi một",
|
||
"license_link": "giấy phép",
|
||
"output": "ĐẦU RA",
|
||
"nothing_selected": "Không có gì được chọn hoặc không có bản nhạc",
|
||
"export_mp4": "Xuất MP4",
|
||
"export_n_audio_one": "Xuất tệp âm thanh {{count}}",
|
||
"export_n_audio_other": "Xuất tệp âm thanh {{count}}",
|
||
"export_audio": "Xuất âm thanh",
|
||
"export_subtitles": "Xuất phụ đề"
|
||
},
|
||
"demo": {
|
||
"clone_coachmark": "Đây là bản demo có hướng dẫn — hãy thử lời nhắc gợi ý hoặc viết lời nhắc của riêng bạn.",
|
||
"hear_demo": "Nghe demo",
|
||
"stop_demo": "Dừng bản demo",
|
||
"prerendered_chip": "Mẫu được kết xuất trước - cài đặt công cụ TTS để tổng hợp văn bản mới.",
|
||
"preset_preview": "Xem trước",
|
||
"preset_stop": "Dừng lại",
|
||
"preset_use": "Sử dụng thiết kế này →",
|
||
"dictation_title": "Thử đọc chính tả",
|
||
"dictation_lede": "Đọc to một trong những nội dung này sau khi nhấn phím nóng hoặc nhấn Phát lại để gửi mẫu đi kèm qua trình chuyển mã để bạn có thể xem chính tả hoạt động từ đầu đến cuối mà không cần nói.",
|
||
"dictation_status_ok": "Đã xác minh - phím nóng hoạt động trên máy này",
|
||
"dictation_status_pending": "Nhấn phím tắt của bạn ở bất cứ đâu để kiểm tra",
|
||
"dictation_status_warn": "Không có phím nóng nào được đăng ký - đặt một phím nóng bên dưới",
|
||
"dictation_hear": "Nghe",
|
||
"dictation_stop": "Dừng lại",
|
||
"dictation_replay": "Phát lại",
|
||
"dictation_transcribing": "Phiên âm…",
|
||
"dubbing_title": "Xem lồng tiếng đang hoạt động",
|
||
"dubbing_sync": "Phát lại được đồng bộ hóa",
|
||
"dubbing_picker": "Hãy thử một ngôn ngữ khác:",
|
||
"dubbing_cta": "Chạy cái này trên video của riêng bạn →",
|
||
"dubbing_loading": "Đang tải bản demo lồng tiếng…",
|
||
"dubbing_dismiss": "Loại bỏ bản demo lồng tiếng",
|
||
"original_tag": "nguyên bản",
|
||
"dubbed_tag": "được mệnh danh là",
|
||
"script_conversational": "đàm thoại",
|
||
"script_technical": "Từ vựng kỹ thuật",
|
||
"script_french": "Không phải tiếng Anh (tiếng Pháp)",
|
||
"aria_pause": "Tạm dừng {{label}}",
|
||
"aria_hear": "Nghe {{label}}",
|
||
"aria_replay": "Phát lại {{label}} thông qua người ghi âm",
|
||
"dictation_lede_hotkey_only": "Giữ phím tắt ở trên tại bất kỳ đâu trên màn hình, nói rồi thả — văn bản sẽ vào ứng dụng đang được chọn. Nhấn ngay để kiểm tra."
|
||
},
|
||
"direction": {
|
||
"title": "Hướng cho đoạn #{{id}}",
|
||
"desc": "Cho đường dẫn biết đường này sẽ có cảm giác như thế nào. Tiếng Anh đơn giản hoạt động hiệu quả — hệ thống ánh xạ các từ của bạn vào một phân loại ổn định (năng lượng / cảm xúc / tốc độ / sự thân mật / hình thức), sau đó phân loại phân loại đó thông qua Bản dịch điện ảnh, TTS và phù hợp với vị trí.",
|
||
"label": "Hướng",
|
||
"lineHint": "Dòng: \"{{text}}\"",
|
||
"placeholder": "ví dụ: cấp bách và ngạc nhiên/ấm áp, hy vọng/thì thầm, thân mật",
|
||
"previewParse": "Xem trước phân tích cú pháp",
|
||
"previewFailed": "Xem trước không thành công: {{message}}",
|
||
"clear": "Xóa",
|
||
"cancel": "Hủy bỏ",
|
||
"saveDirection": "Lưu hướng",
|
||
"ttsInstruct": "TTS hướng dẫn:",
|
||
"nothingParsed": "- (không có gì được phân tích)",
|
||
"translateHint": "Dịch gợi ý:",
|
||
"rateBias": "Tỷ lệ thiên vị:",
|
||
"speedsUp": "tăng tốc",
|
||
"slowsDown": "chậm lại",
|
||
"taxonomyTokens": "mã thông báo phân loại"
|
||
},
|
||
"errors": {
|
||
"title": "Tab này gặp trở ngại.",
|
||
"desc": "Đừng lo lắng — phần còn lại của ứng dụng vẫn hoạt động. Bạn có thể chuyển đổi tab hoặc thử lại bên dưới.",
|
||
"tryAgain": "Thử lại",
|
||
"openDocs": "Mở tài liệu cho lỗi này",
|
||
"crash_port_in_use": "Không thể khởi động backend vì cổng 3900 đã được sử dụng — một bản VoiceStudio khác (hoặc ứng dụng đã chiếm cổng đó) đang giữ nó. Hãy thoát bản kia rồi khởi chạy lại; nếu không thấy gì đang chạy, một backend còn sót từ phiên trước vẫn đang giữ cổng.",
|
||
"crash_oom_kill": "Tiến trình bị buộc dừng (tín hiệu 9), thường có nghĩa là hệ điều hành đã hết bộ nhớ (RAM). Hãy đóng các ứng dụng ngốn bộ nhớ, chọn mô hình ASR nhỏ hơn trong Cài đặt → Mô hình, hoặc giải phóng mô hình TTS trước khi chuyển lời nói thành văn bản.",
|
||
"crash_native_fault": "Nó sập bên trong tầng tính toán chứ không phải do hết bộ nhớ — điều này cho thấy trình điều khiển GPU không khớp với CUDA runtime đi kèm, hoặc tệp mô hình tải xuống không trọn vẹn. Hãy cập nhật trình điều khiển GPU, rồi tải lại mô hình trong Cài đặt → Mô hình (nó sửa bản tải dở ngay tại chỗ). Nếu vẫn tiếp diễn, hãy chuyển sang engine cách ly sự cố trong Cài đặt → Engine — \"VoiceStudio (subprocess)\" cho tổng hợp giọng nói, \"Faster-Whisper (crash-isolated subprocess)\" cho chuyển lời nói thành văn bản. Chúng chạy mô hình trong tiến trình riêng, nên sự cố như thế chỉ hạ tiến trình đó thay vì toàn bộ backend.",
|
||
"report": "Báo cáo lỗi này",
|
||
"report_failed": "Không mở được báo cáo lỗi. Vui lòng thử lại, hoặc sao chép chi tiết ở trên vào một issue mới.",
|
||
"searchIssues": "Tìm các vấn đề tương tự",
|
||
"unexpected": "Lỗi không mong muốn: {{message}}",
|
||
"backend_shutting_down": "VoiceStudio đang tắt. Mở lại ứng dụng rồi thử lại.",
|
||
"crash_broken_env": "Nó dừng khi đang nạp các phụ thuộc Python của chính mình, nên đây không phải chuyện bộ nhớ hay GPU — môi trường bị thiếu hoặc cập nhật dở dang. Hãy dùng \"Dọn dẹp & Thử lại\" trong Cài đặt → Nhật ký → Backend: nó dựng lại từ đầu và sửa ngay tại chỗ, không đụng đến giọng nói hay dự án của bạn. Nếu vẫn lỗi, phần chi tiết sự cố sẽ nêu đúng gói không nạp được.",
|
||
"crash_vram_default": "Trên các GPU nhỏ hơn, nguyên nhân thường gặp là hết VRAM khi tải mô hình ASR chồng lên mô hình TTS: hãy giải phóng mô hình TTS trước, hoặc chọn mô hình ASR nhỏ hơn trong Danh mục mô hình → Mô hình.",
|
||
"stream_cut_backend_alive": "Luồng kết thúc sớm, nhưng backend vẫn đang chạy — nên nó không hề sập. Trong môi trường chạy qua server hoặc container, nguyên nhân thường là reverse proxy hoặc load balancer đang đệm hoặc ngắt kết nối do hết thời gian chờ: hãy tắt đệm phản hồi cho tuyến này (nginx: proxy_buffering off; X-Accel-Buffering: no) và tăng thời gian chờ đọc của nó. Chạy trực tiếp ứng dụng desktop, hoặc chạy trên localhost không qua proxy, sẽ xác nhận điều đó."
|
||
},
|
||
"keyboard": {
|
||
"title": "Phím tắt",
|
||
"footer": "Nhấn <1>?</1> bất kỳ lúc nào để mở mục này.",
|
||
"or": "hoặc",
|
||
"nav": "Điều hướng",
|
||
"nav_cheatsheet": "Hiển thị bảng cheat này",
|
||
"nav_enginePickerKey": "Cmd/Ctrl+E",
|
||
"nav_workspacesKey": "Cmd/Ctrl+1–9",
|
||
"nav_closeModal": "Đóng phương thức / hủy",
|
||
"nav_save": "Lưu dự án / cam kết cắt",
|
||
"segmentEditor": "Trình chỉnh sửa phân đoạn",
|
||
"seg_split": "Tách đoạn tại con trỏ",
|
||
"seg_merge": "Hợp nhất với phân đoạn tiếp theo",
|
||
"seg_undo": "Hoàn tác",
|
||
"seg_redo": "Làm lại",
|
||
"seg_click": "Hành động chính",
|
||
"seg_shiftClick": "Chọn phạm vi",
|
||
"trimmer": "Tông đơ âm thanh",
|
||
"trim_playPause": "Xem trước phát/tạm dừng",
|
||
"trim_nudgeStart": "Đẩy tay cầm khởi động",
|
||
"trim_nudgeEnd": "Đẩy tay cầm cuối",
|
||
"trim_fineNudge": "tốt nũng nịu",
|
||
"trim_coarseNudge": "Cú huých thô",
|
||
"trim_zoomIn": "Phóng to / thu nhỏ",
|
||
"trim_fitAll": "Phù hợp với tất cả / Lựa chọn phù hợp",
|
||
"trim_confirm": "Xác nhận cắt",
|
||
"dub": "lồng tiếng",
|
||
"dub_generate": "Tạo lồng tiếng",
|
||
"dub_sidebar": "Chuyển đổi thanh bên"
|
||
},
|
||
"network": {
|
||
"sharing_on_title": "Bật chia sẻ — nhấp để biết chi tiết",
|
||
"share_on_network": "Chia sẻ trên mạng của bạn",
|
||
"switching": "Đang chuyển đổi…",
|
||
"network": "Mạng",
|
||
"local": "Địa phương",
|
||
"share_confirm_title": "Chia sẻ trên mạng của bạn?",
|
||
"share_confirm_hint": "Các thiết bị khác trên Wi-Fi/Ethernet của bạn sẽ có thể truy cập VoiceStudio bằng mã PIN truy cập được hiển thị sau khi bật.",
|
||
"enabling": "Đang bật…",
|
||
"enable": "Kích hoạt",
|
||
"shared_title": "Được chia sẻ trên mạng của bạn",
|
||
"no_interface": "Không có giao diện mạng có thể truy cập - kết nối với Wi-Fi/Ethernet.",
|
||
"copy_link": "Sao chép liên kết",
|
||
"open_in_browser": "Mở trong trình duyệt",
|
||
"qr_alt": "QR cho {{ip}}",
|
||
"pin": "mã PIN:",
|
||
"stop_sharing": "Dừng chia sẻ",
|
||
"copied": "Đã sao chép",
|
||
"enable_error": "Không thể bật chia sẻ: {{message}}",
|
||
"disable_error": "Không thể tắt: {{message}}"
|
||
},
|
||
"readiness": {
|
||
"checking_system": "Hệ thống kiểm tra…",
|
||
"all_ready": "Tất cả các hệ thống đã sẵn sàng",
|
||
"system_readiness": "Sự sẵn sàng của hệ thống",
|
||
"asr_model": "Mô hình ASR",
|
||
"loaded_ready": "Đã tải và sẵn sàng",
|
||
"loading_first_run": "Đang tải… (việc này có thể mất 1-2 phút trong lần chạy đầu tiên)",
|
||
"failed_to_load": "Không tải được",
|
||
"not_loaded_yet": "Chưa được tải - sẽ tải vào lần phiên âm đầu tiên",
|
||
"error_check_logs": "Lỗi: {{error}}. Kiểm tra nhật ký và thử khởi động lại.",
|
||
"check_logs_restart": "Kiểm tra nhật ký để tìm lỗi tải mô hình. Hãy thử khởi động lại.",
|
||
"llm_cinematic": "LLM (Điện ảnh)",
|
||
"llm_configure": "Định cấu hình TRANSLATE_BASE_URL cho chất lượng bản dịch điện ảnh",
|
||
"llm_set_env": "Đặt các biến môi trường TRANSLATE_BASE_URL và TRANSLATE_API_KEY. Hoạt động với Ollama, OpenAI, LM Studio, v.v.",
|
||
"llm_optional": "Tùy chọn — đặt TRANSLATE_BASE_URL cho chất lượng Điện ảnh"
|
||
},
|
||
"license": {
|
||
"title": "Supertonic-3 — Chấp nhận giấy phép",
|
||
"intro": "Supertonic-3 được vận chuyển theo hai giấy phép riêng biệt. Vui lòng xem lại cả hai trước khi kích hoạt động cơ.",
|
||
"sdk_heading": "Mã SDK · MIT",
|
||
"sdk_desc": "SDK suy luận Python (supertonic) được MIT cấp phép. Cho phép sử dụng, bao gồm cả thương mại.",
|
||
"read_mit": "Đọc giấy phép MIT →",
|
||
"model_heading": "Trọng lượng mô hình · OpenRAIL-M",
|
||
"model_desc": "Quả tạ mẫu Supertonic-3 được phát hành theo giấy phép OpenRAIL-M. Giấy phép này hạn chế sử dụng cho các mục đích không độc hại — xem giấy phép được liên kết để biết toàn bộ các hạn chế dựa trên việc sử dụng.",
|
||
"read_openrail": "Đọc giấy phép OpenRAIL-M →",
|
||
"footer": "Nhấp vào Chấp nhận sẽ ghi lại sự chấp nhận của bạn trong cài đặt cục bộ của VoiceStudio và kích hoạt công cụ. Sự chấp nhận của bạn chỉ được lưu trữ trên máy này - không có gì được báo cáo cho Supertone Inc. hoặc bất kỳ bên thứ ba nào.",
|
||
"saving": "Đang lưu…",
|
||
"accept": "Chấp nhận",
|
||
"accepted_toast": "Giấy phép Supertonic-3 được chấp nhận.",
|
||
"accept_error": "Không ghi lại được việc chấp nhận giấy phép: {{message}}",
|
||
"pockettts_title": "Chấp nhận giấy phép PocketTTS",
|
||
"pockettts_intro": "PocketTTS của Kyutai được phát hành theo hai giấy phép và các trọng số cũng chịu điều kiện truy cập trên Hugging Face. Hãy xem lại tất cả trước khi bật bộ máy.",
|
||
"pockettts_sdk_desc": "Thư viện Python pocket-tts dùng giấy phép MIT rộng rãi, kể cả cho mục đích thương mại.",
|
||
"pockettts_model_heading": "Trọng số mô hình (CC-BY-4.0)",
|
||
"pockettts_model_desc": "Trọng số mô hình PocketTTS được phát hành theo CC-BY-4.0. Có thể sử dụng thương mại nếu ghi công.",
|
||
"read_cc_by": "Đọc giấy phép CC-BY-4.0",
|
||
"gate_heading": "Quyền truy cập hạn chế",
|
||
"gate_desc": "Trọng số bị hạn chế trên Hugging Face. Trước lần tải đầu tiên, bạn cần tài khoản miễn phí, phải chia sẻ thông tin liên hệ và chấp nhận điều kiện truy cập.",
|
||
"pockettts_conditions_desc": "Điều kiện cấm sử dụng giọng nói bất hợp pháp, gây hại, lừa dối, gian lận, trái phép hoặc không có sự đồng thuận. Hãy đọc đầy đủ điều kiện trước khi tiếp tục.",
|
||
"review_access_conditions": "Xem điều kiện truy cập",
|
||
"pockettts_footer": "Khi bấm Chấp nhận, xác nhận của bạn chỉ được lưu trong cài đặt cục bộ của VoiceStudio và bộ máy được bật. Việc truy cập và tải mô hình dùng Hugging Face, nơi nhận thông tin yêu cầu và tài khoản thông thường.",
|
||
"pockettts_accepted_toast": "Đã chấp nhận điều kiện PocketTTS."
|
||
},
|
||
"voicePreview": {
|
||
"title": "Xem trước bằng giọng nói",
|
||
"close": "Đóng bản xem trước",
|
||
"default_text": "Xin chào! Đây là bản xem trước về cách tôi phát âm bằng giọng nói này.",
|
||
"default_voice": "Giọng nói mặc định",
|
||
"clone_profiles": "Hồ sơ nhân bản",
|
||
"designed_voices": "Giọng nói được thiết kế",
|
||
"presets": "cài đặt trước",
|
||
"placeholder": "Nhập nội dung nào đó để nghe…",
|
||
"stop": "Dừng lại",
|
||
"regenerate": "tái sinh",
|
||
"preview": "Xem trước",
|
||
"hint": "8 bước · xem trước nhanh"
|
||
},
|
||
"header": {
|
||
"kicker_studio": "Studio",
|
||
"kicker_library": "Thư viện",
|
||
"kicker_preferences": "Tùy chọn",
|
||
"kicker_licensing": "Cấp phép",
|
||
"label_launchpad": "Bệ phóng",
|
||
"label_clone": "Bản sao giọng nói",
|
||
"label_design": "Thiết kế giọng nói",
|
||
"label_dub": "Lồng tiếng",
|
||
"label_projects": "OmniDrive",
|
||
"label_gallery": "Thư viện ảnh",
|
||
"label_transcriptions": "Phiên âm",
|
||
"label_settings": "Cài đặt",
|
||
"label_catalogue": "Danh mục mô hình",
|
||
"label_enterprise": "Giấy phép thương mại",
|
||
"status_ready": "Sẵn sàng",
|
||
"status_loading": "Đang tải…",
|
||
"status_idle": "Nhàn rỗi",
|
||
"memory_management": "Quản lý bộ nhớ",
|
||
"flush": "Xả",
|
||
"loaded_models": "Mô hình đã tải",
|
||
"no_models": "Không có mô hình nào được tải",
|
||
"unload": "Dỡ bỏ",
|
||
"flush_caches": "Xóa bộ nhớ đệm",
|
||
"unload_all_flush": "Dỡ bỏ tất cả + xả nước"
|
||
},
|
||
"sidebar": {
|
||
"tab_drive": "Lái xe",
|
||
"tab_history": "Lịch sử",
|
||
"tab_exports": "Xuất khẩu",
|
||
"save_project": "Lưu dự án lồng tiếng",
|
||
"save_new_project": "Lưu dưới dạng dự án lồng tiếng mới",
|
||
"dub_projects": "Dự án lồng tiếng",
|
||
"voice_clones": "Bản sao giọng nói",
|
||
"designed_voices": "Giọng nói được thiết kế",
|
||
"no_dub_projects": "Không có dự án lồng tiếng nào được lưu",
|
||
"no_dub_hint": "Tải video lên và nhấp vào Lưu để giữ tác phẩm của bạn.",
|
||
"no_clones": "Chưa có bản sao giọng nói",
|
||
"no_clones_hint": "Ghi hoặc tải âm thanh lên, sau đó nhấp vào Lưu dưới dạng Hồ sơ giọng nói.",
|
||
"no_designs": "Chưa có giọng nói được thiết kế nào",
|
||
"no_designs_hint": "Tạo giọng nói và lưu nó từ Lịch sử.",
|
||
"history_subtitle": "Lịch sử thế hệ · Được lưu trữ trong SQLite",
|
||
"no_history": "Không có lịch sử thế hệ",
|
||
"no_history_hint": "Tổng hợp âm thanh hoặc lồng tiếng video — kết quả sẽ xuất hiện ở đây.",
|
||
"clear_history": "Xóa lịch sử",
|
||
"clear_confirm": "Xóa tất cả {{count}} mục lịch sử? Điều này không thể hoàn tác được.",
|
||
"history_cleared": "Đã xóa lịch sử",
|
||
"recent_exports": "Xuất khẩu gần đây",
|
||
"no_exports": "Không có kết quả đầu ra được tải xuống",
|
||
"no_exports_hint": "Xuất tệp qua Tauri để xem nó được theo dõi tại đây.",
|
||
"show_in_folder": "Hiển thị trong thư mục",
|
||
"open": "Mở",
|
||
"select": "chọn",
|
||
"try_voice": "Hãy thử",
|
||
"consistent": "nhất quán",
|
||
"locked": "Đã khóa",
|
||
"clone_label": "bản sao",
|
||
"design_label": "Thiết kế",
|
||
"dub_label": "lồng tiếng",
|
||
"save_label": "Lưu",
|
||
"lock_identity": "Khóa nhận dạng giọng nói",
|
||
"in_folder": "trong {{folder}}",
|
||
"search": "Tìm kiếm…",
|
||
"rename": "Đổi tên",
|
||
"rename_save": "Lưu tên"
|
||
},
|
||
"trimmer": {
|
||
"title": "Cắt âm thanh tham chiếu",
|
||
"decoding": "Giải mã âm thanh…",
|
||
"meta_length": "Độ dài {{duration}} · {{sampleRate}} Hz",
|
||
"meta_rendering": "hiển thị dạng sóng {{percent}}%",
|
||
"keyboard_hint": "cuộn = thu phóng · shift+cuộn = xoay · alt+kéo = xoay · ⏐ ⟵ ⟶ ⏐ phím điều chỉnh tay cầm",
|
||
"zoom_in": "Phóng to (+)",
|
||
"zoom_out": "Thu nhỏ (-)",
|
||
"fit_all": "Phù hợp với tất cả (Nhà)",
|
||
"fit_selection": "Lựa chọn phù hợp (Kết thúc)",
|
||
"fit_sel_btn": "FIT SEL",
|
||
"view_range": "Xem {{start}} → {{end}} ({{duration}})",
|
||
"start_label": "Bắt đầu",
|
||
"end_label": "Kết thúc",
|
||
"length_label": "Chiều dài",
|
||
"too_long": ">{{max}}s",
|
||
"too_short": "quá ngắn",
|
||
"length_ok": "được",
|
||
"loop_preview": "Xem trước vòng lặp",
|
||
"pause": "Tạm dừng",
|
||
"preview_selection": "Lựa chọn xem trước",
|
||
"play_hint": "Không gian để chơi · Nhập để xác nhận · Esc để hủy",
|
||
"cancel": "Hủy bỏ",
|
||
"use_trimmed": "Sử dụng cắt tỉa",
|
||
"decode_failed": "Giải mã không thành công: {{message}}",
|
||
"playback_failed": "Phát lại không thành công: {{message}}",
|
||
"audio_load_failed": "Tải âm thanh không thành công",
|
||
"unit_seconds": "s"
|
||
},
|
||
"casting": {
|
||
"title": "Đúc loa",
|
||
"auto_assign_title": "Tự động gán giọng nói từ bản sao loa được trích xuất",
|
||
"auto_cast": "Tự động truyền",
|
||
"all_cast": "Tất cả diễn viên",
|
||
"segments_count": "{{count}} phân đoạn",
|
||
"assign_voice": "Chỉ định giọng nói…",
|
||
"from_video": "🎤 Từ video ({{name}})",
|
||
"no_profiles": "Chưa có cấu hình giọng nói nào được lưu.",
|
||
"preview_voice": "Xem trước giọng nói"
|
||
},
|
||
"checkpoint": {
|
||
"asr_title": "Bản ghi đã sẵn sàng",
|
||
"asr_cta": "Dịch",
|
||
"asr_hint": "Hãy khắc phục mọi lỗi ASR ngay bây giờ — chuyển hướng chặt chẽ sẽ giúp tiết kiệm các lần thử TTS sau này.",
|
||
"translate_title": "Bản dịch đã sẵn sàng",
|
||
"translate_cta": "Tạo lồng tiếng",
|
||
"translate_hint": "Đọc lướt văn bản mục tiêu. Các dòng quá dài được tăng tốc độ; bạn cũng có thể chỉnh sửa trực tiếp.",
|
||
"done_title": "Lồng tiếng hoàn tất",
|
||
"done_hint": "Xem lại tỷ lệ thời gian và đồng bộ hóa. Tinh chỉnh bất kỳ dòng nào và nhấn \"Regen đã thay đổi\" để làm lại một phần nhanh chóng.",
|
||
"segment_one": "Đoạn {{count}}",
|
||
"segment_other": "{{count}} phân đoạn",
|
||
"dismiss_title": "Loại bỏ - sẽ không xuất hiện lại ở giai đoạn này cho đến khi tải lại"
|
||
},
|
||
"compare": {
|
||
"title": "So sánh giọng nói A/B",
|
||
"close": "So sánh chặt chẽ",
|
||
"desc": "So sánh hai giọng nói cạnh nhau để đưa ra quyết định tuyển chọn. Ứng dụng vẫn tương tác phía sau.",
|
||
"test_phrase": "Cụm từ kiểm tra",
|
||
"voice_a": "Giọng nói A",
|
||
"voice_b": "Giọng nói B",
|
||
"select_voice": "— Chọn giọng nói —",
|
||
"preset_suffix": "(Đặt trước)",
|
||
"no_audio": "Chưa có âm thanh",
|
||
"close_btn": "Đóng",
|
||
"comparing": "So sánh…",
|
||
"compare_btn": "So sánh",
|
||
"preparing_voice": "Đang chuẩn bị giọng nói...",
|
||
"generating_voice_a": "Đang tạo giọng nói và...",
|
||
"generating_voice_b": "Đang tạo giọng nói B...",
|
||
"comparison_complete": "So sánh hoàn tất!",
|
||
"play_failed": "Chơi không thành công: {{message}}"
|
||
},
|
||
"models": {
|
||
"hf_token_set_toast": "Bộ mã thông báo HuggingFace - cho phép tải xuống nhanh hơn",
|
||
"hf_token_save_failed": "Không lưu được mã thông báo",
|
||
"install_started": "Đã bắt đầu cài đặt - tiến trình trong hàng",
|
||
"delete_confirm": "Xóa {{repoId}}? Bạn có thể cài đặt lại nó sau.",
|
||
"delete_confirm_title": "Xóa mô hình",
|
||
"deleted": "Đã xóa {{repoId}}",
|
||
"reinstall_confirm": "Cài đặt lại {{repoId}}? Thao tác này sẽ xóa bản sao hiện tại và tải xuống lại.",
|
||
"reinstall_confirm_title": "Cài đặt lại mô hình",
|
||
"reinstalling": "Đang cài đặt lại",
|
||
"recommended_installed": "Các mô hình được đề xuất đã được cài đặt.",
|
||
"started_downloading_one": "Đã bắt đầu tải xuống {{count}} mô hình",
|
||
"started_downloading_other": "Đã bắt đầu tải xuống {{count}} mô hình",
|
||
"install_failed": "Cài đặt không thành công: {{message}}",
|
||
"removing_cached": "Đang xóa các bản sửa đổi được lưu trong bộ nhớ đệm…",
|
||
"resolving_metadata": "Giải quyết siêu dữ liệu repo",
|
||
"retry_attempt": "Thử lại {{attempt}} — {{error}}",
|
||
"connecting_hf": "Đang kết nối với HuggingFace…",
|
||
"resolving_files_one": "Đang giải quyết {{count}} tệp…",
|
||
"resolving_files_other": "Đang giải quyết các tệp {{count}}…",
|
||
"resolving_files_active": "Đang giải quyết {{count}} tệp… · {{file}}",
|
||
"measuring": "đo…",
|
||
"files_progress": "Tệp {{done}}/{{total}}",
|
||
"install_error": "Cài đặt không thành công: {{error}}",
|
||
"view_on_hf": "Xem trên HuggingFace",
|
||
"install_btn": "cài đặt",
|
||
"section_tts": "TTS (tổng hợp giọng nói)",
|
||
"section_asr": "ASR (phiên âm ngoại tuyến)",
|
||
"section_dictation": "Chính tả (streaming)",
|
||
"section_diarisation": "Phân tách người nói",
|
||
"section_other": "Khác",
|
||
"show_incompatible": "Hiện các mô hình không tương thích ({{count}})",
|
||
"hide_incompatible": "Ẩn các mô hình không tương thích ({{count}})",
|
||
"incompatible_title": "Các mô hình không chạy được trên hệ thống này",
|
||
"recommended_title": "Được chọn cho máy này — tùy chọn",
|
||
"download_all_remaining_title": "Tải xuống tất cả mô hình đề xuất còn lại",
|
||
"reco_install_one": "Cài đặt {{label}}",
|
||
"reinstall_btn": "Cài đặt lại",
|
||
"downloading": "đang tải xuống",
|
||
"deleting": "xóa",
|
||
"working": "đang làm việc",
|
||
"installed": "đã cài đặt",
|
||
"not_installed": "chưa được cài đặt",
|
||
"required_tag": "bắt buộc",
|
||
"delete_btn": "Xóa",
|
||
"hf_token_btn": "Mã thông báo HF",
|
||
"hf_set_title": "Đặt mã thông báo HuggingFace để tải xuống nhanh hơn",
|
||
"get_token": "Nhận mã thông báo →",
|
||
"reco_installed_for": "Gói được đề xuất đã cài đặt cho {{device}}",
|
||
"reco_for": "Được đề xuất cho {{device}}",
|
||
"starting": "Bắt đầu…",
|
||
"required_size": "Bắt buộc ~{{size}} GB",
|
||
"all_size": "Tất cả ~{{size}} GB",
|
||
"req_tag": "yêu cầu",
|
||
"search_placeholder": "Tìm kiếm mô hình…",
|
||
"search_label": "Tìm kiếm mô hình",
|
||
"no_matches": "Không có mô hình nào phù hợp với bộ lọc của bạn.",
|
||
"sort_by": "Sắp xếp theo {{column}}",
|
||
"column_model": "người mẫu",
|
||
"column_role": "Vai trò",
|
||
"column_size": "Kích thước",
|
||
"column_status": "Trạng thái",
|
||
"ready_badge": "Sẵn sàng",
|
||
"loading_badge": "Đang tải…",
|
||
"idle_badge": "Nhàn rỗi",
|
||
"started_downloading_required_one": "Đã bắt đầu tải xuống {{count}} mô hình bắt buộc",
|
||
"started_downloading_required_other": "Đã bắt đầu tải xuống {{count}} mô hình bắt buộc",
|
||
"to_download": "để tải xuống",
|
||
"cached": "được lưu vào bộ nhớ đệm",
|
||
"fast_download_badge": "tải xuống nhanh",
|
||
"fast_download_title": "Tải xuống nhanh qua Xet {{version}} — truyền tải song song",
|
||
"voice_previews": "Bản nghe thử giọng",
|
||
"voice_previews_desc": "Tải các bản nghe thử đã dựng sẵn để giọng phát ngay lập tức — ngay cả trước khi mô hình giọng nói tải xong. Không có gì được tải về cho đến khi bạn bật tùy chọn này.",
|
||
"voice_previews_off": "Tắt — bản nghe thử được dựng trên máy này",
|
||
"voice_previews_ready": "Đã lưu bộ nổi bật",
|
||
"voice_previews_partial": "Đã lưu {{cached}} trong {{total}} bản nghe thử nổi bật",
|
||
"voice_previews_checked": "đã kiểm tra {{when}}",
|
||
"voice_previews_never": "chưa kiểm tra",
|
||
"voice_previews_check": "Kiểm tra ngay",
|
||
"voice_previews_rejected": "Bản cập nhật thư viện giọng bị từ chối: {{message}}"
|
||
},
|
||
"enterprise_faq": {
|
||
"q_internal_tools": "Tôi có cần giấy phép cho các công cụ nội bộ không?",
|
||
"a_internal_tools": "Không. Việc sử dụng bởi nhân viên và nhà thầu của bạn — bao gồm chỉnh sửa và tự lưu trữ nội bộ — là miễn phí theo AGPL-3.0. Giấy phép thương mại chỉ cần thiết nếu bạn nhúng VoiceStudio vào sản phẩm hoặc dịch vụ mã nguồn đóng hay độc quyền và không muốn tuân thủ nghĩa vụ chia sẻ mã nguồn của AGPL.",
|
||
"q_try_before": "Tôi có thể thử trước khi cam kết không?",
|
||
"a_try_before": "Có. Toàn bộ ứng dụng có thể tải xuống, chạy và tự lưu trữ miễn phí theo AGPL-3.0 — không cần bất kỳ thỏa thuận nào. Khi bạn sẵn sàng trao đổi về giấy phép thương mại (sử dụng độc quyền), hãy gửi email cho chúng tôi và chúng ta sẽ cùng thống nhất chi tiết.",
|
||
"q_watermark": "Còn hình mờ thì sao?",
|
||
"a_watermark": "Hình mờ vô hình AudioSeal được nhúng theo mặc định cho mọi người. Bạn có thể tắt trong Cài đặt → Quyền riêng tư; nó chỉ ảnh hưởng đến âm thanh được tạo sau khi thay đổi."
|
||
},
|
||
"gallery_extra": {
|
||
"save_prompt": "Nhập tên cho cấu hình giọng nói này:",
|
||
"saved_as_profile": "Giọng nói được lưu dưới dạng hồ sơ!",
|
||
"save_profile_failed": "Không lưu được hồ sơ",
|
||
"download_failed": "Tải xuống không thành công: {{message}}",
|
||
"trim_load_failed": "Không thể tải âm thanh để cắt xén: {{message}}",
|
||
"upload_crop_failed": "Không thể tải lên giọng nói đã bị cắt: {{message}}"
|
||
},
|
||
"dub_workflow": {
|
||
"preparing_audio": "Đang chuẩn bị âm thanh…",
|
||
"preparing_video": "Đang chuẩn bị video…",
|
||
"extracting_audio_scenes": "Đang trích xuất âm thanh và cảnh…",
|
||
"transcribing_audio": "Phiên âm âm thanh…",
|
||
"transcription_complete": "Phiên âm hoàn tất",
|
||
"upload_cancelled": "Đã hủy tải lên",
|
||
"upload_failed": "Tải lên không thành công: {{message}}",
|
||
"downloading_video": "Đang tải xuống video…",
|
||
"ingested": "Đã nhập {{url}}",
|
||
"ingest_cancelled": "Đã hủy nhập",
|
||
"ingest_failed": "Nhập URL không thành công: {{message}}",
|
||
"retry_cancelled": "Đã hủy thử lại",
|
||
"transcription_failed": "Phiên âm không thành công: {{message}}",
|
||
"import_srt_no_job": "Trước tiên hãy tải lên hoặc nhập video — không cần phải đính kèm phụ đề.",
|
||
"imported_cues": "Đã nhập {{count}} tín hiệu từ {{file}}",
|
||
"skipped_malformed": "{{count}} bị bỏ qua (không đúng định dạng)",
|
||
"dropped_overlap": "{{count}} bị rơi (chồng chéo)",
|
||
"clamped_to_duration": "{{count}} được kẹp theo chiều dài phương tiện",
|
||
"srt_import_failed": "Nhập SRT không thành công",
|
||
"cleaned_one": "Đã làm sạch {{count}} đoạn",
|
||
"cleaned_other": "Đã làm sạch {{count}} mảnh vỡ",
|
||
"segments_clean": "Phân khúc đã sạch",
|
||
"cleanup_failed": "Dọn dẹp không thành công: {{message}}",
|
||
"cinematic_no_llm": "Chất lượng điện ảnh cần có LLM — đặt TRANSLATE_BASE_URL + TRANSLATE_API_KEY (Ollama hoạt động cục bộ). Trở lại Nhanh.",
|
||
"dialect_not_applied": "Phương ngữ đã chọn cần LLM để áp dụng — chuyển Engine sang OpenAI/Ollama hoặc chọn chất lượng Cinematic.",
|
||
"translate_errors": "{{errorCount}}/{{totalCount}} phân đoạn không thành công: {{firstError}}",
|
||
"translate_degraded": "Đã dịch toàn bộ {{totalCount}} phân đoạn — {{count}} dùng bản dịch thô vì bước trau chuốt bị bỏ qua ({{reason}})",
|
||
"translated_segments": "Đã dịch {{count}} phân đoạn → {{lang}}",
|
||
"translated_cinematic_suffix": "(Điện ảnh)",
|
||
"translation_failed": "Dịch không thành công: {{message}}",
|
||
"regenerating": "Đang tái tạo {{count}} phân đoạn…",
|
||
"generating_dub": "Đang tạo lồng tiếng…",
|
||
"generating_progress": "Đang tạo bản lồng tiếng… {{current}}/{{total}}",
|
||
"generation_aborted": "Thế hệ bị hủy bỏ.",
|
||
"dubbing_aborted": "Việc lồng tiếng bị hủy bỏ",
|
||
"generation_stream_ended": "Luồng thế hệ đã kết thúc trước khi hoàn thành",
|
||
"dub_complete": "Lồng tiếng hoàn tất",
|
||
"stop_failed": "Không thể dừng lại",
|
||
"save_first": "Vui lòng nhấp vào 'Tải lên & Phiên âm' trước để video được xử lý trên máy chủ trước khi lưu.",
|
||
"project_saved": "Đã lưu dự án",
|
||
"project_created": "Dự án đã được tạo",
|
||
"save_failed": "Lưu không thành công: {{message}}",
|
||
"opened_project": "Đã mở: {{name}}",
|
||
"delete_project_confirm": "Xóa dự án này? Điều này không thể hoàn tác được.",
|
||
"project_deleted": "Dự án đã bị xóa",
|
||
"delete_history_confirm": "Xóa mục lịch sử này?",
|
||
"history_deleted": "Mục lịch sử đã bị xóa",
|
||
"restored_state": "Đã khôi phục trạng thái thế hệ trước",
|
||
"upgrading_preview": "Đang nâng cấp {{count}} phân đoạn chất lượng xem trước lên chất lượng đầy đủ…",
|
||
"session_expired": "Phiên lồng tiếng này đã hết hạn hoặc đã bị xóa - hãy tải lại video của bạn lên để bắt đầu một video mới."
|
||
},
|
||
"tts_errors": {
|
||
"enter_text": "Vui lòng nhập văn bản",
|
||
"upload_or_select": "Tải lên âm thanh hoặc chọn cấu hình giọng nói",
|
||
"trim_hint": "Âm thanh là {{duration}}s — cắt thành ≤{{max}}s để sao chép tốt nhất",
|
||
"timeout": "Đã hết thời gian tạo - mô hình có thể vẫn đang được tải xuống. Kiểm tra Cài đặt → Nhật ký, sau đó thử lại.",
|
||
"error_prefix": "Lỗi: {{message}}",
|
||
"ignored_unsupported": "Đã bỏ qua hướng dẫn không được hỗ trợ: {{items}}",
|
||
"ignored_duplicate": "Đã bỏ qua (danh mục đã được đặt): {{items}}",
|
||
"ref_audio_unusable": "Không nghe thấy giọng nói trong âm thanh tham chiếu — đoạn clip im lặng hoặc gần như im lặng nên không có giọng để nhân bản. Hãy thu âm lại gần micro hơn (kiểm tra đã chọn đúng thiết bị đầu vào và mức âm có dao động) hoặc chọn một clip khác.",
|
||
"ref_audio_too_long": "Âm thanh tham chiếu dài tối đa 20 giây khi có bản chép lời hoặc 75 giây khi không có. Hãy cắt thành đoạn lời nói rõ dài 3–10 giây; nếu cung cấp văn bản, hãy cắt bản chép lời theo đúng đoạn đó.",
|
||
"ref_audio_no_speech": "Tính năng phát hiện tự động không tìm thấy lời nói trong âm thanh tham chiếu. Hãy cắt thành đoạn lời nói rõ dài 3–10 giây hoặc cung cấp bản chép lời khớp."
|
||
},
|
||
"sharing": {
|
||
"title": "Chia sẻ & Truy cập từ xa",
|
||
"help": "Hiển thị phiên bản VoiceStudio đang chạy này cho các máy khác của bạn mà không cần khởi động lại. Chỉ vòng lặp lại là mặc định — không có gì được chia sẻ cho đến khi bạn bật tính năng này tại đây.",
|
||
"local_network": "Mạng cục bộ",
|
||
"local_help": "Chia sẻ trên Wi-Fi / Ethernet của bạn bằng mã PIN truy cập một lần. Các thiết bị khác quét mã QR hoặc mở link.",
|
||
"ports_title": "Cổng",
|
||
"ports_help": "Chúng được đặt thông qua các biến môi trường được đọc khi khởi động. Thay đổi cổng phụ trợ hoặc giao diện người dùng bằng cách đặt biến và khởi động lại VoiceStudio.",
|
||
"backend_port": "Cổng phụ trợ",
|
||
"ui_port": "cổng giao diện người dùng",
|
||
"lan_share_port": "Cổng chia sẻ mạng LAN",
|
||
"port_error": "Nhập một cổng từ 1024 đến 65535",
|
||
"port_saved": "Đã lưu cổng chia sẻ mạng LAN - áp dụng vào lần tiếp theo bạn bật chia sẻ",
|
||
"port_save_failed": "Không thể lưu cổng: {{message}}",
|
||
"saving": "Đang lưu…",
|
||
"ports_note": "Cổng phụ trợ và giao diện người dùng áp dụng khi khởi động lại. Cổng chia sẻ mạng LAN sẽ áp dụng vào lần tiếp theo bạn bật chia sẻ.",
|
||
"tailscale_title": "Tailscale (truy cập từ xa riêng tư)",
|
||
"tailscale_checking": "Đang kiểm tra vảy đuôi…",
|
||
"tailscale_absent": "Không phát hiện được vảy đuôi. Cài đặt nó để truy cập VoiceStudio một cách an toàn từ mọi nơi trên mạng riêng của bạn.",
|
||
"tailscale_install": "Cài đặt Tailscale",
|
||
"tailscale_running": "Tailscale đang chạy. Phục vụ VoiceStudio qua tailnet riêng của bạn.",
|
||
"tailscale_not_logged_in": "Tailscale đã được cài đặt nhưng chưa đăng nhập. Trước tiên hãy bắt đầu và đăng nhập vào Tailscale.",
|
||
"tailscale_enabled": "Đã bật phân phối theo quy mô",
|
||
"tailscale_enable_failed": "Không thể bật Tailscale",
|
||
"tailscale_enable_error": "Không thể bật Tailscale: {{message}}",
|
||
"tailscale_disabled": "Đã vô hiệu hóa giao dịch theo tỷ lệ",
|
||
"tailscale_disable_failed": "Không thể tắt Tailscale",
|
||
"tailscale_disable_error": "Không thể tắt Tailscale: {{message}}",
|
||
"tailscale_enabling": "Đang bật…",
|
||
"tailscale_enable_btn": "Bật phân phát Tailscale",
|
||
"tailscale_disabling": "Đang tắt…",
|
||
"tailscale_disable_btn": "Dừng giao bóng Tailscale",
|
||
"tailscale_copy": "Sao chép liên kết",
|
||
"tailscale_open": "Mở trong trình duyệt",
|
||
"copied": "Đã sao chép",
|
||
"tailscale_qr_alt": "Mã QR cho URL Tailscale"
|
||
},
|
||
"reportBug": {
|
||
"label": "Báo cáo lỗi",
|
||
"title": "Mở trang Vấn đề GitHub được điền sẵn trong trình duyệt của bạn. Không có gì được gửi cho đến khi bạn nhấp vào Gửi.",
|
||
"staleTitle": "Có bản cập nhật",
|
||
"staleMessage": "Bạn đang dùng VoiceStudio {{current}}, nhưng {{latest}} đã ra mắt — lỗi này có thể đã được sửa ở đó. Xem bản phát hành mới nhất trước khi báo cáo?",
|
||
"staleView": "Xem bản cập nhật",
|
||
"staleFileAnyway": "Vẫn báo cáo"
|
||
},
|
||
"app": {
|
||
"loading": "Đang tải…",
|
||
"trimmed_loaded": "Đã tải âm thanh đã cắt bớt",
|
||
"toast_exported": "Đã xuất: {{name}}",
|
||
"toast_export_failed": "Xuất không thành công: {{message}}",
|
||
"toast_open_folder_failed": "Không thể mở thư mục: {{message}}",
|
||
"toast_saving": "Đang lưu {{name}}...",
|
||
"toast_saved": "Đã lưu: {{path}}",
|
||
"toast_save_error": "Lỗi lưu: {{message}}",
|
||
"toast_processing": "Đang xử lý {{name}}...",
|
||
"toast_downloaded": "Đã tải xuống {{name}}",
|
||
"toast_download_error": "Lỗi tải xuống: {{message}}",
|
||
"toast_upload_first": "Vui lòng nhấp vào 'Tải lên & Phiên âm' trước để video được xử lý trên máy chủ trước khi lưu.",
|
||
"toast_save_failed": "Lưu không thành công: {{message}}",
|
||
"toast_opened": "Đã mở: {{name}}",
|
||
"toast_project_deleted": "Dự án đã bị xóa",
|
||
"toast_restored_state": "Đã khôi phục trạng thái thế hệ trước",
|
||
"toast_history_deleted": "Mục lịch sử đã bị xóa",
|
||
"toast_flushed": "Đã xóa — RAM {{ram}}G · VRAM {{vram}}G{{unloaded}}",
|
||
"toast_model_unloaded": "· dỡ mô hình",
|
||
"toast_flush_failed": "Xóa không thành công: {{message}}",
|
||
"toast_project_saved": "Đã lưu dự án",
|
||
"toast_project_created": "Dự án đã được tạo"
|
||
},
|
||
"update": {
|
||
"available": "Đã có bản cập nhật {{version}}",
|
||
"install": "Cài đặt và khởi động lại",
|
||
"install_hint": "Tải bản cập nhật và khởi động lại vào phiên bản mới",
|
||
"downloading": "Đang cập nhật… {{pct}}%",
|
||
"restart": "Khởi động lại để cập nhật",
|
||
"busy": "Chờ công việc đang chạy hoàn tất — rồi cài đặt bản cập nhật.",
|
||
"whats_new": "Có gì mới",
|
||
"failed": "Cập nhật không thành công",
|
||
"retry": "Thử lại",
|
||
"dismiss": "Loại bỏ",
|
||
"toast_available": "VoiceStudio {{version}} đã có",
|
||
"toast_install": "Cài đặt và khởi động lại",
|
||
"toast_whats_new": "Có gì mới",
|
||
"toast_later": "Để sau"
|
||
},
|
||
"archetypes": {
|
||
"featured": "Nổi bật",
|
||
"browse_all": "Duyệt tất cả",
|
||
"use_narration": "Tường thuật & Câu chuyện",
|
||
"use_conversational": "đàm thoại",
|
||
"use_characters": "Nhân vật & Hoạt hình",
|
||
"use_social": "Truyền thông xã hội",
|
||
"use_entertainment": "Giải trí & Truyền hình",
|
||
"use_advertisement": "quảng cáo",
|
||
"use_informative": "Thông tin & Giáo dục",
|
||
"facet_gender": "Giới tính",
|
||
"facet_age": "Tuổi",
|
||
"facet_pitch": "Cao độ",
|
||
"facet_accent": "Giọng",
|
||
"facet_lang": "Ngôn ngữ",
|
||
"facet_whisper": "Thì thầm"
|
||
},
|
||
"support": {
|
||
"tab_support": "Hỗ trợ",
|
||
"tab_license": "Giấy phép thương mại",
|
||
"toggle_label": "Hỗ trợ hoặc giấy phép thương mại",
|
||
"other_ways": "Những cách khác để giúp đỡ",
|
||
"star_github": "Sao trên GitHub",
|
||
"join_discord": "Tham gia bất hòa"
|
||
},
|
||
"updates": {
|
||
"tab": "Cập nhật",
|
||
"up_to_date": "Đã cập nhật · v{{version}}",
|
||
"check_now": "Kiểm tra ngay",
|
||
"releases": "Bản phát hành",
|
||
"current": "hiện tại",
|
||
"prerelease": "xem trước",
|
||
"loading": "Đang tải bản phát hành…",
|
||
"none": "Không tìm thấy bản phát hành nào",
|
||
"load_error": "Không thể tải bản phát hành (ngoại tuyến?)",
|
||
"retry_load": "Thử lại"
|
||
},
|
||
"firstrun": {
|
||
"loading": "Đang chuẩn bị thiết lập…",
|
||
"title": "Thiết lập VoiceStudio",
|
||
"subtitle": "Chưa có gì được cài đặt — hãy xem lại nơi lưu mọi thứ rồi bắt đầu. Có thể thay đổi sau trong Cài đặt.",
|
||
"language": "Ngôn ngữ",
|
||
"mode_title": "Chế độ cài đặt",
|
||
"mode_installed": "Cài đặt",
|
||
"mode_installed_desc": "Dùng các thư mục hệ thống tiêu chuẩn. Khuyến nghị cho đa số người dùng.",
|
||
"mode_portable": "Di động",
|
||
"mode_portable_desc": "Mọi thứ nằm trong một thư mục cạnh ứng dụng — di chuyển nguyên khối sang ổ đĩa hoặc máy khác.",
|
||
"mode_portable_unavailable": "Không khả dụng: thư mục cạnh ứng dụng không ghi được.",
|
||
"storage_title": "Lưu trữ",
|
||
"portable_folder": "Thư mục di động",
|
||
"portable_folder_desc": "Môi trường, mô hình và dữ liệu giọng nói của bạn — một thư mục, di chuyển trọn vẹn.",
|
||
"portable_moved": "Được ghi bên cạnh ứng dụng dưới dạng đường dẫn tương đối, nên di chuyển ứng dụng và thư mục này cùng nhau — kể cả sang máy khác hay ký tự ổ đĩa khác — vẫn giữ bản cài đặt hoạt động.",
|
||
"portable_moved_machine_bound": "Vị trí chính xác này được ghi nhớ trên máy này. Nếu ứng dụng hoặc thư mục này bị di chuyển, hoặc bạn dùng máy khác, bạn sẽ phải trỏ lại cho ứng dụng.",
|
||
"env_dir": "Môi trường ứng dụng",
|
||
"env_dir_desc": "Python runtime và các thư viện AI.",
|
||
"data_dir": "Dữ liệu giọng nói & dự án",
|
||
"data_dir_desc": "Giọng nói, lồng tiếng, tệp xuất và cơ sở dữ liệu dự án của bạn.",
|
||
"models_dir": "Bộ nhớ đệm mô hình",
|
||
"models_dir_desc": "Các mô hình AI đã tải — phần lớn nhất và dễ di dời nhất.",
|
||
"needs": "cần ~{{size}}",
|
||
"free": "còn trống {{size}}",
|
||
"checking": "đang kiểm tra…",
|
||
"not_writable": "không ghi được",
|
||
"change": "Thay đổi…",
|
||
"compute_title": "Tính toán",
|
||
"compute_label": "GPU / bộ tăng tốc",
|
||
"compute_auto": "Tự động (NVIDIA CUDA / Apple MPS / CPU)",
|
||
"compute_rocm": "GPU AMD (ROCm, Linux)",
|
||
"channel_label": "Kênh cập nhật",
|
||
"channel_stable": "Ổn định",
|
||
"channel_preview": "Xem trước (main mới nhất)",
|
||
"network_title": "Mạng",
|
||
"region_label": "Khu vực tải xuống",
|
||
"mirrors_title": "Mirror tùy chỉnh (nâng cao)",
|
||
"mirror_pypi": "URL chỉ mục PyPI",
|
||
"mirror_hf": "Endpoint Hugging Face",
|
||
"mirror_python": "Mirror tải Python",
|
||
"insufficient_space": "Không đủ dung lượng: bố cục này cần ~{{need}} trên cùng một ổ đĩa, chỉ còn {{free}}. Hãy chọn vị trí khác.",
|
||
"blocked_not_writable": "Một thư mục đã chọn không ghi được — hãy chọn vị trí khác.",
|
||
"total_required": "Tổng dung lượng cần: ~{{size}} (tải một lần khi dùng lần đầu)",
|
||
"start": "Bắt đầu cài đặt",
|
||
"starting": "Đang khởi động…",
|
||
"compute_detected": "Đã phát hiện",
|
||
"compute_match": "khớp với máy này",
|
||
"compute_auto_desc": "Chọn backend tốt nhất của máy này khi chạy — CUDA trên NVIDIA, MPS trên Apple Silicon, còn lại dùng CPU.",
|
||
"compute_rocm_desc": "Cài wheel PyTorch ROCm cho card đồ họa AMD trên Linux. Nếu không chắc, hãy để Tự động.",
|
||
"channel_stable_desc": "Chỉ các bản phát hành đã kiểm thử — cập nhật đến sau khi cộng đồng xác nhận.",
|
||
"channel_preview_desc": "Bản dựng liên tục từ main mới nhất — engine và bản sửa mới nhất trước tiên, đôi khi còn thô.",
|
||
"installing_title": "Đang cài đặt",
|
||
"activity_title": "Hoạt động",
|
||
"stage_setup": "Thiết lập",
|
||
"stage_models": "Mô hình & engine",
|
||
"chip_required": "bắt buộc",
|
||
"chip_optional": "tùy chọn",
|
||
"chip_engine": "engine",
|
||
"lib_download": "Tải xuống",
|
||
"lib_downloading": "đang tải…",
|
||
"lib_use": "Dùng",
|
||
"lib_active": "đang dùng",
|
||
"lib_in_settings": "cài sau trong Cài đặt",
|
||
"lib_show_all": "Hiện {{count}} mô hình tùy chọn",
|
||
"trust_line": "Quyền riêng tư là trên hết: giọng nói, bản ghi và dự án của bạn không bao giờ rời khỏi máy này — không tài khoản, không xử lý đám mây.",
|
||
"resume_note": "Tải xuống bị gián đoạn sẽ tự tiếp tục — đóng ứng dụng vẫn an toàn.",
|
||
"eta_left": "còn ~{{eta}}",
|
||
"first_sound_text": "Chào mừng đến với studio của bạn. Mỗi từ bạn đang nghe vừa được tạo trên chính máy này.",
|
||
"first_sound_done": "Giọng nói đó? Vừa được tạo vài giây trước, ngay trên máy. Chào mừng.",
|
||
"hf_token_title": "Token Hugging Face (tùy chọn)",
|
||
"hf_token_hint": "Mở khóa các mô hình bị giới hạn — ví dụ tách người nói cho lồng tiếng nhiều giọng (pyannote). Token tài khoản miễn phí; chỉ lưu trên máy này.",
|
||
"hf_token_save": "Lưu",
|
||
"hf_token_saving": "đang lưu…",
|
||
"hf_token_saved": "Đã lưu token Hugging Face",
|
||
"hf_token_error": "Không thể lưu token — thử lại hoặc đặt sau trong Cài đặt → Thông tin xác thực.",
|
||
"chip_recommended": "đề nghị",
|
||
"chip_recommended_title": "Đề xuất cho máy này — tùy chọn",
|
||
"size_left": "{{size}} còn lại",
|
||
"hf_token_card_title": "Thêm mã thông báo Ôm Mặt miễn phí để tải xuống nhanh hơn",
|
||
"hf_token_get": "Bạn không có mã thông báo? Nhận một cái miễn phí →",
|
||
"hf_token_saved_fast": "Đã lưu mã thông báo Ôm Mặt - tải xuống hiện nhanh hơn",
|
||
"hf_token_inline_prompt": "Tăng tốc độ tải xuống với mã thông báo Ôm mặt miễn phí",
|
||
"hf_token_inline_ph": "Dán mã thông báo hf_… (tùy chọn)",
|
||
"hf_token_get_short": "Nhận một cái miễn phí →"
|
||
},
|
||
"history": {
|
||
"dub_meta": "{{segments}} phân đoạn · {{duration}} giây",
|
||
"dub_meta_zero": "{{count}} phân đoạn · {{duration}} giây",
|
||
"dub_meta_one": "{{count}} phân đoạn · {{duration}} giây",
|
||
"dub_meta_two": "{{count}} phân đoạn · {{duration}} giây",
|
||
"dub_meta_few": "{{count}} phân đoạn · {{duration}} giây",
|
||
"dub_meta_many": "{{count}} phân đoạn · {{duration}} giây",
|
||
"dub_meta_other": "{{count}} phân đoạn · {{duration}} giây",
|
||
"dub_title": "Lịch sử lồng tiếng",
|
||
"empty": "Chưa có gì ở đây — các bản tạo của bạn sẽ xuất hiện ở bên phải.",
|
||
"empty_dub": "Các bản lồng tiếng của bạn sẽ xuất hiện tại đây.",
|
||
"title": "Lịch sử",
|
||
"star_take": "Gắn sao — giữ bản thu này",
|
||
"unstar_take": "Bỏ sao — cho phép dọn dẹp",
|
||
"play_take": "Tải làm đầu ra hiện tại",
|
||
"filter_starred": "Đã gắn sao",
|
||
"load_take_failed": "Không thể tải bản thu đó: {{message}}",
|
||
"mode_clone": "Nhân bản",
|
||
"mode_synth": "Tổng hợp",
|
||
"generation_seconds": "{{duration}} giây",
|
||
"expand_text": "Mở rộng văn bản",
|
||
"collapse_text": "Thu gọn văn bản",
|
||
"seed": "Seed {{seed}}",
|
||
"load_config": "Tải cài đặt",
|
||
"delete_confirm": "Xóa mục lịch sử này?"
|
||
},
|
||
"openapi": {
|
||
"title": "API VoiceStudio",
|
||
"loading": "Đang tải đặc tả API…",
|
||
"unreachable_title": "Không có đặc tả backend",
|
||
"unreachable_body": "Không thể truy cập đặc tả OpenAPI của backend cục bộ tại {{url}}. Hãy bảo đảm backend đang chạy rồi thử lại.",
|
||
"retry": "Thử lại",
|
||
"copy_url": "Sao chép URL đặc tả",
|
||
"copy_url_aria": "Sao chép URL /openapi.json",
|
||
"copied": "Đã sao chép URL đặc tả",
|
||
"copy_failed": "Sao chép thất bại — hãy chọn và sao chép thủ công URL ở trên.",
|
||
"open_raw": "Mở đặc tả thô",
|
||
"open_raw_aria": "Mở JSON OpenAPI thô trong trình duyệt"
|
||
},
|
||
"recording": {
|
||
"cleaned_loaded": "Đã làm sạch và tải bản ghi âm!",
|
||
"loaded_raw": "Đã tải bản ghi âm (thô — không có khử nhiễu)",
|
||
"too_short": "Bản ghi âm quá ngắn",
|
||
"input_device": "Thiết bị đầu vào",
|
||
"default_input": "Mặc định hệ thống",
|
||
"microphone_number": "Micrô {{number}}",
|
||
"channels": "Kênh",
|
||
"channels_auto": "Tự động",
|
||
"channels_mono": "Đơn âm",
|
||
"channels_stereo": "Âm thanh nổi",
|
||
"input_level": "Mức đầu vào micrô",
|
||
"input_detected": "Đã phát hiện âm thanh",
|
||
"no_input_detected": "Không phát hiện âm thanh"
|
||
},
|
||
"pronunciation": {
|
||
"title": "Từ điển phát âm",
|
||
"help": "Dạy động cơ cách nói những từ khó. Mỗi mục thay thế một từ bằng cách viết lại trước khi tổng hợp, vì vậy nó áp dụng trên mọi công cụ. Phạm vi một mục nhập cho một ngôn ngữ hoặc để nó Toàn cầu. Trong dòng, [[word|respelling]] ghi đè từ điển một lần.",
|
||
"term": "kỳ hạn",
|
||
"term_placeholder": "từ hoặc cụm từ (ví dụ: GIF)",
|
||
"replacement": "thay thế",
|
||
"replacement_placeholder": "đánh vần lại (ví dụ: jiff)",
|
||
"scope": "Phạm vi",
|
||
"global": "Toàn cầu",
|
||
"type": "Loại",
|
||
"type_respelling": "Đánh vần lại",
|
||
"type_ipa": "IPA",
|
||
"type_cmu": "CMU",
|
||
"enabled": "Đã bật",
|
||
"add": "Thêm mục",
|
||
"remove": "Xóa {{term}}",
|
||
"empty": "Chưa có mục nào. Thêm một mục bên dưới để sửa một từ phát âm sai.",
|
||
"test_label": "Kiểm tra một câu",
|
||
"test_placeholder": "Nhập một câu để xem trước sự thay thế…",
|
||
"test_result": "Sẽ được nói như:",
|
||
"test_nochange": "Không có mục nào khớp - nói như viết.",
|
||
"load_error": "Không thể tải từ điển phát âm.",
|
||
"save_error": "Không thể lưu mục đó.",
|
||
"lang_label": "Mã ngôn ngữ (ví dụ: en, de) hoặc để trống cho Toàn cầu",
|
||
"enable_entry": "Bật {{term}}",
|
||
"lang_placeholder": "en, de… (bỏ trống = Toàn cầu)",
|
||
"test_language": "Ngôn ngữ xem trước",
|
||
"test_global_hint": "Chỉ đang xem trước các mục Toàn cầu — chọn một ngôn ngữ để bao gồm các mục theo ngôn ngữ.",
|
||
"test_error": "Không thể xem trước — không liên lạc được với backend.",
|
||
"backup_title": "Sao lưu & khôi phục",
|
||
"backup_hint": "Tải xuống từ điển dưới dạng tệp JSON, hoặc nhập các mục từ một lần xuất trước đó.",
|
||
"export": "Xuất JSON",
|
||
"import": "Nhập JSON",
|
||
"import_replace_prompt": "Thay thế {{count}} mục hiện có bằng tệp đã nhập? Chọn Không để thêm các mục đã nhập bên cạnh các mục hiện có.",
|
||
"import_done": "Đã nhập {{count}} mục.",
|
||
"import_error": "Không thể nhập tệp đó — cần JSON từ một lần xuất phát âm.",
|
||
"export_error": "Không thể xuất từ điển."
|
||
},
|
||
"audiobook": {
|
||
"cast": "Dàn giọng",
|
||
"cast_hint": "Gán một giọng cho từng [voice:NAME] trong kịch bản của bạn.",
|
||
"cast_empty": "Thêm thẻ [voice:NAME] vào kịch bản để dùng nhiều giọng.",
|
||
"cast_uses_default": "dùng giọng mặc định",
|
||
"markup_toolbar": "Chèn đánh dấu",
|
||
"insert_pause": "Tạm dừng",
|
||
"insert_voice": "Giọng",
|
||
"insert_slow": "Chậm",
|
||
"insert_fast": "Nhanh",
|
||
"insert_emphasis": "Nhấn mạnh",
|
||
"insert_spell": "Đánh vần",
|
||
"insert_reactions": "Phản ứng",
|
||
"stats": "{{chapters}} chương · {{words}} từ · {{runtime}} thời lượng ước tính",
|
||
"warnings_title": "Trước khi tạo",
|
||
"warn_unknown_voice": "Giọng không xác định ‘{{name}}’ — sẽ dùng giọng mặc định",
|
||
"warn_empty_chapter": "Chương “{{title}}” không có nội dung để đọc",
|
||
"warn_unknown_tag": "Thẻ không nhận dạng {{tag}} — sẽ được đọc to",
|
||
"untitled": "Không có tiêu đề",
|
||
"dismiss": "Bỏ qua",
|
||
"output": "Đầu ra",
|
||
"title": "Sách nói",
|
||
"subtitle": "Viết hoặc nhập câu chuyện, chọn giọng cho từng vai, rồi xuất sách nói hoàn chỉnh với các chương thực sự.",
|
||
"script": "kịch bản",
|
||
"script_placeholder": "# Chương Một\nNgày xửa ngày xưa… [tạm dừng 500ms] đoạn cuối.\n\n# Chương hai\n[giọng:người kể chuyện] Và cứ thế mọi chuyện tiếp tục.",
|
||
"default_voice": "Giọng nói mặc định",
|
||
"engine_default": "Mặc định công cụ",
|
||
"preview_plan": "Xem trước kế hoạch",
|
||
"stop": "Dừng",
|
||
"stopped_note": "Đã dừng — các chương đã xong được lưu trong bộ nhớ đệm; nhấn Tạo lại để tiếp tục.",
|
||
"progress_summary": "Đang tổng hợp {{current}} trên {{total}} chương",
|
||
"eta": "còn ~{{time}}",
|
||
"chapter_n": "Chương {{n}}",
|
||
"cached_tag": "đã lưu đệm",
|
||
"failed_tag": "thất bại",
|
||
"empty_hint": "Chưa có gì để thuyết minh — dùng Tải mẫu để thử một kịch bản demo.",
|
||
"create": "Tạo sách nói",
|
||
"plan_heading": "Kế hoạch — {{count}} chương",
|
||
"chapter_meta": "{{spans}} khoảng · {{chars}} ký tự",
|
||
"synthesizing": "Tổng hợp chương {{current}} của {{total}} {{title}}",
|
||
"assembling": "Đang lắp ráp sách nói…",
|
||
"ready": "Sách nói đã sẵn sàng",
|
||
"download": "Tải xuống",
|
||
"format": "định dạng",
|
||
"format_m4b": "M4B (chương)",
|
||
"format_mp3": "MP3",
|
||
"loudness": "Độ ồn",
|
||
"loudness_off": "Độ ồn: tắt",
|
||
"loudness_acx": "Chuẩn hóa (ACX)",
|
||
"loudness_podcast": "Bình thường hóa (podcast)",
|
||
"details": "Bìa & chi tiết",
|
||
"cover": "Bìa",
|
||
"cover_add": "Thêm bìa",
|
||
"cover_remove": "Tháo nắp",
|
||
"meta_title": "Tiêu đề",
|
||
"meta_author": "tác giả",
|
||
"meta_narrator": "Người kể chuyện",
|
||
"meta_year": "Năm",
|
||
"meta_genre": "Thể loại",
|
||
"meta_description": "Mô tả",
|
||
"preview_chapter": "Xem trước chương: {{title}}",
|
||
"cached_note": "Đã sử dụng lại {{count}} (các) chương đã được hiển thị.",
|
||
"failed_note": "{{count}} chương không thành công — hãy nhấp vào Tạo lại để thử lại những chương đó.",
|
||
"import": "Nhập khẩu",
|
||
"import_failed": "Nhập không thành công: {{message}}",
|
||
"load_sample": "Tải mẫu",
|
||
"load_sample_hint": "Điền vào trình soạn thảo một kịch bản demo minh họa các chương, giọng theo nhân vật, khoảng dừng và thẻ biểu cảm — thử trước khi làm thật",
|
||
"load_sample_confirm": "Thay kịch bản hiện tại bằng mẫu?",
|
||
"lexicon": "phát âm",
|
||
"lex_word": "từ",
|
||
"lex_say": "Nói như…",
|
||
"lex_add": "Thêm từ",
|
||
"lex_remove": "Xóa",
|
||
"markup_help": "Tham chiếu đánh dấu",
|
||
"markup_hint": "# Tiêu đề chương · [voice:NAME] chuyển giọng nói · [pause 500ms] / [pause 1s] · [slow]…[/slow] · [fast]…[/fast] · [emphasis]…[/emphasis] · [spell]…[/spell] · Phản ứng (VoiceStudio): [laughter] [sigh] [confirmation-en] [question-en] [question-ah] [question-oh] [question-ei] [question-yi] [surprise-ah] [surprise-oh] [surprise-wa] [surprise-yo] [dissatisfaction-hnn]",
|
||
"language": "Ngôn ngữ",
|
||
"expressive": "Ghi đè sản xuất",
|
||
"reset": "Đặt lại",
|
||
"seed": "Hạt",
|
||
"seed_ph": "Tự động",
|
||
"vary_repeats": "Thay đổi dòng lặp lại",
|
||
"vary_repeats_help": "Cung cấp các bản ghi khác nhau cho các dòng giống nhau thay vì sử dụng lại một bản ghi.",
|
||
"emotion_help": "Cảm xúc dần dần — chỉ được áp dụng bởi công cụ IndexTTS2.",
|
||
"emotion_text": "Mô tả cảm xúc",
|
||
"emotion_text_ph": "ví dụ: nghe vẻ mệt mỏi và buồn",
|
||
"emotion_alpha": "Độ mạnh của cảm xúc"
|
||
},
|
||
"voicePanel": {
|
||
"title": "Giọng nói",
|
||
"subtitle": "Đọc chính tả từ giọng nói thành văn bản cục bộ bằng các mẫu trên thiết bị.",
|
||
"enable_label": "Bật Đọc chính tả bằng giọng nói",
|
||
"enable_sub": "Nhấn {{shortcut}} để đọc chính tả văn bản vào bất kỳ ngăn có tiêu điểm nào.",
|
||
"mode_label": "Chế độ đọc chính tả",
|
||
"mode_sub": "Chuyển đổi: nhấn một lần để bắt đầu, một lần nữa để dừng. Giữ: ra lệnh trong khi phím được giữ.",
|
||
"mode_toggle": "Chuyển đổi",
|
||
"mode_hold": "Giữ",
|
||
"model_label": "Mẫu lời nói",
|
||
"model_sub": "Chọn kiểu máy trên thiết bị dùng để đọc chính tả.",
|
||
"badge_offline": "ngoại tuyến",
|
||
"badge_streaming": "phát trực tuyến",
|
||
"badge_recommended": "đề nghị",
|
||
"download_model": "Tải xuống mô hình",
|
||
"delete_model": "Xóa mô hình",
|
||
"downloading": "Đang tải xuống…",
|
||
"downloading_pct": "Đang tải xuống {{pct}}%",
|
||
"delete_confirm": "Xóa mẫu giọng nói \"{{label}}\"? Bạn có thể tải lại nó sau.",
|
||
"delete_confirm_title": "Xóa mẫu giọng nói",
|
||
"engine_unavailable": "Công cụ đọc chính tả trực tiếp không khả dụng trên bản cài đặt này. Đọc chính tả quay trở lại đường dẫn phiên âm tiêu chuẩn.",
|
||
"model_desc": {
|
||
"sherpa-parakeet-tdt-v3": "Đọc chính tả nhanh, chính xác bằng 25 ngôn ngữ châu Âu.",
|
||
"sherpa-parakeet-tdt-v2": "Đọc chính tả chỉ bằng tiếng Anh nhanh chóng, chính xác.",
|
||
"sherpa-zipformer-bilingual-zh-en": "Truyền phát tiếng Trung + tiếng Anh với các phần trực tiếp.",
|
||
"sherpa-paraformer-bilingual-zh-en": "Truyền phát tiếng Trung + tiếng Anh, model nhỏ gọn.",
|
||
"sherpa-zipformer-en-20m": "Mô hình phát trực tuyến nhỏ bằng tiếng Anh — độ trễ thấp nhất.",
|
||
"sherpa-zipformer-zh-14m": "Mô hình phát trực tuyến nhỏ của Trung Quốc — độ trễ thấp nhất.",
|
||
"sherpa-whisper-tiny": "Khuyến nghị. Đọc chính tả đa ngôn ngữ với hơn 90 ngôn ngữ và tự động phát hiện ngôn ngữ."
|
||
}
|
||
},
|
||
"profiles": {
|
||
"need_name_audio": "Cần tên và âm thanh tham khảo",
|
||
"synthesizing_preview": "Đang tổng hợp bản xem trước cho {{name}}...",
|
||
"synthesizing_segment": "Tổng hợp phân đoạn...",
|
||
"preview_ready": "Xem trước đã sẵn sàng!",
|
||
"playback_failed": "Phát lại không thành công",
|
||
"preview_failed": "Xem trước không thành công: {{message}}",
|
||
"saved": "Giọng nói được lưu vào hồ sơ!",
|
||
"save_failed": "Không lưu được hồ sơ giọng nói",
|
||
"locked": "Giọng nói bị khóa! Bản sắc bây giờ nhất quán qua tất cả các thế hệ.",
|
||
"lock_failed": "Không khóa được hồ sơ",
|
||
"unlocked": "Đã mở khóa bằng giọng nói. Các thế hệ sẽ lại khác nhau.",
|
||
"unlock_failed": "Không thể mở khóa hồ sơ"
|
||
},
|
||
"transcriptionPicker": {
|
||
"title": "Nhập từ bản chép lời",
|
||
"search_placeholder": "Tìm kiếm bản chép lời…",
|
||
"empty": "Chưa có phiên âm nào. Ghi lại một bản ghi trong tab Bản ghi.",
|
||
"empty_search": "Không có phiên âm nào phù hợp với tìm kiếm của bạn."
|
||
},
|
||
"waveform": {
|
||
"source_missing": "Thiếu phương tiện nguồn — tệp này có thể đã bị di chuyển hoặc bị xóa. Tải lại video lên để tiếp tục.",
|
||
"load_failed": "Không thể tải âm thanh từ tệp này"
|
||
},
|
||
"tts": {
|
||
"routingFallback": "Chạy trên CPU - công cụ này không có đường dẫn GPU trên máy của bạn, do đó quá trình tạo sẽ chậm hơn. {{reason}}",
|
||
"routingCaveat": "Sử dụng GPU nhưng: {{reason}}",
|
||
"droppedChunks_one": "Lưu ý: {{count}} phần trong văn bản của bạn không tạo ra âm thanh, nên bản thu này bị thiếu phần đó. Hãy thử tạo lại — thường chỉ cần một seed khác.",
|
||
"droppedChunks_other": "Lưu ý: {{count}} phần trong văn bản của bạn không tạo ra âm thanh, nên bản thu này bị thiếu các phần đó. Hãy thử tạo lại — thường chỉ cần một seed khác.",
|
||
"droppedChunksWithText_one": "Lưu ý: {{count}} phần trong văn bản của bạn không tạo ra âm thanh và bị thiếu trong bản thu này — “{{text}}”. Hãy thử tạo lại; thường chỉ cần một seed khác.",
|
||
"droppedChunksWithText_other": "Lưu ý: {{count}} phần trong văn bản của bạn không tạo ra âm thanh và bị thiếu trong bản thu này — “{{text}}”. Hãy thử tạo lại; thường chỉ cần một seed khác.",
|
||
"streamingOffRemote": "Xem trước lũy tiến bị tắt trong khi {{label}} kết xuất — bản hoàn chỉnh sẽ phát ngay khi có."
|
||
},
|
||
"voiceSelector": {
|
||
"engineDefault": "Mặc định công cụ",
|
||
"clone": "Giọng nói nhân bản",
|
||
"designed": "Giọng nói được thiết kế",
|
||
"presets": "cài đặt trước",
|
||
"fromVideo": "Từ video",
|
||
"missingVoice": "Không tìm thấy giọng nói (chọn lại)",
|
||
"preview": "Xem trước giọng nói",
|
||
"openGallery": "Mở trong Thư viện giọng nói",
|
||
"createVoice": "Tạo một giọng nói mới",
|
||
"gallery": "Thư viện",
|
||
"addingVoice": "Đang thêm giọng nói…",
|
||
"addVoiceFailed": "Không thể thêm giọng nói đó"
|
||
},
|
||
"remote_gate": {
|
||
"title": "Nhập mã PIN truy cập",
|
||
"body": "Phiên bản VoiceStudio này được chia sẻ trên mạng. Nhập mã PIN hiển thị trên máy chủ.",
|
||
"label": "Mã PIN truy cập",
|
||
"connect": "Kết nối"
|
||
},
|
||
"remote_apikey_gate": {
|
||
"title": "Enter API key",
|
||
"body": "This backend requires an API key. Enter the value of OMNIVOICE_API_KEY set on the server.",
|
||
"label": "API key",
|
||
"connect": "Connect"
|
||
},
|
||
"contact": {
|
||
"hero_title": "Hãy liên lạc",
|
||
"hero_desc": "Các câu hỏi, lỗi, giấy phép hoặc chỉ để chào hỏi — đây là cách liên hệ với tôi.",
|
||
"email": "Email",
|
||
"email_desc": "Cấp phép, hợp tác hoặc bất cứ điều gì riêng tư.",
|
||
"website": "Trang web",
|
||
"website_desc": "Thông tin thêm về dự án và nhà sản xuất.",
|
||
"follow_title": "Theo dõi trên X",
|
||
"follow_desc": "Ghi chú phát hành, engine mới, và đôi khi là hé lộ những gì đang được xây dựng. Tiện nếu bạn không muốn ở trong một máy chủ chat.",
|
||
"follow_cta": "Theo dõi trên X"
|
||
},
|
||
"permissions": {
|
||
"title": "Quyền truy cập",
|
||
"desc": "VoiceStudio chạy hoàn toàn trên thiết bị của bạn — các quyền hệ thống này chỉ dùng cho các tính năng liệt kê ở đây, và âm thanh không bao giờ rời khỏi máy của bạn.",
|
||
"microphone": "Micrô",
|
||
"microphone_why": "Dùng cho đọc chính tả và ghi âm giọng nói. Âm thanh được xử lý cục bộ.",
|
||
"accessibility": "Trợ năng",
|
||
"accessibility_why": "Cho phép đọc chính tả dán hoặc gõ văn bản vào các ứng dụng khác.",
|
||
"status_granted": "Đã cấp",
|
||
"status_denied": "Bị từ chối",
|
||
"status_prompt": "Chưa được hỏi",
|
||
"status_unknown": "Không rõ",
|
||
"open_settings": "Mở Cài đặt",
|
||
"web_note": "Trạng thái quyền chỉ đọc được trong ứng dụng máy tính — trên trình duyệt, quyền truy cập micrô do chính trình duyệt quản lý."
|
||
},
|
||
"asr_missing": {
|
||
"message": "Chưa cài đặt mô hình chuyển giọng nói thành văn bản — tính năng này cần một mô hình để phiên âm.",
|
||
"download": "Tải xuống {{label}} ({{size}} GB)",
|
||
"started": "Đang tải {{label}} — theo dõi tiến trình trong Cài đặt → Mô hình, sau đó thử lại.",
|
||
"install_failed": "Không thể bắt đầu tải xuống: {{message}}"
|
||
},
|
||
"model_missing": {
|
||
"message": "Mô hình này chưa được tải xuống trên {{target}}.",
|
||
"download": "Tải mô hình",
|
||
"download_size": "Tải xuống ({{size}})",
|
||
"started": "Đang tải trên {{target}} — hãy Tạo lại khi hoàn tất.",
|
||
"failed": "Không thể bắt đầu tải xuống: {{message}}",
|
||
"manual_worker": "Cài đặt công cụ này trực tiếp trên {{target}}."
|
||
},
|
||
"backend_start_failure": {
|
||
"notice": "Backend của VoiceStudio không khởi động được — sẽ không có gì chạy cho đến khi nó khởi động.",
|
||
"view": "Xem lý do",
|
||
"title": "Backend không khởi động được",
|
||
"intro": "Ứng dụng đã ghi lại điều này khi cố khởi động backend. Gửi kèm kết quả này trong báo cáo sẽ giúp chúng tôi khắc phục.",
|
||
"output_title": "Nội dung ứng dụng báo về",
|
||
"retry_hint": "Hãy thử \"Thử lại\" trong Cài đặt → Nhật ký → Backend. Nếu vẫn lỗi, \"Dọn dẹp & Thử lại\" sẽ dựng lại môi trường từ đầu."
|
||
},
|
||
"crash": {
|
||
"notice_unclean": "Phiên trước đã kết thúc mà không tắt đúng cách {{ago}} trước. Điều này thường vô hại — máy ngủ, ứng dụng bị buộc đóng, hoặc VM/container bị dừng.",
|
||
"details_intro_unclean": "Dấu tắt của lần chạy trước không bao giờ được xóa, {{ago}} trước. VoiceStudio không thể biết đó là sự cố hay chỉ là gián đoạn — ngủ máy, buộc đóng hoặc dừng VM/container đều để lại dấu vết giống nhau. Nếu hiện tại mọi thứ hoạt động bình thường thì không cần làm gì.",
|
||
"report_needs_log": "Không có đầu ra lỗi nào được ghi lại cho sự kiện này, nên báo cáo một cú nhấp sẽ trống. Nếu thực sự có vấn đề, hãy đính kèm những dòng cuối của Cài đặt → Nhật ký → Backend vào issue mới."
|
||
},
|
||
"gpu": {
|
||
"local": "Cục bộ",
|
||
"picker": "Nơi tác vụ chạy",
|
||
"tasks": "tác vụ",
|
||
"coverage": "chỉ {{ops}}",
|
||
"opLocal": "Cục bộ — {{op}} chưa chạy từ xa",
|
||
"dictationLocal": "Đọc chính tả luôn chạy trên máy này",
|
||
"ops": {
|
||
"tts": "TTS",
|
||
"clone": "nhân bản giọng nói",
|
||
"dub": "lồng tiếng",
|
||
"audiobook": "kết xuất sách nói",
|
||
"longform": "kể chuyện",
|
||
"asr": "phiên âm"
|
||
}
|
||
},
|
||
"compute": {
|
||
"add_machine": "Thêm máy",
|
||
"manage": "Cài đặt máy phụ từ xa",
|
||
"off_hint": "Mọi thứ chạy trên máy này. Bật Từ xa để dùng máy khác.",
|
||
"quick_settings": "Tính toán — nơi chạy tác vụ",
|
||
"remote": "Từ xa",
|
||
"title": "Nơi chạy tác vụ",
|
||
"token_once": "Quét hoặc dán mã này trên máy kia. Chỉ hiển thị một lần."
|
||
},
|
||
"voices": {
|
||
"active": "Giọng đang dùng",
|
||
"active_clone_recipe": "Được nhân bản từ đoạn âm thanh mẫu của bạn",
|
||
"cta_clone": "Thả đoạn âm thanh 3 giây vào Giọng nói ← để nhân bản một giọng",
|
||
"cta_design": "Mô tả một giọng trong Giọng nói ← để thiết kế nó",
|
||
"new": "Giọng mới",
|
||
"none_selected": "Chưa chọn giọng nào — hãy mô tả một giọng, thả tệp âm thanh, hoặc chọn bên dưới."
|
||
}
|
||
}
|