feat(app): i18n (#48)

This commit is contained in:
paisley
2026-02-11 15:34:53 +08:00
committed by GitHub
Unverified
parent 505a64438e
commit 6e09a69f4f
40 changed files with 3227 additions and 808 deletions

88
src/i18n/index.ts Normal file
View File

@@ -0,0 +1,88 @@
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
// EN
import enCommon from './locales/en/common.json';
import enSettings from './locales/en/settings.json';
import enDashboard from './locales/en/dashboard.json';
import enChat from './locales/en/chat.json';
import enChannels from './locales/en/channels.json';
import enSkills from './locales/en/skills.json';
import enCron from './locales/en/cron.json';
import enSetup from './locales/en/setup.json';
// ZH
import zhCommon from './locales/zh/common.json';
import zhSettings from './locales/zh/settings.json';
import zhDashboard from './locales/zh/dashboard.json';
import zhChat from './locales/zh/chat.json';
import zhChannels from './locales/zh/channels.json';
import zhSkills from './locales/zh/skills.json';
import zhCron from './locales/zh/cron.json';
import zhSetup from './locales/zh/setup.json';
// JA
import jaCommon from './locales/ja/common.json';
import jaSettings from './locales/ja/settings.json';
import jaDashboard from './locales/ja/dashboard.json';
import jaChat from './locales/ja/chat.json';
import jaChannels from './locales/ja/channels.json';
import jaSkills from './locales/ja/skills.json';
import jaCron from './locales/ja/cron.json';
import jaSetup from './locales/ja/setup.json';
export const SUPPORTED_LANGUAGES = [
{ code: 'en', label: 'English' },
{ code: 'zh', label: '中文' },
{ code: 'ja', label: '日本語' },
] as const;
export type LanguageCode = (typeof SUPPORTED_LANGUAGES)[number]['code'];
const resources = {
en: {
common: enCommon,
settings: enSettings,
dashboard: enDashboard,
chat: enChat,
channels: enChannels,
skills: enSkills,
cron: enCron,
setup: enSetup,
},
zh: {
common: zhCommon,
settings: zhSettings,
dashboard: zhDashboard,
chat: zhChat,
channels: zhChannels,
skills: zhSkills,
cron: zhCron,
setup: zhSetup,
},
ja: {
common: jaCommon,
settings: jaSettings,
dashboard: jaDashboard,
chat: jaChat,
channels: jaChannels,
skills: jaSkills,
cron: jaCron,
setup: jaSetup,
},
};
i18n
.use(initReactI18next)
.init({
resources,
lng: 'en', // will be overridden by settings store
fallbackLng: 'en',
defaultNS: 'common',
ns: ['common', 'settings', 'dashboard', 'chat', 'channels', 'skills', 'cron', 'setup'],
interpolation: {
escapeValue: false, // React already escapes
},
});
export default i18n;

View File

@@ -0,0 +1,263 @@
{
"title": "Messaging Channels",
"subtitle": "Manage your messaging channels and connections",
"refresh": "Refresh",
"addChannel": "Add Channel",
"stats": {
"total": "Total Channels",
"connected": "Connected",
"disconnected": "Disconnected"
},
"gatewayWarning": "Gateway service is not running. Channels cannot connect.",
"available": "Available Channels",
"availableDesc": "Connect a new channel",
"showAll": "Show All",
"pluginBadge": "Plugin",
"toast": {
"whatsappConnected": "WhatsApp connected successfully",
"whatsappFailed": "WhatsApp connection failed: {{error}}",
"channelSaved": "Channel {{name}} saved",
"channelConnecting": "Connecting to {{name}}...",
"restartManual": "Please restart the gateway manually",
"configFailed": "Configuration failed: {{error}}"
},
"dialog": {
"updateTitle": "Update {{name}}",
"configureTitle": "Configure {{name}}",
"addTitle": "Add Channel",
"existingDesc": "Update your existing configuration",
"selectDesc": "Select a channel type to configure",
"qrCode": "QRCode",
"token": "Token",
"scanQR": "Scan this QR code with {{name}}",
"refreshCode": "Refresh Code",
"loadingConfig": "Loading configuration...",
"existingHint": "You have an existing configuration for this channel",
"howToConnect": "How to connect",
"viewDocs": "View Documentation",
"channelName": "Channel Name",
"channelNamePlaceholder": "My {{name}}",
"credentialsVerified": "Credentials Verified",
"validationFailed": "Validation Failed",
"warnings": "Warnings",
"back": "Back",
"validating": "Validating...",
"validateConfig": "Validate Configuration",
"generatingQR": "Generating QR...",
"validatingAndSaving": "Validating & Saving...",
"generateQRCode": "Generate QR Code",
"updateAndReconnect": "Update & Reconnect",
"saveAndConnect": "Save & Connect",
"envVar": "Environment Variable: {{var}}"
},
"meta": {
"telegram": {
"description": "Connect Telegram using a bot token from @BotFather",
"docsUrl": "https://docs.openclaw.ai/channels/telegram",
"fields": {
"botToken": {
"label": "Bot Token",
"placeholder": "123456:ABC-DEF..."
},
"allowedUsers": {
"label": "Allowed User IDs",
"placeholder": "e.g. 123456789, 987654321",
"description": "Comma separated list of User IDs allowed to use the bot. Required for security."
}
},
"instructions": [
"Open Telegram and search for @BotFather",
"Send /newbot and follow the instructions",
"Copy the bot token provided",
"Paste the token below",
"Get your User ID from @userinfobot and paste it below"
]
},
"discord": {
"description": "Connect Discord using a bot token from Developer Portal",
"docsUrl": "https://docs.openclaw.ai/channels/discord#how-to-create-your-own-bot",
"fields": {
"token": {
"label": "Bot Token",
"placeholder": "Your Discord bot token"
},
"guildId": {
"label": "Guild/Server ID",
"placeholder": "e.g., 123456789012345678",
"description": "Limit bot to a specific server. Right-click server → Copy Server ID."
},
"channelId": {
"label": "Channel ID (optional)",
"placeholder": "e.g., 123456789012345678",
"description": "Limit bot to a specific channel. Right-click channel → Copy Channel ID."
}
},
"instructions": [
"Go to Discord Developer Portal → Applications → New Application",
"In Bot section: Add Bot, then copy the Bot Token",
"Enable Message Content Intent + Server Members Intent in Bot → Privileged Gateway Intents",
"In OAuth2 → URL Generator: select \"bot\" + \"applications.commands\", add message permissions",
"Invite the bot to your server using the generated URL",
"Paste the bot token below"
]
},
"whatsapp": {
"description": "Connect WhatsApp by scanning a QR code (no phone number required)",
"docsUrl": "https://docs.openclaw.ai/channels/whatsapp",
"instructions": [
"Open WhatsApp on your phone",
"Go to Settings > Linked Devices > Link a Device",
"Scan the QR code shown below",
"The system will automatically identify your phone number"
]
},
"signal": {
"description": "Connect Signal using signal-cli",
"docsUrl": "https://docs.openclaw.ai/channels/signal",
"fields": {
"phoneNumber": {
"label": "Phone Number",
"placeholder": "+1234567890"
}
},
"instructions": [
"Install signal-cli on your system",
"Register or link your phone number",
"Enter your phone number below"
]
},
"feishu": {
"description": "Connect Feishu/Lark bot via WebSocket",
"docsUrl": "https://docs.openclaw.ai/channels/feishu#step-1-create-a-feishu-app",
"fields": {
"appId": {
"label": "App ID",
"placeholder": "cli_xxxxxx"
},
"appSecret": {
"label": "App Secret",
"placeholder": "Your app secret"
}
},
"instructions": [
"Go to Feishu Open Platform",
"Create a new application",
"Get App ID and App Secret",
"Configure event subscription"
]
},
"imessage": {
"description": "Connect iMessage via BlueBubbles (macOS)",
"docsUrl": "https://docs.openclaw.ai/channels/bluebubbles",
"fields": {
"serverUrl": {
"label": "BlueBubbles Server URL",
"placeholder": "http://localhost:1234"
},
"password": {
"label": "Server Password",
"placeholder": "Your server password"
}
},
"instructions": [
"Install BlueBubbles server on your Mac",
"Note the server URL and password",
"Enter the connection details below"
]
},
"matrix": {
"description": "Connect to Matrix protocol",
"docsUrl": "https://docs.openclaw.ai/channels/matrix",
"fields": {
"homeserver": {
"label": "Homeserver URL",
"placeholder": "https://matrix.org"
},
"accessToken": {
"label": "Access Token",
"placeholder": "Your access token"
}
},
"instructions": [
"Create a Matrix account or use existing",
"Get an access token from your client",
"Enter the homeserver and token below"
]
},
"line": {
"description": "Connect LINE Messaging API",
"docsUrl": "https://docs.openclaw.ai/channels/line",
"fields": {
"channelAccessToken": {
"label": "Channel Access Token",
"placeholder": "Your LINE channel access token"
},
"channelSecret": {
"label": "Channel Secret",
"placeholder": "Your LINE channel secret"
}
},
"instructions": [
"Go to LINE Developers Console",
"Create a Messaging API channel",
"Get Channel Access Token and Secret"
]
},
"msteams": {
"description": "Connect Microsoft Teams via Bot Framework",
"docsUrl": "https://docs.openclaw.ai/channels/msteams",
"fields": {
"appId": {
"label": "App ID",
"placeholder": "Your Microsoft App ID"
},
"appPassword": {
"label": "App Password",
"placeholder": "Your Microsoft App Password"
}
},
"instructions": [
"Go to Azure Portal",
"Register a new Bot application",
"Get App ID and create a password",
"Configure Teams channel"
]
},
"googlechat": {
"description": "Connect Google Chat via webhook",
"docsUrl": "https://docs.openclaw.ai/channels/googlechat",
"fields": {
"serviceAccountKey": {
"label": "Service Account JSON Path",
"placeholder": "/path/to/service-account.json"
}
},
"instructions": [
"Create a Google Cloud project",
"Enable Google Chat API",
"Create a service account",
"Download the JSON key file"
]
},
"mattermost": {
"description": "Connect Mattermost via Bot API",
"docsUrl": "https://docs.openclaw.ai/channels/mattermost",
"fields": {
"serverUrl": {
"label": "Server URL",
"placeholder": "https://your-mattermost.com"
},
"botToken": {
"label": "Bot Access Token",
"placeholder": "Your bot access token"
}
},
"instructions": [
"Go to Mattermost Integrations",
"Create a new Bot Account",
"Copy the access token"
]
}
},
"viewDocs": "View Documentation"
}

View File

@@ -0,0 +1,13 @@
{
"gatewayNotRunning": "Gateway Not Running",
"gatewayRequired": "The OpenClaw Gateway needs to be running to use chat. It will start automatically, or you can start it from Settings.",
"welcome": {
"title": "ClawX Chat",
"subtitle": "Your AI assistant is ready. Start a conversation below.",
"askQuestions": "Ask Questions",
"askQuestionsDesc": "Get answers on any topic",
"creativeTasks": "Creative Tasks",
"creativeTasksDesc": "Writing, brainstorming, ideas"
},
"noLogs": "(No logs available yet)"
}

View File

@@ -0,0 +1,51 @@
{
"sidebar": {
"chat": "Chat",
"cronTasks": "Cron Tasks",
"skills": "Skills",
"channels": "Channels",
"dashboard": "Dashboard",
"settings": "Settings",
"devConsole": "Developer Console"
},
"actions": {
"save": "Save",
"cancel": "Cancel",
"delete": "Delete",
"edit": "Edit",
"refresh": "Refresh",
"close": "Close",
"copy": "Copy",
"search": "Search",
"confirm": "Confirm",
"dismiss": "Dismiss",
"load": "Load",
"install": "Install",
"uninstall": "Uninstall",
"enable": "Enable",
"disable": "Disable",
"back": "Back",
"next": "Next",
"skip": "Skip",
"restart": "Restart"
},
"status": {
"running": "Running",
"stopped": "Stopped",
"error": "Error",
"connected": "Connected",
"disconnected": "Disconnected",
"enabled": "Enabled",
"disabled": "Disabled",
"active": "Active",
"paused": "Paused",
"configured": "Configured",
"loading": "Loading...",
"saving": "Saving..."
},
"gateway": {
"notRunning": "Gateway Not Running",
"notRunningDesc": "The OpenClaw Gateway needs to be running to use this feature. It will start automatically, or you can start it from Settings.",
"warning": "Gateway is not running."
}
}

View File

@@ -0,0 +1,69 @@
{
"title": "Scheduled Tasks",
"subtitle": "Automate AI workflows with scheduled tasks",
"newTask": "New Task",
"gatewayWarning": "Gateway is not running. Scheduled tasks cannot be managed without an active Gateway.",
"stats": {
"total": "Total Tasks",
"active": "Active",
"paused": "Paused",
"failed": "Failed"
},
"empty": {
"title": "No scheduled tasks",
"description": "Create scheduled tasks to automate AI workflows. Tasks can send messages, run queries, or perform actions at specified times.",
"create": "Create Your First Task"
},
"card": {
"runNow": "Run Now",
"deleteConfirm": "Are you sure you want to delete this task?",
"last": "Last",
"next": "Next"
},
"dialog": {
"createTitle": "Create Task",
"editTitle": "Edit Task",
"description": "Schedule an automated AI task",
"taskName": "Task Name",
"taskNamePlaceholder": "e.g., Morning briefing",
"message": "Message / Prompt",
"messagePlaceholder": "What should the AI do? e.g., Give me a summary of today's news and weather",
"schedule": "Schedule",
"cronPlaceholder": "Cron expression (e.g., 0 9 * * *)",
"usePresets": "Use presets",
"useCustomCron": "Use custom cron",
"targetChannel": "Target Channel",
"noChannels": "No channels available. Add a channel first.",
"discordChannelId": "Discord Channel ID",
"discordChannelIdPlaceholder": "e.g., 1438452657525100686",
"discordChannelIdDesc": "Right-click the Discord channel → Copy Channel ID",
"enableImmediately": "Enable immediately",
"enableImmediatelyDesc": "Start running this task after creation",
"saveChanges": "Save Changes"
},
"presets": {
"everyMinute": "Every minute",
"every5Min": "Every 5 minutes",
"every15Min": "Every 15 minutes",
"everyHour": "Every hour",
"daily9am": "Daily at 9am",
"daily6pm": "Daily at 6pm",
"weeklyMon": "Weekly (Mon 9am)",
"monthly1st": "Monthly (1st at 9am)"
},
"toast": {
"created": "Task created",
"updated": "Task updated",
"enabled": "Task enabled",
"paused": "Task paused",
"deleted": "Task deleted",
"triggered": "Task triggered successfully",
"failedUpdate": "Failed to update task",
"failedDelete": "Failed to delete task",
"nameRequired": "Please enter a task name",
"messageRequired": "Please enter a message",
"channelRequired": "Please select a channel",
"discordIdRequired": "Please enter a Discord Channel ID",
"scheduleRequired": "Please select or enter a schedule"
}
}

View File

@@ -0,0 +1,28 @@
{
"gateway": "Gateway",
"channels": "Channels",
"skills": "Skills",
"uptime": "Uptime",
"port": "Port: {{port}}",
"pid": "PID: {{pid}}",
"connectedOf": "{{connected}} of {{total}} connected",
"enabledOf": "{{enabled}} of {{total}} enabled",
"sinceRestart": "Since last restart",
"gatewayNotRunning": "Gateway not running",
"quickActions": {
"title": "Quick Actions",
"description": "Common tasks and shortcuts",
"addChannel": "Add Channel",
"browseSkills": "Browse Skills",
"openChat": "Open Chat",
"settings": "Settings",
"devConsole": "Dev Console"
},
"connectedChannels": "Connected Channels",
"noChannels": "No channels configured",
"addFirst": "Add your first channel",
"activeSkills": "Active Skills",
"noSkills": "No skills enabled",
"enableSome": "Enable some skills",
"more": "+{{count}} more"
}

View File

@@ -0,0 +1,134 @@
{
"title": "Settings",
"subtitle": "Configure your ClawX experience",
"appearance": {
"title": "Appearance",
"description": "Customize the look and feel",
"theme": "Theme",
"light": "Light",
"dark": "Dark",
"system": "System",
"language": "Language"
},
"aiProviders": {
"title": "AI Providers",
"description": "Configure your AI model providers and API keys",
"add": "Add Provider",
"empty": {
"title": "No providers configured",
"desc": "Add an AI provider to start using ClawX",
"cta": "Add Your First Provider"
},
"dialog": {
"title": "Add AI Provider",
"desc": "Configure a new AI model provider",
"displayName": "Display Name",
"apiKey": "API Key",
"apiKeyStored": "Your API key is stored locally on your machine.",
"baseUrl": "Base URL",
"modelId": "Model ID",
"cancel": "Cancel",
"change": "Change provider",
"add": "Add Provider",
"save": "Save",
"validate": "Validate"
},
"card": {
"default": "Default",
"configured": "Configured",
"noKey": "No API key set",
"setDefault": "Set as default",
"editKey": "Edit API key",
"delete": "Delete provider"
},
"toast": {
"added": "Provider added successfully",
"failedAdd": "Failed to add provider",
"deleted": "Provider deleted",
"failedDelete": "Failed to delete provider",
"defaultUpdated": "Default provider updated",
"failedDefault": "Failed to set default",
"updated": "Provider updated",
"failedUpdate": "Failed to update provider",
"invalidKey": "Invalid API key",
"modelRequired": "Model ID is required"
}
},
"gateway": {
"title": "Gateway",
"description": "OpenClaw Gateway settings",
"status": "Status",
"port": "Port",
"logs": "Logs",
"appLogs": "Application Logs",
"openFolder": "Open Folder",
"autoStart": "Auto-start Gateway",
"autoStartDesc": "Start Gateway when ClawX launches"
},
"updates": {
"title": "Updates",
"description": "Keep ClawX up to date",
"autoCheck": "Auto-check for updates",
"autoCheckDesc": "Check for updates on startup",
"autoDownload": "Auto-download updates",
"autoDownloadDesc": "Download updates in the background",
"status": {
"checking": "Checking for updates...",
"downloading": "Downloading update...",
"available": "Update available: v{{version}}",
"downloaded": "Ready to install: v{{version}}",
"failed": "Update check failed",
"latest": "You have the latest version",
"check": "Check for updates to get the latest features"
},
"action": {
"checking": "Checking...",
"downloading": "Downloading...",
"download": "Download Update",
"install": "Install & Restart",
"retry": "Retry",
"check": "Check for Updates"
},
"currentVersion": "Current Version",
"whatsNew": "What's New:",
"errorDetails": "Error Details:",
"help": "Updates are downloaded in the background and installed when you restart the app."
},
"advanced": {
"title": "Advanced",
"description": "Power-user options",
"devMode": "Developer Mode",
"devModeDesc": "Show developer tools and shortcuts"
},
"developer": {
"title": "Developer",
"description": "Advanced options for developers",
"console": "OpenClaw Console",
"consoleDesc": "Access the native OpenClaw management interface",
"openConsole": "Open Developer Console",
"consoleNote": "Opens the Control UI with gateway token injected",
"gatewayToken": "Gateway Token",
"gatewayTokenDesc": "Paste this into Control UI settings if prompted",
"tokenUnavailable": "Token unavailable",
"tokenCopied": "Gateway token copied",
"cli": "OpenClaw CLI",
"cliDesc": "Copy a command to run OpenClaw without modifying PATH.",
"cliPowershell": "PowerShell command.",
"cmdUnavailable": "Command unavailable",
"cmdCopied": "CLI command copied",
"installCmd": "Install \"openclaw\" Command",
"installCmdDesc": "Installs ~/.local/bin/openclaw (no admin required)",
"installTitle": "Install OpenClaw Command",
"installMessage": "Install the \"openclaw\" command?",
"installDetail": "This will create ~/.local/bin/openclaw. Ensure ~/.local/bin is on your PATH if you want to run it globally."
},
"about": {
"title": "About",
"appName": "ClawX",
"tagline": "Graphical AI Assistant",
"basedOn": "Based on OpenClaw",
"version": "Version {{version}}",
"docs": "Documentation",
"github": "GitHub"
}
}

View File

@@ -0,0 +1,119 @@
{
"steps": {
"welcome": {
"title": "Welcome to ClawX",
"description": "Your AI assistant is ready to be configured"
},
"runtime": {
"title": "Environment Check",
"description": "Verifying system requirements"
},
"provider": {
"title": "AI Provider",
"description": "Configure your AI service"
},
"channel": {
"title": "Connect a Channel",
"description": "Connect a messaging platform (optional)"
},
"installing": {
"title": "Setting Up",
"description": "Installing essential components"
},
"complete": {
"title": "All Set!",
"description": "ClawX is ready to use"
}
},
"welcome": {
"title": "Welcome to ClawX",
"description": "ClawX is a graphical interface for OpenClaw, making it easy to use AI assistants across your favorite messaging platforms.",
"features": {
"noCommand": "Zero command-line required",
"modernUI": "Modern, beautiful interface",
"bundles": "Pre-installed skill bundles",
"crossPlatform": "Cross-platform support"
}
},
"runtime": {
"title": "Checking Environment",
"viewLogs": "View Logs",
"recheck": "Re-check",
"nodejs": "Node.js Runtime",
"openclaw": "OpenClaw Package",
"gateway": "Gateway Service",
"startGateway": "Start Gateway",
"status": {
"checking": "Checking...",
"success": "Node.js is available",
"error": "Failed",
"gatewayRunning": "Running on port {{port}}",
"packageReady": "OpenClaw package ready"
},
"issue": {
"title": "Environment issue detected",
"desc": "Please ensure OpenClaw is properly installed. Check the logs for details."
},
"logs": {
"title": "Application Logs",
"openFolder": "Open Log Folder",
"close": "Close",
"noLogs": "(No logs available yet)"
}
},
"provider": {
"label": "Model Provider",
"selectPlaceholder": "Select a provider...",
"baseUrl": "Base URL",
"modelId": "Model ID",
"modelIdDesc": "The model identifier from your provider (e.g. deepseek-ai/DeepSeek-V3)",
"apiKey": "API Key",
"save": "Save",
"validateSave": "Validate & Save",
"valid": "Provider configured successfully",
"invalid": "Invalid API key",
"storedLocally": "Your API key is stored locally on your machine."
},
"channel": {
"title": "Connect a Messaging Channel",
"subtitle": "Choose a platform to connect your AI assistant to. You can add more channels later in Settings.",
"configure": "Configure {{name}}",
"howTo": "How to connect:",
"viewDocs": "View docs",
"validationError": "Validation failed",
"connected": "{{name}} Connected",
"connectedDesc": "Your channel has been configured. It will connect when the Gateway starts.",
"configureAnother": "Configure another channel"
},
"installing": {
"title": "Installing Essential Components",
"subtitle": "Setting up the tools needed to power your AI assistant",
"progress": "Progress",
"status": {
"pending": "Pending",
"installing": "Installing...",
"installed": "Installed",
"failed": "Failed"
},
"error": "Setup Error:",
"restart": "Try restarting the app",
"wait": "This may take a few moments...",
"skip": "Skip this step"
},
"complete": {
"title": "Setup Complete!",
"subtitle": "ClawX is configured and ready to use. You can now start chatting with your AI assistant.",
"provider": "AI Provider",
"components": "Components",
"gateway": "Gateway",
"running": "Running",
"footer": "You can customize skills and connect channels in Settings"
},
"nav": {
"next": "Next",
"back": "Back",
"skipStep": "Skip this step",
"skipSetup": "Skip Setup",
"getStarted": "Get Started"
}
}

View File

@@ -0,0 +1,69 @@
{
"title": "Skills",
"subtitle": "Browse and manage AI capabilities",
"refresh": "Refresh",
"openFolder": "Open Skills Folder",
"gatewayWarning": "Gateway is not running. Skills cannot be loaded without an active Gateway.",
"tabs": {
"installed": "Installed",
"marketplace": "Marketplace"
},
"filter": {
"all": "All ({{count}})",
"builtIn": "Built-in ({{count}})",
"marketplace": "Marketplace ({{count}})"
},
"search": "Search skills...",
"searchMarketplace": "Search marketplace...",
"searchButton": "Search",
"noSkills": "No skills found",
"noSkillsSearch": "Try a different search term",
"noSkillsAvailable": "No skills available",
"detail": {
"info": "Information",
"config": "Configuration",
"description": "Description",
"version": "Version",
"author": "Author",
"source": "Source",
"coreSystem": "Core System",
"bundled": "Bundled",
"userInstalled": "User Installed",
"enabled": "Enabled",
"disabled": "Disabled",
"apiKey": "API Key",
"apiKeyPlaceholder": "Enter API Key (optional)",
"apiKeyDesc": "The primary API key for this skill. Leave blank if not required or configured elsewhere.",
"envVars": "Environment Variables",
"addVariable": "Add Variable",
"noEnvVars": "No environment variables configured.",
"keyPlaceholder": "KEY (e.g. BASE_URL)",
"valuePlaceholder": "VALUE",
"envNote": "Note: Rows with empty keys will be automatically removed during save.",
"saving": "Saving...",
"saveConfig": "Save Configuration",
"configSaved": "Configuration saved",
"openManual": "Open Manual",
"configurable": "Configurable"
},
"toast": {
"enabled": "Skill enabled",
"disabled": "Skill disabled",
"installed": "Skill installed and enabled",
"uninstalled": "Skill uninstalled successfully",
"openedEditor": "Opened in editor",
"failedEditor": "Failed to open editor",
"failedSave": "Failed to save configuration",
"failedOpenFolder": "Failed to open skills folder",
"failedInstall": "Failed to install",
"failedUninstall": "Failed to uninstall"
},
"marketplace": {
"title": "Marketplace",
"securityNote": "Click skill card to view its documentation and security information on ClawHub before installation.",
"searching": "Searching ClawHub...",
"noResults": "No skills found matching your search.",
"emptyPrompt": "Search for new skills to expand your capabilities.",
"searchError": "ClawHub search failed. Check your connection or installation."
}
}

View File

@@ -0,0 +1,252 @@
{
"title": "メッセージングチャンネル",
"subtitle": "メッセージングチャンネルと接続を管理",
"refresh": "更新",
"addChannel": "チャンネルを追加",
"stats": {
"total": "全チャンネル",
"connected": "接続済み",
"disconnected": "未接続"
},
"gatewayWarning": "ゲートウェイサービスが実行されていないため、チャンネルに接続できません。",
"available": "利用可能なチャンネル",
"availableDesc": "新しいチャンネルを接続",
"showAll": "すべて表示",
"pluginBadge": "プラグイン",
"toast": {
"whatsappConnected": "WhatsApp が正常に接続されました",
"whatsappFailed": "WhatsApp 接続に失敗しました: {{error}}",
"channelSaved": "チャンネル {{name}} が保存されました",
"channelConnecting": "{{name}} に接続中...",
"restartManual": "ゲートウェイを手動で再起動してください",
"configFailed": "設定に失敗しました: {{error}}"
},
"dialog": {
"updateTitle": "{{name}} を更新",
"configureTitle": "{{name}} を設定",
"addTitle": "チャンネルを追加",
"existingDesc": "既存の設定を更新します",
"selectDesc": "設定するチャンネルタイプを選択してください",
"qrCode": "QRコード",
"token": "トークン",
"scanQR": "{{name}} でこのQRコードをスキャンしてください",
"refreshCode": "コードを更新",
"loadingConfig": "設定を読み込み中...",
"existingHint": "このチャンネルの設定はすでに存在します",
"howToConnect": "接続方法",
"viewDocs": "ドキュメントを表示",
"channelName": "チャンネル名",
"channelNamePlaceholder": "マイ {{name}}",
"credentialsVerified": "認証情報が確認されました",
"validationFailed": "検証に失敗しました",
"warnings": "警告",
"back": "戻る",
"validating": "検証中...",
"validateConfig": "設定を検証",
"generatingQR": "QRコードを生成中...",
"validatingAndSaving": "検証して保存中...",
"generateQRCode": "QRコードを生成",
"updateAndReconnect": "更新して再接続",
"saveAndConnect": "保存して接続",
"envVar": "環境変数: {{var}}"
},
"meta": {
"telegram": {
"description": "@BotFather からのボットトークンを使用して Telegram に接続します",
"fields": {
"botToken": {
"label": "ボットトークン",
"placeholder": "123456:ABC-DEF..."
},
"allowedUsers": {
"label": "許可されたユーザーID",
"placeholder": "例: 123456789, 987654321",
"description": "ボットの使用を許可するユーザーIDのリストカンマ区切り。セキュリティのため必須です。"
}
},
"instructions": [
"Telegramを開き、@BotFatherを検索します",
"/newbot を送信し、指示に従います",
"提供されたボットトークンをコピーします",
"トークンを以下に貼り付けます",
"@userinfobot からユーザーIDを取得し、以下に貼り付けます"
]
},
"discord": {
"description": "Developer Portal からのボットトークンを使用して Discord に接続します",
"fields": {
"token": {
"label": "ボットトークン",
"placeholder": "Discord ボットトークン"
},
"guildId": {
"label": "サーバーID",
"placeholder": "例: 123456789012345678",
"description": "ボットを特定のサーバーに制限します。サーバーを右クリック → サーバーIDをコピー。"
},
"channelId": {
"label": "チャンネルID (任意)",
"placeholder": "例: 123456789012345678",
"description": "ボットを特定のチャンネルに制限します。チャンネルを右クリック → チャンネルIDをコピー。"
}
},
"instructions": [
"Discord Developer Portal → Applications → New Application に移動します",
"Bot セクションで: Add Bot をクリックし、Bot Token をコピーします",
"Bot → Privileged Gateway Intents で Message Content Intent と Server Members Intent を有効にします",
"OAuth2 → URL Generator で: \"bot\" + \"applications.commands\" を選択し、メッセージ権限を追加します",
"生成された URL を使用してボットをサーバーに招待します",
"以下にボットトークンを貼り付けます"
]
},
"whatsapp": {
"description": "QRコードをスキャンして WhatsApp に接続します(電話番号は不要です)",
"instructions": [
"携帯電話で WhatsApp を開きます",
"設定 > リンクされたデバイス > デバイスをリンク に移動します",
"以下に表示されるQRコードをスキャンします",
"システムが自動的に電話番号を識別します"
]
},
"signal": {
"description": "signal-cli を使用して Signal に接続します",
"fields": {
"phoneNumber": {
"label": "電話番号",
"placeholder": "+1234567890"
}
},
"instructions": [
"システムに signal-cli をインストールします",
"電話番号を登録またはリンクします",
"以下に電話番号を入力します"
]
},
"feishu": {
"description": "WebSocket 経由で Feishu/Lark ボットに接続します",
"fields": {
"appId": {
"label": "App ID",
"placeholder": "cli_xxxxxx"
},
"appSecret": {
"label": "App Secret",
"placeholder": "アプリのシークレット"
}
},
"instructions": [
"Feishu Open Platform に移動します",
"新しいアプリケーションを作成します",
"App ID と App Secret を取得します",
"イベント購読を設定します"
]
},
"imessage": {
"description": "BlueBubbles (macOS) 経由で iMessage に接続します",
"fields": {
"serverUrl": {
"label": "BlueBubbles サーバーURL",
"placeholder": "http://localhost:1234"
},
"password": {
"label": "サーバーパスワード",
"placeholder": "サーバーのパスワード"
}
},
"instructions": [
"Mac に BlueBubbles サーバーをインストールします",
"サーバーURLとパスワードをメモします",
"以下に接続詳細を入力します"
]
},
"matrix": {
"description": "Matrix プロトコルに接続します",
"fields": {
"homeserver": {
"label": "ホームサーバー URL",
"placeholder": "https://matrix.org"
},
"accessToken": {
"label": "アクセストークン",
"placeholder": "アクセストークン"
}
},
"instructions": [
"Matrix アカウントを作成するか、既存のものを使用します",
"クライアントからアクセストークンを取得します",
"以下にホームサーバーとトークンを入力します"
]
},
"line": {
"description": "LINE Messaging API に接続します",
"fields": {
"channelAccessToken": {
"label": "チャンネルアクセストークン",
"placeholder": "LINE チャンネルアクセストークン"
},
"channelSecret": {
"label": "チャンネルシークレット",
"placeholder": "LINE チャンネルシークレット"
}
},
"instructions": [
"LINE Developers Console に移動します",
"Messaging API チャンネルを作成します",
"チャンネルアクセストークンとシークレットを取得します"
]
},
"msteams": {
"description": "Bot Framework 経由で Microsoft Teams に接続します",
"fields": {
"appId": {
"label": "App ID",
"placeholder": "Microsoft App ID"
},
"appPassword": {
"label": "App Password",
"placeholder": "Microsoft App Password"
}
},
"instructions": [
"Azure Portal に移動します",
"新しい Bot アプリケーションを登録します",
"App ID を取得し、パスワードを作成します",
"Teams チャンネルを設定します"
]
},
"googlechat": {
"description": "Webhook 経由で Google Chat に接続します",
"fields": {
"serviceAccountKey": {
"label": "サービスアカウント JSON パス",
"placeholder": "/path/to/service-account.json"
}
},
"instructions": [
"Google Cloud プロジェクトを作成します",
"Google Chat API を有効にします",
"サービスアカウントを作成します",
"JSON キーファイルをダウンロードします"
]
},
"mattermost": {
"description": "Bot API 経由で Mattermost に接続します",
"fields": {
"serverUrl": {
"label": "サーバー URL",
"placeholder": "https://your-mattermost.com"
},
"botToken": {
"label": "ボットアクセストークン",
"placeholder": "ボットアクセストークン"
}
},
"instructions": [
"Mattermost Integrations に移動します",
"新しい Bot アカウントを作成します",
"アクセストークンをコピーします"
]
}
},
"viewDocs": "ドキュメントを表示"
}

View File

@@ -0,0 +1,13 @@
{
"gatewayNotRunning": "ゲートウェイが停止中",
"gatewayRequired": "チャットを使用するには OpenClaw ゲートウェイが実行されている必要があります。自動的に起動するか、設定から起動できます。",
"welcome": {
"title": "ClawX チャット",
"subtitle": "AI アシスタントの準備ができました。下の入力欄から会話を始めましょう。",
"askQuestions": "質問する",
"askQuestionsDesc": "あらゆるトピックについて回答を得る",
"creativeTasks": "クリエイティブタスク",
"creativeTasksDesc": "ライティング、ブレスト、アイデア"
},
"noLogs": "(ログはまだありません)"
}

View File

@@ -0,0 +1,51 @@
{
"sidebar": {
"chat": "チャット",
"cronTasks": "定期タスク",
"skills": "スキル",
"channels": "チャンネル",
"dashboard": "ダッシュボード",
"settings": "設定",
"devConsole": "開発者コンソール"
},
"actions": {
"save": "保存",
"cancel": "キャンセル",
"delete": "削除",
"edit": "編集",
"refresh": "更新",
"close": "閉じる",
"copy": "コピー",
"search": "検索",
"confirm": "確認",
"dismiss": "閉じる",
"load": "読み込み",
"install": "インストール",
"uninstall": "アンインストール",
"enable": "有効にする",
"disable": "無効にする",
"back": "戻る",
"next": "次へ",
"skip": "スキップ",
"restart": "再起動"
},
"status": {
"running": "実行中",
"stopped": "停止",
"error": "エラー",
"connected": "接続済み",
"disconnected": "切断",
"enabled": "有効",
"disabled": "無効",
"active": "アクティブ",
"paused": "一時停止",
"configured": "設定済み",
"loading": "読み込み中...",
"saving": "保存中..."
},
"gateway": {
"notRunning": "ゲートウェイが停止中",
"notRunningDesc": "この機能を使用するには OpenClaw ゲートウェイが実行されている必要があります。自動的に起動するか、設定から起動できます。",
"warning": "ゲートウェイが停止中です。"
}
}

View File

@@ -0,0 +1,69 @@
{
"title": "定期タスク",
"subtitle": "定期タスクでAIワークフローを自動化",
"newTask": "新規タスク",
"gatewayWarning": "ゲートウェイが稼働していません。アクティブなゲートウェイがないと定期タスクを管理できません。",
"stats": {
"total": "タスク合計",
"active": "有効",
"paused": "停止中",
"failed": "失敗"
},
"empty": {
"title": "定期タスクがありません",
"description": "定期タスクを作成してAIワークフローを自動化します。指定した時間にメッセージ送信、クエリ実行、アクション実行が可能です。",
"create": "最初のタスクを作成"
},
"card": {
"runNow": "今すぐ実行",
"deleteConfirm": "このタスクを削除してもよろしいですか?",
"last": "前回",
"next": "次回"
},
"dialog": {
"createTitle": "タスク作成",
"editTitle": "タスク編集",
"description": "自動化AIタスクをスケジュール",
"taskName": "タスク名",
"taskNamePlaceholder": "例:朝のブリーフィング",
"message": "メッセージ / プロンプト",
"messagePlaceholder": "AIに何をさせますか 例:今日のニュースと天気のまとめを作成",
"schedule": "スケジュール",
"cronPlaceholder": "Cron式0 9 * * *",
"usePresets": "プリセットを使用",
"useCustomCron": "カスタムCronを使用",
"targetChannel": "ターゲットチャンネル",
"noChannels": "利用可能なチャンネルがありません。先にチャンネルを追加してください。",
"discordChannelId": "DiscordチャンネルID",
"discordChannelIdPlaceholder": "例1438452657525100686",
"discordChannelIdDesc": "Discordチャンネルを右クリック → チャンネルIDをコピー",
"enableImmediately": "すぐに有効化",
"enableImmediatelyDesc": "作成後すぐにこのタスクを実行開始",
"saveChanges": "変更を保存"
},
"presets": {
"everyMinute": "毎分",
"every5Min": "5分ごと",
"every15Min": "15分ごと",
"everyHour": "1時間ごと",
"daily9am": "毎日 午前9時",
"daily6pm": "毎日 午後6時",
"weeklyMon": "毎週 (月曜 午前9時)",
"monthly1st": "毎月 (1日 午前9時)"
},
"toast": {
"created": "タスクを作成しました",
"updated": "タスクを更新しました",
"enabled": "タスクを有効にしました",
"paused": "タスクを停止しました",
"deleted": "タスクを削除しました",
"triggered": "タスクを正常にトリガーしました",
"failedUpdate": "タスクの更新に失敗しました",
"failedDelete": "タスクの削除に失敗しました",
"nameRequired": "タスク名を入力してください",
"messageRequired": "メッセージを入力してください",
"channelRequired": "チャンネルを選択してください",
"discordIdRequired": "DiscordチャンネルIDを入力してください",
"scheduleRequired": "スケジュールを選択または入力してください"
}
}

View File

@@ -0,0 +1,28 @@
{
"gateway": "ゲートウェイ",
"channels": "チャンネル",
"skills": "スキル",
"uptime": "稼働時間",
"port": "ポート: {{port}}",
"pid": "PID: {{pid}}",
"connectedOf": "{{total}} 中 {{connected}} 接続済み",
"enabledOf": "{{total}} 中 {{enabled}} 有効",
"sinceRestart": "前回の再起動から",
"gatewayNotRunning": "ゲートウェイが停止中",
"quickActions": {
"title": "クイックアクション",
"description": "よく使うタスクとショートカット",
"addChannel": "チャンネル追加",
"browseSkills": "スキルを探す",
"openChat": "チャットを開く",
"settings": "設定",
"devConsole": "開発者コンソール"
},
"connectedChannels": "接続済みチャンネル",
"noChannels": "チャンネルが設定されていません",
"addFirst": "最初のチャンネルを追加",
"activeSkills": "アクティブなスキル",
"noSkills": "有効なスキルがありません",
"enableSome": "スキルを有効にする",
"more": "+{{count}} 件"
}

View File

@@ -0,0 +1,113 @@
{
"title": "設定",
"subtitle": "ClawX の体験をカスタマイズ",
"appearance": {
"title": "外観",
"description": "外観とスタイルをカスタマイズ",
"theme": "テーマ",
"light": "ライト",
"dark": "ダーク",
"system": "システム",
"language": "言語"
},
"aiProviders": {
"title": "AI プロバイダー",
"description": "AI モデルプロバイダーと API キーを設定",
"add": "プロバイダーを追加",
"empty": {
"title": "プロバイダーが構成されていません",
"desc": "ClawX の使用を開始するには AI プロバイダーを追加してください",
"cta": "最初のプロバイダーを追加"
},
"dialog": {
"title": "AI プロバイダーを追加",
"desc": "新しい AI モデルプロバイダーを構成",
"displayName": "表示名",
"apiKey": "API キー",
"apiKeyStored": "API キーはローカルマシンに保存されます。",
"baseUrl": "ベース URL",
"modelId": "モデル ID",
"cancel": "キャンセル",
"change": "プロバイダーを変更",
"add": "プロバイダーを追加",
"save": "保存",
"validate": "検証"
},
"card": {
"default": "デフォルト",
"configured": "構成済み",
"noKey": "API キー未設定",
"setDefault": "デフォルトに設定",
"editKey": "API キーを編集",
"delete": "プロバイダーを削除"
},
"toast": {
"added": "プロバイダーが正常に追加されました",
"failedAdd": "プロバイダーの追加に失敗しました",
"deleted": "プロバイダーが削除されました",
"failedDelete": "プロバイダーの削除に失敗しました",
"defaultUpdated": "デフォルトプロバイダーが更新されました",
"failedDefault": "デフォルトの設定に失敗しました",
"updated": "プロバイダーが更新されました",
"failedUpdate": "プロバイダーの更新に失敗しました",
"invalidKey": "無効な API キー",
"modelRequired": "モデル ID が必要です"
}
},
"gateway": {
"title": "ゲートウェイ",
"description": "OpenClaw ゲートウェイ設定",
"status": "ステータス",
"port": "ポート",
"logs": "ログ",
"appLogs": "アプリケーションログ",
"openFolder": "フォルダーを開く",
"autoStart": "ゲートウェイ自動起動",
"autoStartDesc": "ClawX 起動時にゲートウェイを自動起動"
},
"updates": {
"title": "アップデート",
"description": "ClawX を最新に保つ",
"autoCheck": "自動更新チェック",
"autoCheckDesc": "起動時に更新を確認",
"autoDownload": "自動ダウンロード",
"autoDownloadDesc": "バックグラウンドで更新をダウンロード"
},
"advanced": {
"title": "詳細設定",
"description": "上級ユーザー向けオプション",
"devMode": "開発者モード",
"devModeDesc": "開発者ツールとショートカットを表示"
},
"developer": {
"title": "開発者",
"description": "開発者向け詳細オプション",
"console": "OpenClaw コンソール",
"consoleDesc": "ネイティブ OpenClaw 管理インターフェースにアクセス",
"openConsole": "開発者コンソールを開く",
"consoleNote": "ゲートウェイトークンを注入して Control UI を開きます",
"gatewayToken": "ゲートウェイトークン",
"gatewayTokenDesc": "Control UI の設定に求められた場合、これを貼り付けてください",
"tokenUnavailable": "トークンが利用できません",
"tokenCopied": "ゲートウェイトークンをコピーしました",
"cli": "OpenClaw CLI",
"cliDesc": "PATH を変更せずに OpenClaw を実行するコマンドをコピー。",
"cliPowershell": "PowerShell コマンド。",
"cmdUnavailable": "コマンドが利用できません",
"cmdCopied": "CLI コマンドをコピーしました",
"installCmd": "\"openclaw\" コマンドをインストール",
"installCmdDesc": "~/.local/bin/openclaw をインストール(管理者権限不要)",
"installTitle": "OpenClaw コマンドをインストール",
"installMessage": "\"openclaw\" コマンドをインストールしますか?",
"installDetail": "~/.local/bin/openclaw が作成されます。グローバルに実行するには ~/.local/bin が PATH に含まれていることを確認してください。"
},
"about": {
"title": "バージョン情報",
"appName": "ClawX",
"tagline": "グラフィカル AI アシスタント",
"basedOn": "OpenClaw ベース",
"version": "バージョン {{version}}",
"docs": "ドキュメント",
"github": "GitHub"
}
}

View File

@@ -0,0 +1,119 @@
{
"steps": {
"welcome": {
"title": "ClawXへようこそ",
"description": "AIアシスタントの設定準備が整いました"
},
"runtime": {
"title": "環境チェック",
"description": "システム要件を確認中"
},
"provider": {
"title": "AIプロバイダー",
"description": "AIサービスを構成"
},
"channel": {
"title": "チャンネル接続",
"description": "メッセージングプラットフォームを接続(オプション)"
},
"installing": {
"title": "セットアップ中",
"description": "必須コンポーネントをインストール中"
},
"complete": {
"title": "完了!",
"description": "ClawXを使用する準備が整いました"
}
},
"welcome": {
"title": "ClawXへようこそ",
"description": "ClawXはOpenClawのグラフィカルインターフェースで、お気に入りのメッセージングプラットフォームでAIアシスタントを簡単に使用できます。",
"features": {
"noCommand": "コマンドライン不要",
"modernUI": "モダンで美しいインターフェース",
"bundles": "プリインストールされたスキルバンドル",
"crossPlatform": "クロスプラットフォーム対応"
}
},
"runtime": {
"title": "環境をチェック中",
"viewLogs": "ログを表示",
"recheck": "再チェック",
"nodejs": "Node.js ランタイム",
"openclaw": "OpenClaw パッケージ",
"gateway": "ゲートウェイサービス",
"startGateway": "ゲートウェイを起動",
"status": {
"checking": "確認中...",
"success": "Node.js は利用可能です",
"error": "失敗",
"gatewayRunning": "ポート {{port}} で実行中",
"packageReady": "OpenClaw パッケージ準備完了"
},
"issue": {
"title": "環境の問題が検出されました",
"desc": "OpenClawが正しくインストールされていることを確認してください。詳細はログを確認してください。"
},
"logs": {
"title": "アプリケーションログ",
"openFolder": "ログフォルダを開く",
"close": "閉じる",
"noLogs": "(ログはまだありません)"
}
},
"provider": {
"label": "モデルプロバイダー",
"selectPlaceholder": "プロバイダーを選択...",
"baseUrl": "ベース URL",
"modelId": "モデル ID",
"modelIdDesc": "プロバイダーのモデル識別子deepseek-ai/DeepSeek-V3",
"apiKey": "API キー",
"save": "保存",
"validateSave": "検証して保存",
"valid": "プロバイダーが正常に構成されました",
"invalid": "無効な API キー",
"storedLocally": "API キーはローカルマシンに保存されます。"
},
"channel": {
"title": "メッセージングチャンネルを接続",
"subtitle": "AIアシスタントを接続するプラットフォームを選択してください。チャンネルは後で設定で追加できます。",
"configure": "{{name}} を構成",
"howTo": "接続方法:",
"viewDocs": "ドキュメントを表示",
"validationError": "検証に失敗しました",
"connected": "{{name}} 接続済み",
"connectedDesc": "チャンネルが構成されました。ゲートウェイ起動時に接続されます。",
"configureAnother": "別のチャンネルを構成"
},
"installing": {
"title": "必須コンポーネントをインストール中",
"subtitle": "AIアシスタントに必要なツールをセットアップしています",
"progress": "進捗",
"status": {
"pending": "待機中",
"installing": "インストール中...",
"installed": "インストール済み",
"failed": "失敗"
},
"error": "セットアップエラー:",
"restart": "アプリを再起動してください",
"wait": "これには少し時間がかかる場合があります...",
"skip": "この手順をスキップ"
},
"complete": {
"title": "セットアップ完了!",
"subtitle": "ClawXの構成が完了し、使用準備が整いました。AIアシスタントとのチャットを開始できます。",
"provider": "AI プロバイダー",
"components": "コンポーネント",
"gateway": "ゲートウェイ",
"running": "実行中",
"footer": "設定でスキルをカスタマイズしたり、チャンネルを接続したりできます"
},
"nav": {
"next": "次へ",
"back": "戻る",
"skipStep": "この手順をスキップ",
"skipSetup": "セットアップをスキップ",
"getStarted": "始める"
}
}

View File

@@ -0,0 +1,69 @@
{
"title": "スキル",
"subtitle": "AI機能の閲覧と管理",
"refresh": "更新",
"openFolder": "スキルフォルダを開く",
"gatewayWarning": "ゲートウェイが稼働していません。アクティブなゲートウェイがないとスキルを読み込めません。",
"tabs": {
"installed": "インストール済み",
"marketplace": "マーケットプレイス"
},
"filter": {
"all": "すべて ({{count}})",
"builtIn": "内蔵 ({{count}})",
"marketplace": "マーケットプレイス ({{count}})"
},
"search": "スキルを検索...",
"searchMarketplace": "マーケットプレイスを検索...",
"searchButton": "検索",
"noSkills": "スキルが見つかりません",
"noSkillsSearch": "別の検索語をお試しください",
"noSkillsAvailable": "利用可能なスキルがありません",
"detail": {
"info": "情報",
"config": "設定",
"description": "説明",
"version": "バージョン",
"author": "作者",
"source": "ソース",
"coreSystem": "コアシステム",
"bundled": "内蔵",
"userInstalled": "ユーザーインストール",
"enabled": "有効",
"disabled": "無効",
"apiKey": "APIキー",
"apiKeyPlaceholder": "APIキーを入力任意",
"apiKeyDesc": "このスキルの主要なAPIキーです。不要な場合または別の場所で設定している場合は空白のままにしてください。",
"envVars": "環境変数",
"addVariable": "変数を追加",
"noEnvVars": "環境変数が設定されていません。",
"keyPlaceholder": "キーBASE_URL",
"valuePlaceholder": "値",
"envNote": "注意:キーが空の行は保存時に自動的に削除されます。",
"saving": "保存中...",
"saveConfig": "設定を保存",
"configSaved": "設定を保存しました",
"openManual": "マニュアルを開く",
"configurable": "設定可能"
},
"toast": {
"enabled": "スキルを有効にしました",
"disabled": "スキルを無効にしました",
"installed": "スキルをインストールして有効にしました",
"uninstalled": "スキルのアンインストールに成功しました",
"openedEditor": "エディターで開きました",
"failedEditor": "エディターを開けませんでした",
"failedSave": "設定の保存に失敗しました",
"failedOpenFolder": "スキルフォルダを開けませんでした",
"failedInstall": "インストールに失敗しました",
"failedUninstall": "アンインストールに失敗しました"
},
"marketplace": {
"title": "マーケットプレイス",
"securityNote": "インストール前にスキルカードをクリックして、ClawHubでドキュメントとセキュリティ情報を確認してください。",
"searching": "ClawHubを検索中...",
"noResults": "検索に一致するスキルが見つかりません。",
"emptyPrompt": "新しいスキルを検索して機能を拡張しましょう。",
"searchError": "ClawHub検索に失敗しました。接続またはインストールを確認してください。"
}
}

View File

@@ -0,0 +1,263 @@
{
"title": "消息频道",
"subtitle": "管理您的消息频道和连接",
"refresh": "刷新",
"addChannel": "添加频道",
"stats": {
"total": "频道总数",
"connected": "已连接",
"disconnected": "未连接"
},
"gatewayWarning": "网关服务未运行,频道无法连接。",
"available": "可用频道",
"availableDesc": "连接一个新的频道",
"showAll": "显示全部",
"pluginBadge": "插件",
"toast": {
"whatsappConnected": "WhatsApp 连接成功",
"whatsappFailed": "WhatsApp 连接失败: {{error}}",
"channelSaved": "频道 {{name}} 已保存",
"channelConnecting": "正在连接 {{name}}...",
"restartManual": "请手动重启网关",
"configFailed": "配置失败: {{error}}"
},
"dialog": {
"updateTitle": "更新 {{name}}",
"configureTitle": "配置 {{name}}",
"addTitle": "添加频道",
"existingDesc": "更新您现有的配置",
"selectDesc": "选择要配置的频道类型",
"qrCode": "二维码",
"token": "令牌",
"scanQR": "使用 {{name}} 扫描此二维码",
"refreshCode": "刷新代码",
"loadingConfig": "正在加载配置...",
"existingHint": "您已配置过此频道",
"howToConnect": "如何连接",
"viewDocs": "查看文档",
"channelName": "频道名称",
"channelNamePlaceholder": "我的 {{name}}",
"credentialsVerified": "凭证已验证",
"validationFailed": "验证失败",
"warnings": "警告",
"back": "返回",
"validating": "正在验证...",
"validateConfig": "验证配置",
"generatingQR": "正在生成二维码...",
"validatingAndSaving": "正在验证并保存...",
"generateQRCode": "生成二维码",
"updateAndReconnect": "更新并重新连接",
"saveAndConnect": "保存并连接",
"envVar": "环境变量: {{var}}"
},
"meta": {
"telegram": {
"description": "使用 @BotFather 提供的机器人令牌连接 Telegram",
"docsUrl": "https://docs.openclaw.ai/zh-CN/channels/telegram",
"fields": {
"botToken": {
"label": "机器人令牌",
"placeholder": "123456:ABC-DEF..."
},
"allowedUsers": {
"label": "允许的用户 ID",
"placeholder": "例如 123456789, 987654321",
"description": "允许使用机器人的用户 ID 列表(逗号分隔)。出于安全考虑,此项为必填。"
}
},
"instructions": [
"打开 Telegram 并搜索 @BotFather",
"发送 /newbot 并按照说明操作",
"复制提供的机器人令牌",
"在下方粘贴令牌",
"从 @userinfobot 获取您的用户 ID 并粘贴在下方"
]
},
"discord": {
"description": "使用开发者门户提供的机器人令牌连接 Discord",
"docsUrl": "https://docs.openclaw.ai/zh-CN/channels/discord#%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E4%BD%A0%E7%9A%84%E6%9C%BA%E5%99%A8%E4%BA%BA",
"fields": {
"token": {
"label": "机器人令牌",
"placeholder": "您的 Discord 机器人令牌"
},
"guildId": {
"label": "服务器 ID",
"placeholder": "例如 123456789012345678",
"description": "限制机器人仅在特定服务器工作。右键点击服务器 → 复制服务器 ID。"
},
"channelId": {
"label": "频道 ID (可选)",
"placeholder": "例如 123456789012345678",
"description": "限制机器人仅在特定频道工作。右键点击频道 → 复制频道 ID。"
}
},
"instructions": [
"前往 Discord 开发者门户 → Applications → New Application",
"在 Bot 部分:添加 Bot然后复制 Bot Token",
"在 Bot → Privileged Gateway Intents 中启用 Message Content Intent 和 Server Members Intent",
"在 OAuth2 → URL Generator选择 \"bot\" + \"applications.commands\",添加消息权限",
"使用生成的 URL 邀请机器人加入您的服务器",
"在下方粘贴机器人令牌"
]
},
"whatsapp": {
"description": "通过扫描二维码连接 WhatsApp无需手机号",
"docsUrl": "https://docs.openclaw.ai/zh-CN/channels/whatsapp",
"instructions": [
"在手机上打开 WhatsApp",
"前往 设置 > 已关联设备 >包含连接设备",
"扫描下方显示的二维码",
"系统将自动识别您的手机号"
]
},
"signal": {
"description": "使用 signal-cli 连接 Signal",
"docsUrl": "https://docs.openclaw.ai/zh-CN/channels/signal",
"fields": {
"phoneNumber": {
"label": "手机号码",
"placeholder": "+1234567890"
}
},
"instructions": [
"在您的系统上安装 signal-cli",
"注册或链接您的手机号码",
"在下方输入您的手机号码"
]
},
"feishu": {
"description": "通过 WebSocket 连接飞书/Lark 机器人",
"docsUrl": "https://docs.openclaw.ai/zh-CN/channels/feishu#%E7%AC%AC%E4%B8%80%E6%AD%A5%EF%BC%9A%E5%88%9B%E5%BB%BA%E9%A3%9E%E4%B9%A6%E5%BA%94%E7%94%A8",
"fields": {
"appId": {
"label": "应用 ID (App ID)",
"placeholder": "cli_xxxxxx"
},
"appSecret": {
"label": "应用密钥 (App Secret)",
"placeholder": "您的应用密钥"
}
},
"instructions": [
"前往飞书开放平台",
"创建一个新应用",
"获取 App ID 和 App Secret",
"配置事件订阅"
]
},
"imessage": {
"description": "通过 BlueBubbles (macOS) 连接 iMessage",
"docsUrl": "https://docs.openclaw.ai/zh-CN/channels/bluebubbles",
"fields": {
"serverUrl": {
"label": "BlueBubbles 服务器地址",
"placeholder": "http://localhost:1234"
},
"password": {
"label": "服务器密码",
"placeholder": "您的服务器密码"
}
},
"instructions": [
"在您的 Mac 上安装 BlueBubbles 服务器",
"记下服务器地址和密码",
"在下方输入连接详情"
]
},
"matrix": {
"description": "连接到 Matrix 协议",
"docsUrl": "https://docs.openclaw.ai/zh-CN/channels/matrix",
"fields": {
"homeserver": {
"label": "Homeserver 地址",
"placeholder": "https://matrix.org"
},
"accessToken": {
"label": "访问令牌 (Access Token)",
"placeholder": "您的访问令牌"
}
},
"instructions": [
"创建一个 Matrix 账户或使用现有账户",
"从您的客户端获取访问令牌",
"在下方输入 Homeserver 地址和令牌"
]
},
"line": {
"description": "连接 LINE Messaging API",
"docsUrl": "https://docs.openclaw.ai/channels/line",
"fields": {
"channelAccessToken": {
"label": "频道访问令牌",
"placeholder": "您的 LINE 频道访问令牌"
},
"channelSecret": {
"label": "频道密钥",
"placeholder": "您的 LINE 频道密钥"
}
},
"instructions": [
"前往 LINE 开发者控制台",
"创建一个 Messaging API 频道",
"获取频道访问令牌和密钥"
]
},
"msteams": {
"description": "通过 Bot Framework 连接 Microsoft Teams",
"docsUrl": "https://docs.openclaw.ai/channels/msteams",
"fields": {
"appId": {
"label": "应用 ID",
"placeholder": "您的 Microsoft 应用 ID"
},
"appPassword": {
"label": "应用密码",
"placeholder": "您的 Microsoft 应用密码"
}
},
"instructions": [
"前往 Azure 门户",
"注册一个新的 Bot 应用",
"获取应用 ID 并创建密码",
"配置 Teams 频道"
]
},
"googlechat": {
"description": "通过 Webhook 连接 Google Chat",
"docsUrl": "https://docs.openclaw.ai/channels/googlechat",
"fields": {
"serviceAccountKey": {
"label": "服务账号 JSON 路径",
"placeholder": "/path/to/service-account.json"
}
},
"instructions": [
"创建 Google Cloud 项目",
"启用 Google Chat API",
"创建服务账号",
"下载 JSON 密钥文件"
]
},
"mattermost": {
"description": "通过 Bot API 连接 Mattermost",
"docsUrl": "https://docs.openclaw.ai/channels/mattermost",
"fields": {
"serverUrl": {
"label": "服务器地址",
"placeholder": "https://your-mattermost.com"
},
"botToken": {
"label": "机器人访问令牌",
"placeholder": "您的机器人访问令牌"
}
},
"instructions": [
"前往 Mattermost 集成",
"创建一个新的 Bot 账户",
"复制访问令牌"
]
}
},
"viewDocs": "查看文档"
}

View File

@@ -0,0 +1,13 @@
{
"gatewayNotRunning": "网关未运行",
"gatewayRequired": "OpenClaw 网关需要运行才能使用聊天。它将自动启动,或者您可以从设置中启动。",
"welcome": {
"title": "ClawX 聊天",
"subtitle": "您的 AI 助手已就绪。在下方开始对话。",
"askQuestions": "提问",
"askQuestionsDesc": "获取任何话题的答案",
"creativeTasks": "创意任务",
"creativeTasksDesc": "写作、头脑风暴、创意"
},
"noLogs": "(暂无日志)"
}

View File

@@ -0,0 +1,51 @@
{
"sidebar": {
"chat": "聊天",
"cronTasks": "定时任务",
"skills": "技能",
"channels": "频道",
"dashboard": "仪表盘",
"settings": "设置",
"devConsole": "开发者控制台"
},
"actions": {
"save": "保存",
"cancel": "取消",
"delete": "删除",
"edit": "编辑",
"refresh": "刷新",
"close": "关闭",
"copy": "复制",
"search": "搜索",
"confirm": "确认",
"dismiss": "忽略",
"load": "加载",
"install": "安装",
"uninstall": "卸载",
"enable": "启用",
"disable": "禁用",
"back": "返回",
"next": "下一步",
"skip": "跳过",
"restart": "重启"
},
"status": {
"running": "运行中",
"stopped": "已停止",
"error": "错误",
"connected": "已连接",
"disconnected": "已断开",
"enabled": "已启用",
"disabled": "已禁用",
"active": "活跃",
"paused": "已暂停",
"configured": "已配置",
"loading": "加载中...",
"saving": "保存中..."
},
"gateway": {
"notRunning": "网关未运行",
"notRunningDesc": "OpenClaw 网关需要运行才能使用此功能。它将自动启动,或者您可以从设置中启动。",
"warning": "网关未运行。"
}
}

View File

@@ -0,0 +1,69 @@
{
"title": "定时任务",
"subtitle": "通过定时任务自动化 AI 工作流",
"newTask": "新建任务",
"gatewayWarning": "网关未运行。没有活跃的网关,无法管理定时任务。",
"stats": {
"total": "任务总数",
"active": "运行中",
"paused": "已暂停",
"failed": "失败"
},
"empty": {
"title": "暂无定时任务",
"description": "创建定时任务以自动化 AI 工作流。任务可以在指定时间发送消息、运行查询或执行操作。",
"create": "创建第一个任务"
},
"card": {
"runNow": "立即运行",
"deleteConfirm": "确定要删除此任务吗?",
"last": "上次运行",
"next": "下次运行"
},
"dialog": {
"createTitle": "创建任务",
"editTitle": "编辑任务",
"description": "安排自动化的 AI 任务",
"taskName": "任务名称",
"taskNamePlaceholder": "例如:早间简报",
"message": "消息/提示词",
"messagePlaceholder": "AI 应该做什么?例如:给我一份今天的新闻和天气摘要",
"schedule": "调度计划",
"cronPlaceholder": "Cron 表达式 (例如0 9 * * *)",
"usePresets": "使用预设",
"useCustomCron": "使用自定义 Cron",
"targetChannel": "目标频道",
"noChannels": "无可用频道。请先添加频道。",
"discordChannelId": "Discord 频道 ID",
"discordChannelIdPlaceholder": "例如1438452657525100686",
"discordChannelIdDesc": "右键点击 Discord 频道 → 复制频道 ID",
"enableImmediately": "立即启用",
"enableImmediatelyDesc": "创建后立即开始运行此任务",
"saveChanges": "保存更改"
},
"presets": {
"everyMinute": "每分钟",
"every5Min": "每 5 分钟",
"every15Min": "每 15 分钟",
"everyHour": "每小时",
"daily9am": "每天上午 9 点",
"daily6pm": "每天下午 6 点",
"weeklyMon": "每周 (周一上午 9 点)",
"monthly1st": "每月 (1号上午 9 点)"
},
"toast": {
"created": "任务已创建",
"updated": "任务已更新",
"enabled": "任务已启用",
"paused": "任务已暂停",
"deleted": "任务已删除",
"triggered": "任务已成功触发",
"failedUpdate": "更新任务失败",
"failedDelete": "删除任务失败",
"nameRequired": "请输入任务名称",
"messageRequired": "请输入消息",
"channelRequired": "请选择频道",
"discordIdRequired": "请输入 Discord 频道 ID",
"scheduleRequired": "请选择或输入调度计划"
}
}

View File

@@ -0,0 +1,28 @@
{
"gateway": "网关",
"channels": "频道",
"skills": "技能",
"uptime": "运行时间",
"port": "端口: {{port}}",
"pid": "PID: {{pid}}",
"connectedOf": "{{connected}} / {{total}} 已连接",
"enabledOf": "{{enabled}} / {{total}} 已启用",
"sinceRestart": "自上次重启",
"gatewayNotRunning": "网关未运行",
"quickActions": {
"title": "快捷操作",
"description": "常用任务和快捷方式",
"addChannel": "添加频道",
"browseSkills": "浏览技能",
"openChat": "打开聊天",
"settings": "设置",
"devConsole": "开发者控制台"
},
"connectedChannels": "已连接频道",
"noChannels": "未配置频道",
"addFirst": "添加你的第一个频道",
"activeSkills": "已启用技能",
"noSkills": "未启用技能",
"enableSome": "启用一些技能",
"more": "+{{count}} 更多"
}

View File

@@ -0,0 +1,134 @@
{
"title": "设置",
"subtitle": "配置您的 ClawX 体验",
"appearance": {
"title": "外观",
"description": "自定义外观和风格",
"theme": "主题",
"light": "浅色",
"dark": "深色",
"system": "跟随系统",
"language": "语言"
},
"aiProviders": {
"title": "AI 模型提供商",
"description": "配置 AI 模型提供商和 API 密钥",
"add": "添加提供商",
"empty": {
"title": "未配置提供商",
"desc": "添加 AI 提供商以开始使用 ClawX",
"cta": "添加您的第一个提供商"
},
"dialog": {
"title": "添加 AI 提供商",
"desc": "配置新的 AI 模型提供商",
"displayName": "显示名称",
"apiKey": "API 密钥",
"apiKeyStored": "您的 API 密钥存储在本地机器上。",
"baseUrl": "基础 URL",
"modelId": "模型 ID",
"cancel": "取消",
"change": "更换提供商",
"add": "添加提供商",
"save": "保存",
"validate": "验证"
},
"card": {
"default": "默认",
"configured": "已配置",
"noKey": "未设置 API 密钥",
"setDefault": "设为默认",
"editKey": "编辑 API 密钥",
"delete": "删除提供商"
},
"toast": {
"added": "提供商添加成功",
"failedAdd": "添加提供商失败",
"deleted": "提供商已删除",
"failedDelete": "删除提供商失败",
"defaultUpdated": "默认提供商已更新",
"failedDefault": "设置默认失败",
"updated": "提供商已更新",
"failedUpdate": "更新提供商失败",
"invalidKey": "无效的 API 密钥",
"modelRequired": "需要模型 ID"
}
},
"gateway": {
"title": "网关",
"description": "OpenClaw 网关设置",
"status": "状态",
"port": "端口",
"logs": "日志",
"appLogs": "应用日志",
"openFolder": "打开文件夹",
"autoStart": "自动启动网关",
"autoStartDesc": "ClawX 启动时自动启动网关"
},
"updates": {
"title": "更新",
"description": "保持 ClawX 最新",
"autoCheck": "自动检查更新",
"autoCheckDesc": "启动时检查更新",
"autoDownload": "自动下载更新",
"autoDownloadDesc": "在后台下载更新",
"status": {
"checking": "正在检查更新...",
"downloading": "正在下载更新...",
"available": "可用更新v{{version}}",
"downloaded": "准备安装v{{version}}",
"failed": "检查更新失败",
"latest": "您已拥有最新版本",
"check": "检查更新以获取最新功能"
},
"action": {
"checking": "检查中...",
"downloading": "下载中...",
"download": "下载更新",
"install": "安装并重启",
"retry": "重试",
"check": "检查更新"
},
"currentVersion": "当前版本",
"whatsNew": "更新内容:",
"errorDetails": "错误详情:",
"help": "更新将在后台下载,并在您重启应用时安装。"
},
"advanced": {
"title": "高级",
"description": "高级选项",
"devMode": "开发者模式",
"devModeDesc": "显示开发者工具和快捷方式"
},
"developer": {
"title": "开发者",
"description": "开发者高级选项",
"console": "OpenClaw 控制台",
"consoleDesc": "访问原生 OpenClaw 管理界面",
"openConsole": "打开开发者控制台",
"consoleNote": "使用注入的网关令牌打开控制台",
"gatewayToken": "网关令牌",
"gatewayTokenDesc": "如果需要,将此粘贴到控制台设置中",
"tokenUnavailable": "令牌不可用",
"tokenCopied": "网关令牌已复制",
"cli": "OpenClaw CLI",
"cliDesc": "复制命令以运行 OpenClaw无需修改 PATH。",
"cliPowershell": "PowerShell 命令。",
"cmdUnavailable": "命令不可用",
"cmdCopied": "CLI 命令已复制",
"installCmd": "安装 \"openclaw\" 命令",
"installCmdDesc": "安装 ~/.local/bin/openclaw无需管理员权限",
"installTitle": "安装 OpenClaw 命令",
"installMessage": "安装 \"openclaw\" 命令?",
"installDetail": "这将创建 ~/.local/bin/openclaw。确保 ~/.local/bin 在您的 PATH 中。"
},
"about": {
"title": "关于",
"appName": "ClawX",
"tagline": "图形化 AI 助手",
"basedOn": "基于 OpenClaw",
"version": "版本 {{version}}",
"docs": "文档",
"github": "GitHub"
}
}

View File

@@ -0,0 +1,119 @@
{
"steps": {
"welcome": {
"title": "欢迎使用 ClawX",
"description": "您的 AI 助手已准备好进行配置"
},
"runtime": {
"title": "环境检查",
"description": "验证系统要求"
},
"provider": {
"title": "AI 提供商",
"description": "配置您的 AI 服务"
},
"channel": {
"title": "连接渠道",
"description": "连接消息平台(可选)"
},
"installing": {
"title": "设置中",
"description": "安装必要组件"
},
"complete": {
"title": "准备就绪!",
"description": "ClawX 已准备好使用"
}
},
"welcome": {
"title": "欢迎使用 ClawX",
"description": "ClawX 是 OpenClaw 的图形界面,让您可以在喜爱的消息平台上轻松使用 AI 助手。",
"features": {
"noCommand": "无需命令行",
"modernUI": "现代美观的界面",
"bundles": "预装技能包",
"crossPlatform": "跨平台支持"
}
},
"runtime": {
"title": "检查环境",
"viewLogs": "查看日志",
"recheck": "重新检查",
"nodejs": "Node.js 运行时",
"openclaw": "OpenClaw 包",
"gateway": "网关服务",
"startGateway": "启动网关",
"status": {
"checking": "检查中...",
"success": "Node.js 可用",
"error": "失败",
"gatewayRunning": "运行在端口 {{port}}",
"packageReady": "OpenClaw 包已就绪"
},
"issue": {
"title": "检测到环境问题",
"desc": "请确保 OpenClaw 已正确安装。查看日志以获取详情。"
},
"logs": {
"title": "应用程序日志",
"openFolder": "打开日志文件夹",
"close": "关闭",
"noLogs": "(暂无日志)"
}
},
"provider": {
"label": "模型提供商",
"selectPlaceholder": "选择提供商...",
"baseUrl": "基础 URL",
"modelId": "模型 ID",
"modelIdDesc": "提供商的模型标识符(例如 deepseek-ai/DeepSeek-V3",
"apiKey": "API 密钥",
"save": "保存",
"validateSave": "验证并保存",
"valid": "提供商配置成功",
"invalid": "无效的 API 密钥",
"storedLocally": "您的 API 密钥存储在本地机器上。"
},
"channel": {
"title": "连接消息渠道",
"subtitle": "选择要连接 AI 助手的平台。您可以稍后在设置中添加更多渠道。",
"configure": "配置 {{name}}",
"howTo": "如何连接:",
"viewDocs": "查看文档",
"validationError": "验证失败",
"connected": "{{name}} 已连接",
"connectedDesc": "您的渠道已配置。将在网关启动时连接。",
"configureAnother": "配置另一个渠道"
},
"installing": {
"title": "安装必要组件",
"subtitle": "正在设置 AI 助手所需的工具",
"progress": "进度",
"status": {
"pending": "等待中",
"installing": "安装中...",
"installed": "已安装",
"failed": "失败"
},
"error": "设置错误:",
"restart": "尝试重启应用",
"wait": "这可能需要一点时间...",
"skip": "跳过此步骤"
},
"complete": {
"title": "设置完成!",
"subtitle": "ClawX 已配置并准备就绪。您现在可以开始与您的 AI 助手聊天了。",
"provider": "AI 提供商",
"components": "组件",
"gateway": "网关",
"running": "运行中",
"footer": "您可以在设置中自定义技能并连接渠道"
},
"nav": {
"next": "下一步",
"back": "返回",
"skipStep": "跳过此步骤",
"skipSetup": "跳过设置",
"getStarted": "开始使用"
}
}

View File

@@ -0,0 +1,69 @@
{
"title": "技能",
"subtitle": "浏览和管理 AI 能力",
"refresh": "刷新",
"openFolder": "打开技能文件夹",
"gatewayWarning": "网关未运行。没有活跃的网关,无法加载技能。",
"tabs": {
"installed": "已安装",
"marketplace": "市场"
},
"filter": {
"all": "全部 ({{count}})",
"builtIn": "内置 ({{count}})",
"marketplace": "市场 ({{count}})"
},
"search": "搜索技能...",
"searchMarketplace": "搜索市场...",
"searchButton": "搜索",
"noSkills": "未找到技能",
"noSkillsSearch": "尝试不同的搜索词",
"noSkillsAvailable": "暂无可用技能",
"detail": {
"info": "信息",
"config": "配置",
"description": "描述",
"version": "版本",
"author": "作者",
"source": "来源",
"coreSystem": "核心系统",
"bundled": "内置",
"userInstalled": "用户安装",
"enabled": "已启用",
"disabled": "已禁用",
"apiKey": "API 密钥",
"apiKeyPlaceholder": "输入 API 密钥(可选)",
"apiKeyDesc": "此技能的主要 API 密钥。如果不需要或在别处配置,请留空。",
"envVars": "环境变量",
"addVariable": "添加变量",
"noEnvVars": "未配置环境变量。",
"keyPlaceholder": "键名 (例如 BASE_URL)",
"valuePlaceholder": "值",
"envNote": "注意:键名为空的行将在保存时自动移除。",
"saving": "保存中...",
"saveConfig": "保存配置",
"configSaved": "配置已保存",
"openManual": "打开手册",
"configurable": "可配置"
},
"toast": {
"enabled": "技能已启用",
"disabled": "技能已禁用",
"installed": "技能已安装并启用",
"uninstalled": "技能已成功卸载",
"openedEditor": "已在编辑器中打开",
"failedEditor": "无法打开编辑器",
"failedSave": "保存配置失败",
"failedOpenFolder": "无法打开技能文件夹",
"failedInstall": "安装失败",
"failedUninstall": "卸载失败"
},
"marketplace": {
"title": "市场",
"securityNote": "安装前请点击技能卡片,在 ClawHub 上查看其文档和安全信息。",
"searching": "正在搜索 ClawHub...",
"noResults": "未找到匹配的技能。",
"emptyPrompt": "搜索新技能以扩展您的能力。",
"searchError": "ClawHub 搜索失败。请检查您的连接或安装。"
}
}