Payple PG 연동: - _shared/payple.ts: Payple API 래퍼 (auth/billing/cancel/deleteBillingKey) - payple-checkout Edge Function: 빌링키 결제 + 구독 활성화 - payple-webhook Edge Function: 결제완료/취소 이벤트 - payple-manage Edge Function: 구독 취소 (빌링키 해지) - DB migration: payment_provider + payple_payer_id + payple_pay_oid - 웹 billing 페이지: Payple JS SDK 결제창 + 관리 버튼 (Stripe 대체) - Electron LicenseModal: shell.openExternal → 웹 결제 페이지 대시보드 Premium 상태: - CrtDisplay services에 PREMIUM LLM LED 추가 - 백엔드 인디케이터 카드 (Local/Premium) + 티어 카드 - 사용량 섹션: 전 티어 표시 + 모델별 Premium 쿼터 - 12개 locale × 14개 i18n 키
315 lines
16 KiB
JSON
315 lines
16 KiB
JSON
{
|
|
"app.name": "D3RO Voice",
|
|
"app.tagline": "Trợ lý giọng nói AI cục bộ",
|
|
"nav.dashboard": "Bảng điều khiển",
|
|
"nav.history": "Lịch sử",
|
|
"nav.dictionary": "Từ điển",
|
|
"nav.commands": "Lệnh",
|
|
"nav.settings": "Cài đặt",
|
|
"nav.meetings": "Cuộc họp",
|
|
"nav.record": "Ghi âm",
|
|
"nav.chat": "Trò chuyện",
|
|
"nav.knowledge": "Kiến thức",
|
|
"nav.actions": "Hành động",
|
|
"nav.teams": "Nhóm",
|
|
"nav.billing": "Thanh toán",
|
|
"nav.logout": "Đăng xuất",
|
|
"login.subtitle": "Trợ lý giọng nói AI",
|
|
"login.google": "Tiếp tục với Google",
|
|
"login.github": "Tiếp tục với GitHub",
|
|
"login.terms": "Bằng cách tiếp tục, bạn đồng ý với Điều khoản Dịch vụ và Chính sách Bảo mật.",
|
|
"dashboard.sessionOverview": "Tổng quan phiên",
|
|
"dashboard.systemStatus": "Trạng thái hệ thống",
|
|
"dashboard.sessionsToday": "Phiên hôm nay",
|
|
"dashboard.pressToRecord": "Nhấn {{key}} để bắt đầu ghi âm",
|
|
"dashboard.hotkeyNotSet": "Chưa đặt phím tắt",
|
|
"dashboard.words": "Từ",
|
|
"dashboard.total": "Tổng",
|
|
"dashboard.streak": "Chuỗi",
|
|
"dashboard.days": "ngày",
|
|
"dashboard.recording": "Đang ghi",
|
|
"dashboard.sessions": "Phiên",
|
|
"dashboard.today": "Hôm nay",
|
|
"dashboard.recentTranscriptions": "Phiên âm gần đây",
|
|
"dashboard.noHistory": "Chưa có lịch sử — nhấn phím tắt để bắt đầu ghi âm",
|
|
"dashboard.copy": "Sao chép",
|
|
"dashboard.entries": "{{count}} mục",
|
|
"dashboard.stat": "Thống kê",
|
|
"dashboard.sys": "Hệ thống",
|
|
"dashboard.currentBackend": "Backend hiện tại",
|
|
"dashboard.backendLocal": "Cục bộ (Ollama)",
|
|
"dashboard.backendPremium": "Cao cấp (Claude)",
|
|
"dashboard.loginRequired": "Cần đăng nhập",
|
|
"dashboard.premiumQuota": "Hạn mức Premium",
|
|
"dashboard.modelHaiku": "Haiku",
|
|
"dashboard.modelSonnet": "Sonnet",
|
|
"dashboard.modelOpus": "Opus",
|
|
"dashboard.quotaWeekly": "Hàng tuần",
|
|
"dashboard.quotaDaily": "Hàng ngày",
|
|
"history.title": "Lịch sử phiên âm",
|
|
"history.search": "Tìm kiếm...",
|
|
"history.entries": "{{count}} mục",
|
|
"history.loading": "Đang tải...",
|
|
"history.noResults": "Không tìm thấy kết quả",
|
|
"history.noHistory": "Chưa có lịch sử — hãy bắt đầu ghi âm",
|
|
"history.count": "{{count}} mục",
|
|
"dictionary.title": "Từ điển tùy chỉnh",
|
|
"dictionary.words": "{{count}} từ",
|
|
"dictionary.add": "Thêm",
|
|
"dictionary.search": "Tìm kiếm...",
|
|
"dictionary.loading": "Đang tải...",
|
|
"dictionary.noResults": "Không tìm thấy kết quả",
|
|
"dictionary.noWords": "Chưa có từ — thêm từ tùy chỉnh để cải thiện độ chính xác STT",
|
|
"dictionary.used": "Đã dùng {{count}} lần",
|
|
"dictionary.editTitle": "Chỉnh sửa từ",
|
|
"dictionary.addTitle": "Thêm từ",
|
|
"dictionary.word": "Từ",
|
|
"dictionary.pronunciation": "Phát âm (tùy chọn)",
|
|
"commands.title": "Lệnh LLM",
|
|
"commands.count": "{{count}} lệnh",
|
|
"commands.add": "Thêm",
|
|
"commands.activeCommand": "Lệnh đang hoạt động",
|
|
"commands.none": "Không có",
|
|
"commands.loading": "Đang tải...",
|
|
"commands.noCommands": "Chưa có lệnh — nhấn Thêm để tạo",
|
|
"commands.editTitle": "Chỉnh sửa lệnh",
|
|
"commands.addTitle": "Thêm lệnh",
|
|
"commands.name": "Tên",
|
|
"commands.description": "Mô tả",
|
|
"commands.promptTemplate": "Mẫu prompt",
|
|
"commands.promptHelp": "{{text}} sẽ được thay thế bằng văn bản phiên âm",
|
|
"commands.defaultPrompt": "Vui lòng cải thiện {{text}}.",
|
|
"settings.title": "Cài đặt",
|
|
"settings.tabs.general": "Chung",
|
|
"settings.tabs.audio": "Âm thanh",
|
|
"settings.tabs.stt": "STT",
|
|
"settings.tabs.llm": "LLM",
|
|
"settings.tabs.cloud": "Đám mây",
|
|
"settings.tabs.about": "Giới thiệu",
|
|
"settings.shortcuts": "Phím tắt",
|
|
"settings.dictation": "Chính tả",
|
|
"settings.dictation.desc": "Giữ phím và nói. Thả phím để bắt đầu phiên âm.",
|
|
"settings.agent": "Chế độ Agent",
|
|
"settings.agent.descWithKey": "Nhấn đúp {{key}} để vào chế độ Agent.",
|
|
"settings.agent.descNoKey": "Vui lòng đặt phím tắt chính tả trước.",
|
|
"settings.oneTouch": "Chế độ một chạm",
|
|
"settings.oneTouch.desc": "Nhấn để bắt đầu, nhấn lại để dừng. Cần phím tắt riêng.",
|
|
"settings.key": "Phím",
|
|
"settings.notSet": "Chưa đặt",
|
|
"settings.enabled": "Đã bật",
|
|
"settings.disabled": "Đã tắt",
|
|
"settings.interface": "Giao diện",
|
|
"settings.theme": "Giao diện",
|
|
"settings.theme.system": "Hệ thống",
|
|
"settings.theme.light": "Sáng",
|
|
"settings.theme.dark": "Tối",
|
|
"settings.language": "Ngôn ngữ",
|
|
"settings.appBehavior": "Hành vi ứng dụng",
|
|
"settings.closeToTray": "Thu nhỏ xuống khay hệ thống",
|
|
"settings.autoLaunch": "Tự động khởi động cùng hệ thống",
|
|
"settings.autoInsert": "Tự động chèn văn bản sau khi phiên âm",
|
|
"settings.soundEffects": "Hiệu ứng âm thanh",
|
|
"settings.microphone": "Micrô",
|
|
"settings.inputDevice": "Thiết bị đầu vào",
|
|
"settings.deviceDefault": "(Mặc định)",
|
|
"settings.textInsert": "Chèn văn bản",
|
|
"settings.insertMethod": "Phương thức chèn",
|
|
"settings.insertClipboard": "Bộ nhớ tạm (Ctrl+V)",
|
|
"settings.insertKeyboard": "Giả lập bàn phím",
|
|
"settings.whisperModel": "Mô hình Whisper",
|
|
"settings.model.tiny": "tiny (39 MB, nhanh nhất)",
|
|
"settings.model.base": "base (74 MB, cân bằng)",
|
|
"settings.model.small": "small (244 MB, tốt)",
|
|
"settings.model.medium": "medium (769 MB, xuất sắc)",
|
|
"settings.model.large": "large-v3 (1.5 GB, tốt nhất)",
|
|
"settings.sttLanguage": "Ngôn ngữ nhận dạng",
|
|
"settings.sttLang.auto": "Tự động phát hiện",
|
|
"settings.ollamaServer": "Máy chủ Ollama",
|
|
"settings.ollamaUrl": "URL máy chủ Ollama",
|
|
"settings.ollamaHint": "Nếu Ollama đang chạy, kết nối sẽ tự động. Tải mô hình trực tiếp từ Ollama (ví dụ: ollama pull gemma4:e4b).",
|
|
"settings.postProcess": "Hậu xử lý giọng nói",
|
|
"settings.defaultAction": "Lệnh hậu xử lý mặc định",
|
|
"settings.action.none": "Không có (văn bản gốc)",
|
|
"settings.action.refine": "Cải thiện (ngữ pháp + tự nhiên)",
|
|
"settings.action.translate": "Dịch",
|
|
"settings.action.summarize": "Tóm tắt",
|
|
"settings.action.grammar": "Sửa ngữ pháp",
|
|
"settings.action.custom": "Prompt tùy chỉnh",
|
|
"settings.actionHint": "Hậu xử lý LLM đã chọn sẽ được áp dụng cho văn bản phiên âm sau khi ghi âm. Chỉ hoạt động khi Ollama được kết nối.",
|
|
"settings.about.version": "Phiên bản",
|
|
"settings.about.techStack": "Ngăn xếp công nghệ",
|
|
"settings.about.techStackValue": "Electron + React 19 + MUI 7 + TypeScript",
|
|
"settings.about.voiceEngine": "Bộ máy giọng nói",
|
|
"settings.about.voiceEngineValue": "STT: faster-whisper (cục bộ) / LLM: Ollama (cục bộ)",
|
|
"settings.about.description": "Trợ lý giọng nói AI cục bộ dựa trên kỹ thuật dịch ngược Speakly. Hoạt động hoàn toàn cục bộ, không phụ thuộc vào dịch vụ đám mây.",
|
|
"settings.about.restartOnboarding": "Xem lại hướng dẫn cài đặt ban đầu",
|
|
"status.ollama": "OLLAMA",
|
|
"status.offline": "OFFLINE",
|
|
"status.nudge.title": "Ollama chưa chạy",
|
|
"status.nudge.desc": "Cần Ollama để sử dụng hậu xử lý LLM (dịch, tóm tắt, v.v.).",
|
|
"status.nudge.guide": "Xem hướng dẫn cài đặt →",
|
|
"onboarding.welcome.title": "D3RO-VOICE",
|
|
"onboarding.welcome.desc": "Không cần gõ phím — chỉ cần nói. Trợ lý giọng nói AI cục bộ.",
|
|
"onboarding.welcome.start": "Bắt đầu",
|
|
"onboarding.mic.title": "Cài đặt micrô",
|
|
"onboarding.mic.desc": "Chọn micrô bạn muốn dùng. Có thể thay đổi sau trong cài đặt.",
|
|
"onboarding.hotkey.title": "Cài đặt phím tắt",
|
|
"onboarding.hotkey.desc": "Đặt phím tắt chính tả. Giữ phím trong khi ghi âm.",
|
|
"onboarding.hotkey.notSet": "Phím tắt chưa được đặt",
|
|
"onboarding.hotkey.change": "Thay đổi phím tắt",
|
|
"onboarding.hotkey.set": "Đặt phím tắt",
|
|
"onboarding.ollama.title": "Cài đặt Ollama (tùy chọn)",
|
|
"onboarding.ollama.desc": "Cần Ollama để sử dụng hậu xử lý LLM (dịch, tóm tắt, v.v.). Chính tả giọng nói vẫn hoạt động mà không cần Ollama.",
|
|
"onboarding.ollama.download": "Tải Ollama",
|
|
"onboarding.ollama.modelHint": "Sau khi cài đặt, tải mô hình qua terminal",
|
|
"onboarding.done.title": "Thiết lập hoàn tất!",
|
|
"onboarding.done.descWithKey": "Giữ phím {{key}} và nói — giọng nói sẽ được chuyển thành văn bản.",
|
|
"onboarding.done.descNoKey": "Đặt phím tắt trong cài đặt để bắt đầu chính tả giọng nói.",
|
|
"onboarding.done.start": "Bắt đầu",
|
|
"onboarding.back": "Quay lại",
|
|
"onboarding.next": "Tiếp theo",
|
|
"hotkey.title": "Cài đặt phím tắt",
|
|
"hotkey.dictationTitle": "Đặt phím tắt chính tả",
|
|
"hotkey.oneTouchTitle": "Đặt phím tắt chế độ một chạm",
|
|
"hotkey.prompt": "Nhấn tổ hợp phím...",
|
|
"hotkey.ready": "✓ {{keys}} — hãy nhấn Lưu",
|
|
"hotkey.noKey": "Vui lòng nhập phím",
|
|
"hotkey.reserved": "{{keys}} là phím tắt hệ thống được dành riêng",
|
|
"hotkey.current": "Hiện tại: {{keys}}",
|
|
"hotkey.hint": "Nhập tổ hợp phím (ví dụ: Ctrl+Shift+Q) hoặc phím đơn (ví dụ: F5)",
|
|
"hotkey.reset": "Nhập lại",
|
|
"ollama.title": "OLLAMA SETUP GUIDE",
|
|
"ollama.step1.title": "BƯỚC 1 — Cài đặt Ollama",
|
|
"ollama.step1.desc": "Ollama là công cụ miễn phí để chạy LLM cục bộ.",
|
|
"ollama.step2.title": "BƯỚC 2 — Tải mô hình",
|
|
"ollama.step2.desc": "Tải mô hình bạn muốn qua terminal. Khuyến nghị:",
|
|
"ollama.step2.alt": "Hoặc mô hình lớn hơn: ollama pull gemma4:26b (chính xác hơn, chậm hơn)",
|
|
"ollama.step3.title": "BƯỚC 3 — Tự động kết nối",
|
|
"ollama.step3.desc": "Khi Ollama chạy, D3RO-VOICE sẽ tự động phát hiện. Khi đèn LED trên thanh trạng thái chuyển từ đỏ sang xanh — đã sẵn sàng!",
|
|
"service.sttEngine": "STT ENGINE",
|
|
"service.ollamaLlm": "OLLAMA LLM",
|
|
"service.hotkeyHook": "HOTKEY HOOK",
|
|
"service.audioInput": "AUDIO INPUT",
|
|
"service.ready": "READY",
|
|
"service.connected": "CONNECTED",
|
|
"service.offline": "OFFLINE",
|
|
"service.active": "ACTIVE",
|
|
"service.standby": "STANDBY",
|
|
"service.premiumLlm": "PREMIUM LLM",
|
|
"service.notConfigured": "NOT SET",
|
|
"common.cancel": "Hủy",
|
|
"common.save": "Lưu",
|
|
"common.delete": "Xóa",
|
|
"common.add": "Thêm",
|
|
"common.edit": "Chỉnh sửa",
|
|
"common.close": "Đóng",
|
|
"common.confirm": "Xác nhận",
|
|
"common.loading": "Đang tải...",
|
|
"common.copy": "Sao chép",
|
|
"common.test": "Kiểm tra",
|
|
"common.stop": "Dừng",
|
|
"date.today": "Hôm nay",
|
|
"date.yesterday": "Hôm qua",
|
|
"settings.theme.nord": "Nord",
|
|
"settings.theme.solarized": "Solarized",
|
|
"settings.theme.catppuccin": "Catppuccin",
|
|
"settings.theme.dracula": "Dracula",
|
|
"settings.sttLang.ko": "Tiếng Hàn",
|
|
"settings.sttLang.en": "Tiếng Anh",
|
|
"settings.sttLang.ja": "Tiếng Nhật",
|
|
"settings.sttLang.zh": "Tiếng Trung",
|
|
"template.outputHelperText": "Sử dụng {{tênTrường}} cho trình giữ chỗ",
|
|
"nav.meeting": "Cuộc họp",
|
|
"meeting.title": "Chế độ Cuộc họp",
|
|
"meeting.newMeeting": "Cuộc họp mới",
|
|
"meeting.startRecording": "Bắt đầu ghi âm",
|
|
"meeting.stopRecording": "Dừng ghi âm",
|
|
"meeting.recording": "Đang ghi âm",
|
|
"meeting.processing": "Đang tạo biên bản...",
|
|
"meeting.completed": "Hoàn thành",
|
|
"meeting.error": "Lỗi",
|
|
"meeting.elapsed": "Thời gian đã qua",
|
|
"meeting.memoPlaceholder": "Nhập ghi chú (Enter để thêm)",
|
|
"meeting.memoAdded": "Đã thêm ghi chú",
|
|
"meeting.noSessions": "Không có bản ghi cuộc họp",
|
|
"meeting.noSessionsDesc": "Nhấn «Cuộc họp mới» để bắt đầu ghi âm",
|
|
"meeting.summary": "Tóm tắt",
|
|
"meeting.decisions": "Quyết định",
|
|
"meeting.actionItems": "Hành động cần thực hiện",
|
|
"meeting.timeline": "Dòng thời gian",
|
|
"meeting.transcript": "Bản ghi thô",
|
|
"meeting.memos": "Ghi chú",
|
|
"meeting.exportPdf": "Xuất PDF",
|
|
"meeting.exportMarkdown": "Xuất Markdown",
|
|
"meeting.delete": "Xóa",
|
|
"meeting.deleteConfirm": "Xóa bản ghi cuộc họp này?",
|
|
"meeting.backToList": "Quay lại danh sách",
|
|
"meeting.notificationTitle": "Biên bản đã sẵn sàng",
|
|
"meeting.notificationBody": "Biên bản cuộc họp đã được tạo.",
|
|
"meeting.sessions": "{{count}} phiên",
|
|
"meeting.duration": "{{minutes}} phút",
|
|
"meeting.editTitle": "Chỉnh sửa tiêu đề",
|
|
"meeting.untitled": "Cuộc họp không có tiêu đề",
|
|
"meeting.processingStep.merging": "Đang ghép bản ghi...",
|
|
"meeting.processingStep.generating": "Đang tạo biên bản với LLM...",
|
|
"meeting.processingStep.parsing": "Đang phân tích biên bản...",
|
|
"meeting.processingStep.saving": "Đang lưu...",
|
|
"meeting.processingStep.notifying": "Đang gửi thông báo...",
|
|
"meeting.transcriptTab": "Bản ghi",
|
|
"meeting.addDocument": "Thêm tài liệu",
|
|
"meeting.selectTemplate": "Chọn mẫu",
|
|
"meeting.generate": "Tạo",
|
|
"meeting.generating": "Đang tạo tài liệu...",
|
|
"meeting.editMode": "Chỉnh sửa",
|
|
"meeting.previewMode": "Xem trước",
|
|
"meeting.modified": "Đã chỉnh sửa",
|
|
"meeting.originalText": "Bản gốc",
|
|
"meeting.editedText": "Đã chỉnh sửa",
|
|
"meeting.exportDocx": "Xuất DOCX",
|
|
"meeting.exportTxt": "Xuất TXT",
|
|
"meeting.exportFormat": "Xuất",
|
|
"meeting.customPrompt": "Lệnh tùy chỉnh",
|
|
"meeting.templateName": "Tên mẫu",
|
|
"meeting.templatePrompt": "Lệnh AI",
|
|
"meeting.templateSave": "Lưu mẫu",
|
|
"meeting.documentDeleted": "Đã xóa tài liệu",
|
|
"meeting.autoSaved": "Đã lưu tự động",
|
|
"meeting.minutesTemplate": "Biên bản họp",
|
|
"meeting.reportTemplate": "Báo cáo",
|
|
"meeting.ideaNoteTemplate": "Ghi chú ý tưởng",
|
|
"meeting.customTemplate": "Tùy chỉnh",
|
|
"meeting.downloadTranscript": "Tải bản ghi",
|
|
"meeting.polish": "Tinh chỉnh bằng AI",
|
|
"meeting.polishing": "AI đang tinh chỉnh bản ghi...",
|
|
"meeting.polished": "Tinh chỉnh AI hoàn tất",
|
|
"meeting.mindmapTemplate": "Sơ đồ tư duy",
|
|
"meeting.chat": "Chat AI",
|
|
"meeting.chatPlaceholder": "Hỏi về cuộc họp...",
|
|
"meeting.chatSend": "Gửi",
|
|
"meeting.chatClear": "Xóa chat",
|
|
"meeting.copyToClipboard": "Sao chép vào bộ nhớ tạm",
|
|
"meeting.copied": "Đã sao chép",
|
|
"meeting.chatCollapse": "Thu gọn chat",
|
|
"meeting.chatExpand": "Mở rộng chat",
|
|
"meeting.exportMd": "Markdown (.md)",
|
|
"meeting.exportPdfFmt": "PDF (.pdf)",
|
|
"meeting.polishFailed": "AI đánh bóng thất bại",
|
|
"meeting.viewDetailError": "Không thể tải chi tiết cuộc họp",
|
|
"meeting.startRecordingError": "Không thể bắt đầu ghi âm",
|
|
"meeting.diarize": "Phân tách người nói",
|
|
"meeting.diarizing": "Đang nhận dạng người nói...",
|
|
"meeting.diarizeComplete": "Phân tách người nói hoàn tất",
|
|
"meeting.speaker": "Người nói",
|
|
"settings.hfToken": "Token HuggingFace",
|
|
"settings.hfTokenHint": "Cần token HuggingFace để phân tách người nói",
|
|
"settings.diarization": "Phân tách người nói",
|
|
"settings.diarizationHint": "Tự động nhận dạng người nói sau khi ghi âm kết thúc",
|
|
"theme.label": "Chủ đề",
|
|
"theme.dark": "Tối",
|
|
"theme.light": "Sáng",
|
|
"theme.auto": "Tự động (hệ thống)",
|
|
"theme.nord": "Nord",
|
|
"theme.solarized": "Solarized",
|
|
"theme.catppuccin": "Catppuccin",
|
|
"theme.dracula": "Dracula"
|
|
}
|