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

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."
}
}