feat: i18n 11 languages + website update + fix #139 #140 #141

i18n:
- Add 9 new locale files (ja/ko/de/es/fr/pt/ru/vi/zh-TW)
- Add multilingual README files for all 11 languages
- Add locale helper, index, and modular translation system
- Add translation generation scripts

Website (docs/index.html):
- Replace 公益AI接口 branding with 晴辰云AI接口
- Remove OpenClaw 独立安装包 promotion block
- Update SEO meta tags (description, keywords, OG, Twitter, JSON-LD)
- Add 11-language README links to footer
- Update 元宝派 link to new URL

Bug fixes:
- fix(cron): delivery format mode:'push' → mode:'announce', remove invalid 'to' field (fixes #141)
- fix(cron): allow single-channel users to select delivery channel
- fix(cron): preserve delivery field in job state for editing
- fix(models): add 'ollama' as recognized API type, prevent overwriting native ollama config (fixes #140)
- fix(models): skip /v1 append for ollama native API baseUrl
- fix(assistant): normalize 'google-generative-ai' consistently, add ollama hints
- fix(version): use CLI path classification for source detection on Windows (fixes #139)
- fix(version): default to 'official' instead of 'chinese' when source unknown
- fix(version): reorder npm global package check based on active CLI
This commit is contained in:
晴天
2026-03-24 22:31:11 +08:00
parent f8af3bea4a
commit 985d263dc6
261 changed files with 26760 additions and 175 deletions

View File

@@ -0,0 +1,47 @@
import { _ } from '../helper.js'
export default {
title: _('Agent 管理', 'Agents', '', 'Agent 管理', 'Agent 관리', 'Quản lý Agent', 'Gestión de Agentes', 'Gestão de Agentes', 'Управление агентами', 'Gestion des Agents', 'Agenten-Verwaltung'),
desc: _('创建和管理 OpenClaw Agent配置身份、模型和工作区', 'Create and manage OpenClaw Agents, configure identity, model and workspace', '建立和管理 OpenClaw Agent設定身份、模型和工作區', 'OpenClaw Agent の作成と管理、ID・モデル・ワークスペースの設定', 'OpenClaw Agent 생성 및 관리, ID·모델·워크스페이스 설정', 'Tạo và quản lý OpenClaw Agent', 'Crear y gestionar OpenClaw Agents', 'Criar e gerenciar OpenClaw Agents', 'Создание и управление агентами OpenClaw', 'Créer et gérer les Agents OpenClaw', 'OpenClaw-Agenten erstellen und verwalten'),
addAgent: _('+ 新建 Agent', '+ New Agent', '', '+ 新規 Agent', '+ 새 Agent', '+ Agent mới', '+ Nuevo Agent', '+ Novo Agent', '+ Новый агент', '+ Nouvel Agent', '+ Neuer Agent'),
noAgents: _('暂无 Agent', 'No agents', '暫無 Agent', 'Agent なし', 'Agent 없음', 'Không có Agent', 'Sin Agentes', 'Sem Agentes', 'Нет агентов', 'Aucun Agent', 'Keine Agenten'),
loadFailed: _('加载失败', 'Load failed', '載入失敗', '読み込み失敗', '로드 실패', 'Tải thất bại', 'Error al cargar', 'Falha ao carregar', 'Ошибка загрузки', 'Échec du chargement', 'Laden fehlgeschlagen'),
loadListFailed: _('加载 Agent 列表失败', 'Failed to load agent list', '載入 Agent 列表失敗', 'Agent リストの読み込みに失敗', 'Agent 목록 로드 실패'),
noDesc: _('无描述', 'No description', '無描述', '説明なし', '설명 없음'),
default: _('默认', 'Default', '預設', 'デフォルト', '기본', 'Mặc định', 'Predeterminado', 'Padrão', 'По умолчанию', 'Par défaut', 'Standard'),
backup: _('备份', 'Backup', '備份', 'バックアップ', '백업', 'Sao lưu', 'Respaldo', '', 'Резервная копия', 'Sauvegarde'),
edit: _('编辑', 'Edit', '編輯', '編集', '편집', 'Sửa', 'Editar', 'Editar', 'Редактировать', 'Modifier', 'Bearbeiten'),
delete: _('删除', 'Delete', '刪除', '削除', '삭제', 'Xóa', 'Eliminar', 'Excluir', 'Удалить', 'Supprimer', 'Löschen'),
labelName: _('名称:', 'Name:', '名稱:', '名前:', '이름:'),
labelModel: _('模型:', 'Model:', '', 'モデル:', '모델:'),
labelWorkspace: _('工作区:', 'Workspace:', '工作區:', 'ワークスペース:', '워크스페이스:'),
labelBindings: _('绑定渠道:', 'Bindings:', '綁定頻道:', 'バインドチャンネル:', '바인딩 채널:'),
notSet: _('未设置', 'Not set', '未設定', '未設定', '미설정', 'Chưa đặt', 'No configurado', 'Não definido', 'Не задано', 'Non défini', 'Nicht gesetzt'),
noBinding: _('未绑定渠道', 'No channel bound', '未綁定頻道', 'チャンネル未バインド', '채널 미바인딩'),
addModelsFirst: _('请先在模型配置页面添加模型', 'Please add models in the Models page first', '請先在模型設定頁面新增模型', '先にモデル設定ページでモデルを追加してください', '먼저 모델 설정 페이지에서 모델을 추가하세요'),
addTitle: _('新建 Agent', 'New Agent', '', '新規 Agent', '새 Agent', 'Agent mới', 'Nuevo Agent', 'Novo Agent', 'Новый агент', 'Nouvel Agent', 'Neuer Agent'),
agentId: _('Agent ID', 'Agent ID', '', '', '', '', '', '', 'ID агента', 'ID Agent', 'Agent-ID'),
agentIdPlaceholder: _('例如translator小写字母、数字、下划线、连字符', 'e.g. translator (lowercase, digits, underscore, hyphen)', '例如translator小写字母、數字、下劃線、連字符', '例: translator小文字、数字、アンダースコア、ハイフン', '예: translator (소문자, 숫자, 밑줄, 하이픈)'),
agentName: _('名称', 'Name', '名稱', '名前', '이름', 'Tên', 'Nombre', 'Nome', 'Имя', 'Nom'),
agentNamePlaceholder: _('例如:翻译助手', 'e.g. Translation Assistant', '', '例: 翻訳アシスタント', '예: 번역 도우미'),
agentEmoji: _('Emoji', 'Emoji'),
agentEmojiPlaceholder: _('例如:🌐(可选)', 'e.g. 🌐 (optional)', '例如:🌐(可選)', '例: 🌐(任意)', '예: 🌐 (선택)'),
agentModel: _('模型', 'Model', '', 'モデル', '모델', 'Mô hình', 'Modelo', 'Modelo', 'Модель', 'Modèle', 'Modell'),
agentWorkspace: _('工作区路径', 'Workspace Path', '工作區路徑', 'ワークスペースパス', '워크스페이스 경로'),
agentWorkspacePlaceholder: _('留空则自动创建(可选,绝对路径)', 'Leave empty to auto-create (optional, absolute path)', '留空則自動建立(可選,绝对路徑)', '空欄で自動作成(任意、絶対パス)', '비워두면 자동 생성 (선택, 절대 경로)'),
idRequired: _('请输入 Agent ID', 'Please enter an Agent ID', '請輸入 Agent ID', 'Agent ID を入力してください', 'Agent ID를 입력하세요'),
idInvalid: _('Agent ID 只能包含小写字母、数字、下划线和连字符', 'Agent ID can only contain lowercase letters, digits, underscores and hyphens', 'Agent ID 只能包含小写字母、數字、下劃線和連字符', 'Agent ID は小文字、数字、アンダースコア、ハイフンのみ使用可能です', 'Agent ID는 소문자, 숫자, 밑줄, 하이픈만 사용 가능합니다'),
created: _('Agent 已创建', 'Agent created', 'Agent 已建立', 'Agent 作成済み', 'Agent 생성됨', 'Agent đã tạo', 'Agent creado', 'Agent criado', 'Агент создан', 'Agent créé', 'Agent erstellt'),
createdNameFailed: _('Agent 已创建,但名称设置失败,可稍后编辑', 'Agent created, but name setting failed. You can edit it later.', 'Agent 已建立,但名稱設定失敗,可稍后編輯', 'Agent は作成されましたが名前の設定に失敗しました。後で編集できます。'),
createFailed: _('创建失败', 'Creation failed', '建立失敗', '作成失敗', '생성 실패', 'Tạo thất bại', 'Error al crear', 'Falha ao criar', 'Ошибка создания', 'Échec de la création', 'Erstellen fehlgeschlagen'),
editTitle: _('编辑 Agent — {id}', 'Edit Agent — {id}', '編輯 Agent — {id}', 'Agent 編集 — {id}', 'Agent 편집 — {id}', 'Sửa Agent — {id}', 'Editar Agent — {id}', 'Editar Agent — {id}', 'Редактировать агента — {id}', 'Modifier l\'Agent — {id}', 'Agent bearbeiten — {id}'),
workspaceReadonly: _('创建时指定,不可修改', 'Set at creation, cannot be changed', '建立時指定,不可修改', '作成時に設定、変更不可', '생성 시 설정, 변경 불가'),
updated: _('已更新', 'Updated', '', '更新済み', '업데이트됨', 'Đã cập nhật', 'Actualizado', 'Atualizado', 'Обновлено', 'Mis à jour', 'Aktualisiert'),
updateFailed: _('更新失败', 'Update failed', '更新失敗', '更新失敗', '업데이트 실패', 'Cập nhật thất bại', 'Error al actualizar', 'Falha ao atualizar', 'Ошибка обновления', 'Échec de la mise à jour', 'Aktualisierung fehlgeschlagen'),
confirmDelete: _('确定删除 Agent「{id}」?\n\n此操作将删除该 Agent 的所有数据和会话。', 'Delete Agent "{id}"?\n\nThis will delete all data and conversations for this agent.', '確定刪除 Agent「{id}」?\n\n此操作將刪除該 Agent 的所有資料和對話。', 'Agent「{id}」を削除しますか?\\n\\nこの Agent のすべてのデータと会話が削除されます。', 'Agent「{id}」를 삭제하시겠습니까?\\n\\n이 Agent의 모든 데이터와 대화가 삭제됩니다.'),
deleted: _('已删除', 'Deleted', '已刪除', '削除済み', '삭제됨', 'Đã xóa', 'Eliminado', 'Excluído', 'Удалён', 'Supprimé', 'Gelöscht'),
deleteFailed: _('删除失败', 'Delete failed', '刪除失敗', '削除失敗', '삭제 실패', 'Xóa thất bại', 'Error al eliminar', 'Falha ao excluir', 'Ошибка удаления', 'Échec de la suppression', 'Löschen fehlgeschlagen'),
backingUp: _('正在备份 Agent「{id}」...', 'Backing up Agent "{id}"...', '正在備份 Agent「{id}」...', 'Agent「{id}」をバックアップ中...', 'Agent「{id}」 백업 중...'),
backupDone: _('备份完成: {file}', 'Backup done: {file}', '備份完成: {file}', 'バックアップ完了: {file}', '백업 완료: {file}'),
backupFailed: _('备份失败', 'Backup failed', '備份失敗', 'バックアップ失敗', '백업 실패'),
}