mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-13 20:14:50 +00:00
feat(i18n): desktop tts namespace + STT form keys
Add tts namespace to desktop i18n (en/vi/zh). Extend tools.json with STT form keys including WhatsApp privacy banner. Mirrors web ui/web locale structure.
This commit is contained in:
1 parent
033638533d
commit
8d9a7c127a
7 files changed
+304
-4
No files matched your search
@@ -17,6 +17,7 @@ import enSessions from './locales/en/sessions.json'
|
||||
import enDesktop from './locales/en/desktop.json'
|
||||
import enTeams from './locales/en/teams.json'
|
||||
import enChannels from './locales/en/channels.json'
|
||||
import enTts from './locales/en/tts.json'
|
||||
|
||||
// --- VI namespaces ---
|
||||
import viCommon from './locales/vi/common.json'
|
||||
@@ -34,6 +35,7 @@ import viSessions from './locales/vi/sessions.json'
|
||||
import viDesktop from './locales/vi/desktop.json'
|
||||
import viTeams from './locales/vi/teams.json'
|
||||
import viChannels from './locales/vi/channels.json'
|
||||
import viTts from './locales/vi/tts.json'
|
||||
|
||||
// --- ZH namespaces ---
|
||||
import zhCommon from './locales/zh/common.json'
|
||||
@@ -51,6 +53,7 @@ import zhSessions from './locales/zh/sessions.json'
|
||||
import zhDesktop from './locales/zh/desktop.json'
|
||||
import zhTeams from './locales/zh/teams.json'
|
||||
import zhChannels from './locales/zh/channels.json'
|
||||
import zhTts from './locales/zh/tts.json'
|
||||
|
||||
const STORAGE_KEY = 'goclaw:language'
|
||||
|
||||
@@ -69,22 +72,22 @@ i18n.use(initReactI18next).init({
|
||||
common: enCommon, chat: enChat, agents: enAgents, providers: enProviders,
|
||||
skills: enSkills, cron: enCron, mcp: enMcp, tools: enTools,
|
||||
traces: enTraces, memory: enMemory, storage: enStorage, sessions: enSessions,
|
||||
desktop: enDesktop, teams: enTeams, channels: enChannels,
|
||||
desktop: enDesktop, teams: enTeams, channels: enChannels, tts: enTts,
|
||||
},
|
||||
vi: {
|
||||
common: viCommon, chat: viChat, agents: viAgents, providers: viProviders,
|
||||
skills: viSkills, cron: viCron, mcp: viMcp, tools: viTools,
|
||||
traces: viTraces, memory: viMemory, storage: viStorage, sessions: viSessions,
|
||||
desktop: viDesktop, teams: viTeams, channels: viChannels,
|
||||
desktop: viDesktop, teams: viTeams, channels: viChannels, tts: viTts,
|
||||
},
|
||||
zh: {
|
||||
common: zhCommon, chat: zhChat, agents: zhAgents, providers: zhProviders,
|
||||
skills: zhSkills, cron: zhCron, mcp: zhMcp, tools: zhTools,
|
||||
traces: zhTraces, memory: zhMemory, storage: zhStorage, sessions: zhSessions,
|
||||
desktop: zhDesktop, teams: zhTeams, channels: zhChannels,
|
||||
desktop: zhDesktop, teams: zhTeams, channels: zhChannels, tts: zhTts,
|
||||
},
|
||||
},
|
||||
ns: ['common', 'chat', 'agents', 'providers', 'skills', 'cron', 'mcp', 'tools', 'traces', 'memory', 'storage', 'sessions', 'desktop', 'teams', 'channels'],
|
||||
ns: ['common', 'chat', 'agents', 'providers', 'skills', 'cron', 'mcp', 'tools', 'traces', 'memory', 'storage', 'sessions', 'desktop', 'teams', 'channels', 'tts'],
|
||||
defaultNS: 'common',
|
||||
lng: getInitialLanguage(),
|
||||
fallbackLng: 'en',
|
||||
|
||||
@@ -206,6 +206,24 @@
|
||||
"skill_search": "Search for available skills by keyword or description to find relevant capabilities",
|
||||
"use_skill": "Activate a skill to use its specialized capabilities (tracing marker)",
|
||||
"team_tasks": "View, create, update, and complete tasks on the team task board"
|
||||
},
|
||||
"sttForm": {
|
||||
"title": "STT Settings",
|
||||
"description": "Configure speech-to-text providers for transcribing voice messages.",
|
||||
"providersLabel": "Providers",
|
||||
"elevenlabsSectionTitle": "ElevenLabs",
|
||||
"elevenlabsApiKeyLabel": "API Key",
|
||||
"elevenlabsDefaultLanguageLabel": "Default Language",
|
||||
"proxySectionTitle": "Proxy",
|
||||
"proxyUrlLabel": "Proxy URL",
|
||||
"proxyApiKeyLabel": "Proxy API Key",
|
||||
"proxyTenantIdLabel": "Proxy Tenant ID",
|
||||
"whatsappEnabledLabel": "Enable STT for WhatsApp",
|
||||
"whatsappPrivacyWarning": "Enabling STT for WhatsApp breaks end-to-end encryption for voice messages sent to this agent.",
|
||||
"providersRequiredError": "At least one provider must be selected.",
|
||||
"cancel": "Cancel",
|
||||
"save": "Save",
|
||||
"saving": "Saving..."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"title": "Text-to-Speech",
|
||||
"description": "Configure TTS providers and auto-apply settings",
|
||||
"save": "Save",
|
||||
"saving": "Saving...",
|
||||
"saveChanges": "Save Changes",
|
||||
"status": {
|
||||
"title": "Status",
|
||||
"configured": "Configured",
|
||||
"disabled": "Disabled",
|
||||
"noProvider": "No TTS provider configured",
|
||||
"activeProvider": "Primary provider: {{provider}}, Auto: {{auto}}"
|
||||
},
|
||||
"general": {
|
||||
"title": "General Settings",
|
||||
"primaryProvider": "Primary Provider",
|
||||
"autoApplyMode": "Auto-Apply Mode",
|
||||
"replyMode": "Reply Mode",
|
||||
"maxTextLength": "Max Text Length",
|
||||
"timeout": "Timeout (ms)"
|
||||
},
|
||||
"providers": {
|
||||
"none": "None (Disabled)",
|
||||
"openai": "OpenAI",
|
||||
"elevenlabs": "ElevenLabs",
|
||||
"edge": "Edge (Free)",
|
||||
"minimax": "MiniMax"
|
||||
},
|
||||
"autoModes": {
|
||||
"off": "Off",
|
||||
"offDesc": "Agent can use TTS tool manually",
|
||||
"always": "Always",
|
||||
"alwaysDesc": "All replies get audio",
|
||||
"inbound": "Inbound",
|
||||
"inboundDesc": "Only when user sends voice/audio",
|
||||
"tagged": "Tagged",
|
||||
"taggedDesc": "Only when reply contains [[tts]] tag"
|
||||
},
|
||||
"replyModes": {
|
||||
"final": "Final only",
|
||||
"finalDesc": "Only final replies",
|
||||
"all": "All",
|
||||
"allDesc": "All replies including tool/block"
|
||||
},
|
||||
"providerSettings": "{{provider}} Settings",
|
||||
"openai": {
|
||||
"apiKey": "API Key",
|
||||
"apiBase": "API Base URL",
|
||||
"model": "Model",
|
||||
"voice": "Voice"
|
||||
},
|
||||
"elevenlabs": {
|
||||
"apiKey": "API Key",
|
||||
"baseUrl": "Base URL",
|
||||
"voiceId": "Voice ID",
|
||||
"modelId": "Model ID"
|
||||
},
|
||||
"edge": {
|
||||
"voice": "Voice",
|
||||
"speechRate": "Speech Rate",
|
||||
"hint": "Edge TTS is free and requires no API key. Install with: pip install edge-tts"
|
||||
},
|
||||
"minimax": {
|
||||
"apiKey": "API Key",
|
||||
"groupId": "Group ID *",
|
||||
"groupIdPlaceholder": "Required for MiniMax",
|
||||
"apiBase": "API Base",
|
||||
"model": "Model",
|
||||
"voiceId": "Voice ID"
|
||||
},
|
||||
"voice_label": "Voice",
|
||||
"voice_placeholder": "Select a voice…",
|
||||
"voice_refresh": "Refresh",
|
||||
"voice_preview": "Preview",
|
||||
"voice_stop_preview": "Stop",
|
||||
"voice_no_voices": "No voices available",
|
||||
"voice_loading": "Loading voices…",
|
||||
"voice_preview_error": "Preview failed — refreshing list",
|
||||
"model_label": "Model",
|
||||
"model_placeholder": "Default (tenant/system)"
|
||||
}
|
||||
@@ -206,6 +206,24 @@
|
||||
"skill_search": "Tìm kiếm skill khả dụng theo từ khóa hoặc mô tả để tìm khả năng phù hợp",
|
||||
"use_skill": "Kích hoạt skill để sử dụng khả năng chuyên biệt (đánh dấu tracing)",
|
||||
"team_tasks": "Xem, tạo, cập nhật và hoàn thành tác vụ trên bảng tác vụ nhóm"
|
||||
},
|
||||
"sttForm": {
|
||||
"title": "Cài đặt STT",
|
||||
"description": "Cấu hình provider chuyển giọng nói thành văn bản.",
|
||||
"providersLabel": "Provider",
|
||||
"elevenlabsSectionTitle": "ElevenLabs",
|
||||
"elevenlabsApiKeyLabel": "API Key",
|
||||
"elevenlabsDefaultLanguageLabel": "Ngôn ngữ mặc định",
|
||||
"proxySectionTitle": "Proxy",
|
||||
"proxyUrlLabel": "URL Proxy",
|
||||
"proxyApiKeyLabel": "API Key Proxy",
|
||||
"proxyTenantIdLabel": "Tenant ID Proxy",
|
||||
"whatsappEnabledLabel": "Bật STT cho WhatsApp",
|
||||
"whatsappPrivacyWarning": "Bật STT cho WhatsApp sẽ phá vỡ mã hóa đầu cuối cho tin nhắn thoại gửi đến agent này.",
|
||||
"providersRequiredError": "Phải chọn ít nhất một provider.",
|
||||
"cancel": "Hủy",
|
||||
"save": "Lưu",
|
||||
"saving": "Đang lưu..."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"title": "Chuyển văn bản thành giọng nói",
|
||||
"description": "Cấu hình provider TTS và cài đặt tự động",
|
||||
"save": "Lưu",
|
||||
"saving": "Đang lưu...",
|
||||
"saveChanges": "Lưu thay đổi",
|
||||
"status": {
|
||||
"title": "Trạng thái",
|
||||
"configured": "Đã cấu hình",
|
||||
"disabled": "Đã tắt",
|
||||
"noProvider": "Chưa cấu hình provider TTS",
|
||||
"activeProvider": "Provider đang hoạt động: {{provider}}, Tự động: {{auto}}"
|
||||
},
|
||||
"general": {
|
||||
"title": "Cài đặt chung",
|
||||
"primaryProvider": "Provider chính",
|
||||
"autoApplyMode": "Chế độ tự động phát",
|
||||
"replyMode": "Chế độ trả lời",
|
||||
"maxTextLength": "Độ dài text tối đa",
|
||||
"timeout": "Thời gian chờ (ms)"
|
||||
},
|
||||
"providers": {
|
||||
"none": "Không có (Tắt)",
|
||||
"openai": "OpenAI",
|
||||
"elevenlabs": "ElevenLabs",
|
||||
"edge": "Edge (Miễn phí)",
|
||||
"minimax": "MiniMax"
|
||||
},
|
||||
"autoModes": {
|
||||
"off": "Tắt",
|
||||
"offDesc": "Agent có thể dùng công cụ TTS thủ công",
|
||||
"always": "Luôn luôn",
|
||||
"alwaysDesc": "Tất cả phản hồi đều có âm thanh",
|
||||
"inbound": "Đầu vào",
|
||||
"inboundDesc": "Chỉ khi người dùng gửi giọng nói/âm thanh",
|
||||
"tagged": "Đánh dấu",
|
||||
"taggedDesc": "Chỉ khi phản hồi chứa thẻ [[tts]]"
|
||||
},
|
||||
"replyModes": {
|
||||
"final": "Chỉ phản hồi cuối",
|
||||
"finalDesc": "Chỉ phản hồi cuối cùng",
|
||||
"all": "Tất cả",
|
||||
"allDesc": "Tất cả phản hồi bao gồm công cụ/khối"
|
||||
},
|
||||
"providerSettings": "Cài đặt {{provider}}",
|
||||
"openai": {
|
||||
"apiKey": "API Key",
|
||||
"apiBase": "API Base URL",
|
||||
"model": "Model",
|
||||
"voice": "Giọng nói"
|
||||
},
|
||||
"elevenlabs": {
|
||||
"apiKey": "API Key",
|
||||
"baseUrl": "Base URL",
|
||||
"voiceId": "Voice ID",
|
||||
"modelId": "Model ID"
|
||||
},
|
||||
"edge": {
|
||||
"voice": "Giọng nói",
|
||||
"speechRate": "Tốc độ nói",
|
||||
"hint": "Edge TTS miễn phí, không cần API key. Cài đặt: pip install edge-tts"
|
||||
},
|
||||
"minimax": {
|
||||
"apiKey": "API Key",
|
||||
"groupId": "Group ID *",
|
||||
"groupIdPlaceholder": "Bắt buộc cho MiniMax",
|
||||
"apiBase": "API Base",
|
||||
"model": "Model",
|
||||
"voiceId": "Voice ID"
|
||||
},
|
||||
"voice_label": "Giọng đọc",
|
||||
"voice_placeholder": "Chọn giọng đọc…",
|
||||
"voice_refresh": "Làm mới",
|
||||
"voice_preview": "Nghe thử",
|
||||
"voice_stop_preview": "Dừng",
|
||||
"voice_no_voices": "Chưa có giọng đọc",
|
||||
"voice_loading": "Đang tải giọng đọc…",
|
||||
"voice_preview_error": "Không nghe thử được — đang làm mới",
|
||||
"model_label": "Mô hình",
|
||||
"model_placeholder": "Mặc định (tenant/hệ thống)"
|
||||
}
|
||||
@@ -142,6 +142,24 @@
|
||||
"skill_search": "按关键字或描述搜索可用Skill以找到相关能力",
|
||||
"use_skill": "激活Skill以使用其专业能力(追踪标记)",
|
||||
"team_tasks": "查看、创建、更新和完成团队任务板上的任务"
|
||||
},
|
||||
"sttForm": {
|
||||
"title": "STT 设置",
|
||||
"description": "配置语音转文字 Provider 以转录语音消息。",
|
||||
"providersLabel": "Provider",
|
||||
"elevenlabsSectionTitle": "ElevenLabs",
|
||||
"elevenlabsApiKeyLabel": "API Key",
|
||||
"elevenlabsDefaultLanguageLabel": "默认语言",
|
||||
"proxySectionTitle": "代理",
|
||||
"proxyUrlLabel": "代理 URL",
|
||||
"proxyApiKeyLabel": "代理 API Key",
|
||||
"proxyTenantIdLabel": "代理 Tenant ID",
|
||||
"whatsappEnabledLabel": "为 WhatsApp 启用 STT",
|
||||
"whatsappPrivacyWarning": "为 WhatsApp 启用 STT 将破坏发送给此 Agent 的语音消息的端对端加密。",
|
||||
"providersRequiredError": "必须至少选择一个 Provider。",
|
||||
"cancel": "取消",
|
||||
"save": "保存",
|
||||
"saving": "保存中..."
|
||||
}
|
||||
},
|
||||
"custom": {
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"title": "语音合成",
|
||||
"description": "配置 TTS Provider和自动应用设置",
|
||||
"save": "保存",
|
||||
"saving": "保存中...",
|
||||
"saveChanges": "保存更改",
|
||||
"status": {
|
||||
"title": "状态",
|
||||
"configured": "已配置",
|
||||
"disabled": "已禁用",
|
||||
"noProvider": "未配置 TTS Provider",
|
||||
"activeProvider": "主要Provider:{{provider}},自动:{{auto}}"
|
||||
},
|
||||
"general": {
|
||||
"title": "常规设置",
|
||||
"primaryProvider": "主要Provider",
|
||||
"autoApplyMode": "自动应用模式",
|
||||
"replyMode": "回复模式",
|
||||
"maxTextLength": "最大文本长度",
|
||||
"timeout": "超时(毫秒)"
|
||||
},
|
||||
"providers": {
|
||||
"none": "无(已禁用)",
|
||||
"openai": "OpenAI",
|
||||
"elevenlabs": "ElevenLabs",
|
||||
"edge": "Edge(免费)",
|
||||
"minimax": "MiniMax"
|
||||
},
|
||||
"autoModes": {
|
||||
"off": "关闭",
|
||||
"offDesc": "Agent可手动使用 TTS 工具",
|
||||
"always": "始终",
|
||||
"alwaysDesc": "所有回复均生成音频",
|
||||
"inbound": "入站",
|
||||
"inboundDesc": "仅当用户发送语音/音频时",
|
||||
"tagged": "标记",
|
||||
"taggedDesc": "仅当回复包含 [[tts]] 标签时"
|
||||
},
|
||||
"replyModes": {
|
||||
"final": "仅最终回复",
|
||||
"finalDesc": "仅最终回复",
|
||||
"all": "全部",
|
||||
"allDesc": "包括工具/块在内的所有回复"
|
||||
},
|
||||
"providerSettings": "{{provider}} 设置",
|
||||
"openai": {
|
||||
"apiKey": "API Key",
|
||||
"apiBase": "API Base URL",
|
||||
"model": "模型",
|
||||
"voice": "语音"
|
||||
},
|
||||
"elevenlabs": {
|
||||
"apiKey": "API Key",
|
||||
"baseUrl": "Base URL",
|
||||
"voiceId": "Voice ID",
|
||||
"modelId": "Model ID"
|
||||
},
|
||||
"edge": {
|
||||
"voice": "语音",
|
||||
"speechRate": "语速",
|
||||
"hint": "Edge TTS 免费且无需 API Key。安装方式:pip install edge-tts"
|
||||
},
|
||||
"minimax": {
|
||||
"apiKey": "API Key",
|
||||
"groupId": "Group ID *",
|
||||
"groupIdPlaceholder": "MiniMax 必填",
|
||||
"apiBase": "API Base",
|
||||
"model": "模型",
|
||||
"voiceId": "Voice ID"
|
||||
},
|
||||
"voice_label": "声音",
|
||||
"voice_placeholder": "选择声音…",
|
||||
"voice_refresh": "刷新",
|
||||
"voice_preview": "试听",
|
||||
"voice_stop_preview": "停止",
|
||||
"voice_no_voices": "暂无声音",
|
||||
"voice_loading": "加载声音中…",
|
||||
"voice_preview_error": "试听失败 — 正在刷新",
|
||||
"model_label": "模型",
|
||||
"model_placeholder": "默认(租户/系统)"
|
||||
}
|
||||
Reference in new issue
Block a user