chore(ui): refresh control ui locales

This commit is contained in:
github-actions[bot]
2026-07-20 07:32:05 +00:00
parent 248726fafd
commit e244854aad
61 changed files with 15921 additions and 3903 deletions
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:46:33.679Z",
"generatedAt": "2026-07-20T07:20:41.330Z",
"locale": "ar",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,5 +1,5 @@
{
"fallbacks": {},
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"version": 1
}
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:44:46.640Z",
"generatedAt": "2026-07-20T07:14:34.139Z",
"locale": "de",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:45:43.346Z",
"generatedAt": "2026-07-20T07:17:19.207Z",
"locale": "es",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:48:50.169Z",
"generatedAt": "2026-07-20T07:27:57.128Z",
"locale": "fa",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:46:02.687Z",
"generatedAt": "2026-07-20T07:17:40.780Z",
"locale": "fr",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:46:49.979Z",
"generatedAt": "2026-07-20T07:20:40.976Z",
"locale": "hi",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:47:49.213Z",
"generatedAt": "2026-07-20T07:23:42.833Z",
"locale": "id",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:46:47.686Z",
"generatedAt": "2026-07-20T07:20:43.234Z",
"locale": "it",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:45:48.202Z",
"generatedAt": "2026-07-20T07:17:32.368Z",
"locale": "ja-JP",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:45:40.686Z",
"generatedAt": "2026-07-20T07:17:34.622Z",
"locale": "ko",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:49:02.429Z",
"generatedAt": "2026-07-20T07:26:47.143Z",
"locale": "nl",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:47:46.954Z",
"generatedAt": "2026-07-20T07:23:53.176Z",
"locale": "pl",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:44:55.798Z",
"generatedAt": "2026-07-20T07:14:29.942Z",
"locale": "pt-BR",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:48:57.555Z",
"generatedAt": "2026-07-20T07:28:43.689Z",
"locale": "ru",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:47:56.866Z",
"generatedAt": "2026-07-20T07:25:48.514Z",
"locale": "th",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:46:57.779Z",
"generatedAt": "2026-07-20T07:20:52.513Z",
"locale": "tr",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:47:24.673Z",
"generatedAt": "2026-07-20T07:24:01.641Z",
"locale": "uk",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:48:30.232Z",
"generatedAt": "2026-07-20T07:26:52.234Z",
"locale": "vi",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:44:46.904Z",
"generatedAt": "2026-07-20T07:14:42.640Z",
"locale": "zh-CN",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,11 +1,11 @@
{
"fallbackKeys": [],
"generatedAt": "2026-07-17T12:44:49.112Z",
"generatedAt": "2026-07-20T07:14:56.784Z",
"locale": "zh-TW",
"model": "claude-opus-4-8",
"provider": "anthropic",
"sourceHash": "f0b32bc04c26f83d0a742a27c32c49b3eae20ab56cb4aa0fb93e1a6cbf023317",
"totalKeys": 3545,
"translatedKeys": 3545,
"sourceHash": "da19235a0fe56e1e4beac140b15e523fee903acb7a9421ac07da2d1a4dd7bf9f",
"totalKeys": 3765,
"translatedKeys": 3765,
"workflow": 1
}
+360
View File
File diff suppressed because it is too large Load Diff
+422 -190
View File
@@ -20,6 +20,8 @@ export const ar: TranslationMap = {
staleData: "يتم عرض بيانات غير محدّثة.",
reload: "إعادة التحميل",
reset: "إعادة تعيين",
restore: "استعادة",
undo: "تراجع",
probe: "فحص",
call: "اتصال",
confirm: "تأكيد",
@@ -87,6 +89,10 @@ export const ar: TranslationMap = {
logout: "تسجيل الخروج",
skipToMainContent: "تخطَّ إلى المحتوى الرئيسي",
},
optionCard: {
recommended: "موصى به",
skip: "تخطٍّ الآن",
},
nativeLinkMenu: {
label: "إجراءات الرابط",
openInline: "فتح في الشريط الجانبي",
@@ -217,6 +223,9 @@ export const ar: TranslationMap = {
whatsapp: {
title: "WhatsApp",
subtitle: "اربط WhatsApp Web وراقب سلامة الاتصال.",
loggedOut: "تم تسجيل الخروج.",
logoutNotCleared:
"لم يتم مسح أي جلسة WhatsApp مخزنة. قد تكون غير موجودة بالفعل، أو قد يتطلب دليل المصادقة الخاص بها تنظيفًا يدويًا.",
},
gatewayUrlConfirmation: {
title: "تغيير عنوان URL الخاص بـ Gateway",
@@ -270,6 +279,7 @@ export const ar: TranslationMap = {
genericSubtitle: "حدث خطأ ما أثناء تحميل هذه اللوحة.",
staleTitle: "يتوفر إصدار جديد",
staleSubtitle: "تم تحديث OpenClaw في الخلفية. أعد التحميل للحصول على أحدث لوحة.",
reloading: "جارٍ إعادة التحميل…",
retry: "إعادة المحاولة",
},
nodes: {
@@ -278,6 +288,8 @@ export const ar: TranslationMap = {
adminRequired: "يلزم الوصول كمسؤول لإنشاء رموز الإعداد.",
title: "OpenClaw للأجهزة المحمولة",
subtitle: "امسح رمز QR هذا في تطبيق الهاتف المحمول لتوصيل هاتف جديد.",
noApp: "ألا تملك التطبيق بعد؟",
getApps: "احصل على التطبيقات",
generating: "جارٍ إنشاء رمز إعداد آمن…",
accessTitle: "الوصول عبر الهاتف المحمول",
fullAccess: "وصول كامل (موصى به)",
@@ -466,11 +478,15 @@ export const ar: TranslationMap = {
agentChip: {
menuLabel: "قائمة الوكيل",
agents: "الوكلاء",
openChat: "الدردشة مع {name}",
offlineOpenSettings: "غير متصل — افتح الإعدادات",
switchAgent: "تبديل الوكيل",
working: "جارٍ العمل…",
ready: "جاهز للدردشة",
whatCanAgentDo: "ما الذي يمكن لـ {name} فعله؟",
help: "مساعدة",
getHelp: "الحصول على المساعدة",
getApps: "احصل على التطبيقات",
discord: "مجتمع Discord",
viewChangelog: "عرض سجل التغييرات",
agentSettings: "إعدادات الوكيل",
@@ -491,6 +507,7 @@ export const ar: TranslationMap = {
cloudWorker: "السحابة · {profile}",
cloudWorkerProvider: "موفّر عامل السحابة: {provider}",
cloudRequiresWorktree: "تتطلب عوامل السحابة شجرة عمل مُدارة",
cloudRequiresOpenClawRuntime: "يتطلب عمال السحابة وقت تشغيل OpenClaw؛ تم تحديد {runtime}.",
cloudSecureContextRequired:
"تحتاج عوامل السحابة إلى سياق متصفح آمن حتى تتمكن الاستعادة من حماية مهمتك.",
cloudStartFailed: "تم إنشاء الجلسة محليًا، ولكن تعذّر بدء التشغيل السحابي: {error}",
@@ -536,7 +553,12 @@ export const ar: TranslationMap = {
sourceFilters: "عوامل تصفية مصدر الجلسة",
global: "عام",
unknown: "غير معروف",
archivedOnly: "المؤرشفة فقط",
sessionState: "حالة المحادثة",
viewArchived: "عرض المؤرشفة",
sessionArchived: "تمت أرشفة المحادثة",
sessionsArchived: "تمت أرشفة {count} محادثة",
deleteAllArchived: "حذف جميع المؤرشفة…",
deleteAllArchivedConfirm: "حذف {count} محادثة مؤرشفة ونصوصها؟",
activeTooltip: "تم التحديث خلال آخر {count} دقيقة.",
limitTooltip: "الحد الأقصى للجلسات المراد تحميلها.",
globalTooltip: "تضمين الجلسات العامة.",
@@ -582,6 +604,8 @@ export const ar: TranslationMap = {
actions: "الإجراءات",
addToWorkboard: "إضافة إلى Workboard",
openWorkboardCard: "فتح بطاقة Workboard",
dashboardAvailable: "لوحة التحكم متاحة",
approvalNeeded: "الموافقة مطلوبة",
noSessions: "لم يتم العثور على جلسات.",
noSessionsMatchFilters: "لا توجد جلسات تطابق عوامل التصفية لديك.",
pagination: "{start}-{end} من أصل {total} صفوف",
@@ -621,10 +645,17 @@ export const ar: TranslationMap = {
statusFailed: "فشل",
statusKilled: "تم الإنهاء",
statusTimeout: "انتهت المهلة",
waitingForAnswer: "بانتظار إجابتك",
waitingForApproval: "بانتظار الموافقة",
runFailedReason: "فشل التشغيل: {reason}",
runErrorTimedOut: "انتهت المهلة",
runErrorUnknown: "خطأ غير معروف",
attentionRequired: "الجلسة تحتاج إلى انتباه",
model: "النموذج",
provider: "المزود",
runtime: "وقت التشغيل",
runDuration: "مدة التشغيل",
lastActive: "آخر نشاط {time}",
surface: "السطح",
subject: "الموضوع",
room: "الغرفة",
@@ -634,6 +665,7 @@ export const ar: TranslationMap = {
showChildSessions: "إظهار {count} من الجلسات الفرعية لـ {session}",
hideChildSessions: "إخفاء {count} من الجلسات الفرعية لـ {session}",
childSessions: "الجلسات الفرعية",
showMoreChildren: "عرض {count} إضافية",
archived: "مؤرشف",
pinned: "مثبّتة",
unread: "Unread",
@@ -645,6 +677,10 @@ export const ar: TranslationMap = {
renameSessionMenu: "Rename…",
pinSession: "تثبيت الجلسة",
unpinSession: "إلغاء تثبيت الجلسة",
changeIcon: "تغيير الأيقونة",
customEmoji: "إيموجي مخصص",
invalidEmojiIcon: "أدخل إيموجي واحدًا فقط.",
removeIcon: "إزالة الأيقونة",
markUnread: "Mark as unread",
markRead: "Mark as read",
markUnreadCount: "وضع علامة غير مقروء على {count}",
@@ -1077,40 +1113,9 @@ export const ar: TranslationMap = {
},
channels: {
title: "القنوات",
connectedCount: "{count} متصلة",
empty: "لم يتم إعداد أي قنوات",
connect: "اتصال →",
},
automation: {
title: "عمليات الأتمتة",
scheduledTask: "{count} مهمة مجدولة",
scheduledTasks: "{count} مهام مجدولة",
installedSkill: "{count} مهارة مثبتة",
installedSkills: "{count} مهارات مثبتة",
mcpServer: "{count} خادم MCP",
mcpServers: "{count} خوادم MCP",
manage: "إدارة →",
browse: "استعراض →",
configure: "إعداد →",
},
appearance: {
title: "المظهر",
theme: "السمة",
textSize: "حجم النص",
importedTheme: "سمة مستوردة",
import: "استيراد",
themes: {
claw: "مخلب",
knot: "عقدة",
dash: "شرطة",
},
textSizes: {
small: "S",
medium: "M",
large: "L",
xl: "XL",
xxl: "XXL",
},
lobsterVisits: "زيارات الكركند",
lobsterVisitsOn: "يزور من حين لآخر",
lobsterVisitsOff: "لا يزور أبدًا",
@@ -1123,7 +1128,6 @@ export const ar: TranslationMap = {
},
security: {
title: "الأمان",
configure: "تكوين →",
gatewayAuth: "مصادقة Gateway",
execPolicy: "سياسة التنفيذ",
deviceAuth: "مصادقة الجهاز",
@@ -1147,22 +1151,29 @@ export const ar: TranslationMap = {
},
personal: {
title: "شخصي",
profileTitle: "الملف الشخصي",
user: "المستخدم",
you: "أنت",
assistant: "المساعد",
localIdentity: "هويتك المحلية في الدردشة",
profileIdentity: "ملفك الشخصي في Gateway",
assistantIdentity: "هوية المساعد",
displayName: "الاسم المعروض",
displayNamePlaceholder: "اسمك",
saveProfile: "حفظ الاسم",
saving: "جارٍ الحفظ…",
uploading: "جارٍ المعالجة…",
profileHint: "JPEG أو PNG أو WebP. تُقتطع الصور من المنتصف ويُعاد تحجيمها إلى 512 بكسل.",
profileLoadFailed: "تعذّر تحميل ملفك الشخصي.",
profileSaveFailed: "تعذّر حفظ ملفك الشخصي.",
avatarInvalid: "اختر صورة JPEG أو PNG أو WebP صالحة.",
avatarTooLarge: "الصورة الرمزية المعالجة لا تزال كبيرة جدًا.",
avatarText: "نص الصورة الرمزية / رمز تعبيري",
avatarPlaceholder: "JD أو 🦞",
chooseImage: "اختيار صورة",
replaceImage: "استبدال الصورة",
clearAvatar: "مسح الصورة الرمزية",
clearOverride: "مسح التجاوز",
browserOnly: "يُخزَّن في هذا المتصفح فقط.",
overrideHint: "يخزّن تجاوزًا في Control UI. امسحه للعودة إلى الصورة الرمزية التي تم إعدادها.",
uiOverride: "تجاوز واجهة المستخدم",
configuredAvatar: "الصورة الرمزية المُعدّة",
overrideFromSettings: "التجاوز من الإعدادات",
fallbackAvatar: "الصورة الرمزية الاحتياطية",
fallbackLogo: "الشعار الاحتياطي",
avatarIssues: {
@@ -1176,26 +1187,16 @@ export const ar: TranslationMap = {
},
},
configPage: {
settingsView: "عرض الإعدادات",
simple: "بسيط",
advanced: "متقدم",
content: "محتوى الإعدادات",
themeImported: "تم استيراد {name}.",
themeRemoved: "تمت إزالة السمة المخصصة.",
channels: {
telegram: "Telegram",
discord: "Discord",
slack: "Slack",
whatsapp: "WhatsApp",
signal: "Signal",
imessage: "iMessage",
},
},
configView: {
categories: {
core: "الأساسيات",
ai: "الذكاء الاصطناعي والوكلاء",
communication: "الاتصالات",
security: "الخصوصية والأمان",
automation: "الأتمتة",
infrastructure: "البنية التحتية",
appearance: "المظهر",
@@ -1227,6 +1228,7 @@ export const ar: TranslationMap = {
bindings: "الارتباطات",
cron: "Cron",
approvals: "الموافقات",
security: "سياسة الأمان",
plugins: "الإضافات",
gateway: "Gateway",
web: "الويب",
@@ -1262,11 +1264,15 @@ export const ar: TranslationMap = {
xl: "كبير جدًا",
xxl: "كبير جدًا جدًا",
},
syncedHint: "متزامن عبر أجهزتك من خلال Gateway.",
notifications: {
title: "الإشعارات الفورية",
nativeTitle: "الإشعارات",
hint: "تلقي إشعارات فورية في المتصفح من Gateway.",
nativeHint: "تُعرض الإشعارات أصليًا بواسطة تطبيق OpenClaw على هذا الجهاز Mac.",
unavailableHint: "غير متاحة في هذا المتصفح.",
unavailable: "غير متاح",
checking: "جارٍ التحقق...",
granted: "مسموح بها",
denied: "مرفوضة",
notRequested: "لم تُطلب",
@@ -1284,7 +1290,10 @@ export const ar: TranslationMap = {
sendTest: "إرسال اختبار",
subscribing: "جارٍ الاشتراك...",
enable: "تفعيل الإشعارات",
openSystemSettings: "فتح إعدادات النظام",
blockedHint: "الإشعارات محظورة. حدّث أذونات الموقع في متصفحك للسماح بالإشعارات.",
nativeBlockedHint:
"الإشعارات معطّلة لتطبيق OpenClaw في macOS. اسمح بها من إعدادات النظام > الإشعارات.",
},
appearance: {
theme: "السمة",
@@ -1311,6 +1320,12 @@ export const ar: TranslationMap = {
title: "الدردشة",
hint: "تفضيلات الدردشة المحلية للمتصفح.",
},
sidebarPrefs: {
title: "الشريط الجانبي",
hint: "اختر ما يظهر أثناء تشغيل الجلسات.",
liveActivity: "عرض نشاط الوكيل المباشر في الشريط الجانبي",
liveActivityHint: "عرض أحدث نشاط للمساعد أو الأداة أسفل الجلسات قيد التشغيل.",
},
connection: {
title: "الاتصال",
gateway: "Gateway",
@@ -1369,6 +1384,10 @@ export const ar: TranslationMap = {
execApprovalNeeded: "يلزم اعتماد Exec",
pluginApprovalNeeded: "يلزم اعتماد المكوّن الإضافي",
pending: "{count} قيد الانتظار",
otherPending: "طلبات أخرى معلّقة",
reviewRequest: "مراجعة الموافقة من {agent}: {command}",
agentPendingOne: "{count} موافقة معلّقة",
agentPending: "{count} موافقات معلّقة",
allowOnce: "السماح مرة واحدة",
alwaysAllow: "السماح دائمًا",
allowAlwaysUnavailable: "خيار السماح دائمًا غير متاح لهذا الأمر.",
@@ -1572,8 +1591,10 @@ export const ar: TranslationMap = {
chat: "الدردشة",
settings: "الإعدادات",
settingsGeneral: "عام",
askOpenClaw: "اسأل OpenClaw",
settingsGroupConnections: "الاتصالات",
settingsGroupAgents: "الوكلاء والأدوات",
settingsGroupSecurity: "الخصوصية والأمان",
settingsGroupSystem: "النظام",
settingsSearchLabel: "البحث في الإعدادات",
settingsSearchPlaceholder: "البحث في الإعدادات…",
@@ -1585,6 +1606,8 @@ export const ar: TranslationMap = {
collapse: "طي الشريط الجانبي",
resize: "تغيير حجم الشريط الجانبي",
more: "المزيد",
home: "الرئيسية",
pages: "الصفحات",
customize: "تخصيص الشريط الجانبي",
customizeReset: "إعادة التعيين إلى الإعدادات الافتراضية",
},
@@ -1674,6 +1697,7 @@ export const ar: TranslationMap = {
tabs: {
agents: "الوكلاء",
activity: "النشاط",
apps: "التطبيقات",
approvals: "الموافقات",
workboard: "لوحة العمل",
worktrees: "مساحات العمل",
@@ -1688,6 +1712,7 @@ export const ar: TranslationMap = {
skillWorkshop: "ورشة Skills",
nodes: "العقد",
chat: "الدردشة",
custodian: "OpenClaw",
config: "الإعدادات",
profile: "الملف الشخصي",
communications: "الاتصالات",
@@ -1695,11 +1720,15 @@ export const ar: TranslationMap = {
automation: "الأتمتة",
mcp: "MCP",
infrastructure: "البنية التحتية",
labs: "المختبرات",
about: "حول",
aiAgents: "الذكاء الاصطناعي والوكلاء",
modelSetup: "إعداد النموذج",
modelProviders: "Model Providers",
memoryImport: "استيراد الذاكرة",
notifications: "الإشعارات",
security: "الخصوصية والأمان",
advanced: "متقدم",
debug: "تصحيح الأخطاء",
logs: "السجلات",
plugin: "المكوّن الإضافي",
@@ -1707,6 +1736,7 @@ export const ar: TranslationMap = {
subtitles: {
agents: "مساحات العمل، والأدوات، والهويات.",
activity: "ملخصات نشاط الأدوات المحلية في المتصفح.",
apps: "تطبيقات مصاحبة للهاتف والساعة وسطح المكتب والمتصفح.",
approvals: "الموافقات الأخيرة على التنفيذ والمكوّنات الإضافية ووكلاء النظام.",
workboard: "قائمة عمل الوكيل وتسليم الجلسات.",
worktrees: "نسخ معزولة لمهام الوكلاء ولقطات استرداد.",
@@ -1721,6 +1751,7 @@ export const ar: TranslationMap = {
skillWorkshop: "راجع المقترحات وحسّنها وطبّقها قبل أن تصبح مهارات نشطة.",
nodes: "الأجهزة المقترنة والأوامر.",
chat: "دردشة Gateway للتدخلات السريعة.",
custodian: "إعداد النظام والعناية به.",
config: "تعديل openclaw.json.",
profile: "إحصاءات وكيلك، وسلاسل نشاطه، وحياته في الشعاب.",
communications: "القنوات، والرسائل، وإعدادات الصوت.",
@@ -1728,11 +1759,15 @@ export const ar: TranslationMap = {
automation: "الأوامر، والخطافات، وcron، والمكونات الإضافية.",
mcp: "خوادم MCP، والمصادقة، والأدوات، والتشخيصات.",
infrastructure: "إعدادات Gateway، والويب، والمتصفح، والوسائط.",
labs: "قدرات تجريبية للوكيل والأدوات.",
about: "هوية بناء Control UI وGateway المتصل.",
aiAgents: "الوكلاء، والنماذج، والمهارات، والأدوات، والذاكرة، والجلسة.",
modelSetup: "ربط نموذج ذكاء اصطناعي موثّق",
modelProviders: "Configured providers with plan, quota, and cost.",
memoryImport: "انقل ذاكرة Codex وClaude Code إلى مساحة عمل وكيل.",
notifications: "إشعارات الدفع في المتصفح من Gateway الخاص بك.",
security: "مصادقة Gateway وسياسة التنفيذ وملف تعريف الأدوات والموافقات.",
advanced: "كل أقسام التكوين المتبقية، إضافةً إلى محرر الملف الخام.",
debug: "اللقطات، والأحداث، وRPC.",
logs: "سجلات Gateway المباشرة.",
plugin: "لوحة مقدمة من المكوّن الإضافي.",
@@ -1883,8 +1918,78 @@ export const ar: TranslationMap = {
doneBody: "تم ترحيل {migrated} وتخطي {skipped}. يمكنك متابعة إعداد OpenClaw.",
},
},
custodian: {
title: "OpenClaw",
subtitle: "دليل إعداد نظامك",
subtitleCaretaker: "إعداد النظام والعناية به.",
exitSetup: "الخروج من الإعداد",
newAgent: "وكيل جديد",
hatchDraft: "استيقظ يا صديقي!",
placeholder: "راسل OpenClaw…",
sensitivePlaceholder: "أدخل قيمة حساسة…",
sensitiveReply: "تم إرسال الرد الحساس",
send: "إرسال",
thinking: "OpenClaw يفكر",
earlier: "سابقًا",
requestFailed: "تعذّر على OpenClaw الرد. حاول مرة أخرى.",
connectionChanged: "تغيّر اتصال Gateway. أعد المحاولة لمتابعة هذا الإعداد.",
sessionRestarted: "{error} بدأ OpenClaw جلسة جديدة؛ تبقى الرسائل السابقة كسياق.",
unsupportedGateway: "حدّث Gateway لمتابعة الإعداد مع OpenClaw.",
history: {
button: "السجل",
title: "التغييرات الأخيرة",
description: "ما الذي تغيّر في هذا النظام، الأحدث أولاً.",
loading: "جارٍ تحميل التغييرات الأخيرة…",
empty: "لا توجد تغييرات مسجّلة بعد.",
requestFailed: "تعذّر على OpenClaw تحميل سجل التغييرات.",
loadMore: "تحميل المزيد",
loadingMore: "جارٍ تحميل المزيد…",
changedPaths: "المسارات المتغيّرة ({count})",
invalidEdit: "لم يجتز هذا التعديل اليدوي التحقق من صحة الإعدادات.",
opaqueChange: "تغيّرت التنسيقات أو التعليقات دون تغييرات ظاهرة في مسار الإعدادات.",
sources: {
systemAgent: "system-agent",
doctor: "doctor",
settings: "settings",
cli: "CLI",
pluginInstall: "plugin install",
manualEdit: "manual edit",
unknown: "unknown",
},
},
nudge: {
configReload: "توقّفت إعادة تحميل الإعدادات — اسألني عمّا حدث",
channelAuth: "تدهورت مصادقة {channel} — اسألني عمّا حدث",
channelDisconnected: "انقطع اتصال {channel} للتو — اسألني عمّا حدث",
channelDegraded: "{channel} في حالة متدهورة — اسألني عمّا حدث",
channelFallback: "قناة",
dismiss: "تجاهل هذا التحديث",
},
},
mcpServers: {
add: "إضافة خادم",
adding: "جارٍ الإضافة…",
nameLabel: "الاسم",
targetLabel: "عنوان URL أو أمر",
nameInvalid: "تستخدم أسماء الخوادم أحرفًا أو أرقامًا أو نقاطًا أو شرطات أو شرطات سفلية.",
targetInvalid: "أدخل عنوان http(s) أو سطر أوامر.",
nameTaken: "يوجد بالفعل خادم MCP باسم ”{name}“.",
missing: "لم يتم العثور على خادم MCP ”{name}“ في الإعدادات.",
missingTransport: "وسيلة النقل مفقودة",
addedSuccess: "تمت إضافة خادم MCP {name}.",
enabledSuccess: "تم تمكين خادم MCP {name}.",
disabledSuccess: "تم تعطيل خادم MCP {name}.",
removedSuccess: "تمت إزالة خادم MCP {name}.",
configUnavailable: "الإعدادات غير متاحة؛ حدّث الصفحة وحاول مرة أخرى.",
connectRequired: "اتصل بـ Gateway لتغيير خوادم MCP.",
adminRequired: "تتطلب تغييرات خادم MCP صلاحية operator.admin.",
enable: "فعّل",
disable: "تعطيل",
removeNamed: "إزالة {name}",
working: "جارٍ العمل…",
},
mcpPage: {
manageServersLink: "إدارة الخوادم من صفحة الإضافات.",
connectorsLink: "اكتشف الموصلات بنقرة واحدة في صفحة Plugins.",
servers: "الخوادم",
oauth: "OAuth",
filtered: "تمت التصفية",
@@ -1896,10 +2001,12 @@ export const ar: TranslationMap = {
"تُطبَّق تغييرات وقت التشغيل بعد الحفظ والنشر؛ ويعيد الوكلاء النشطون إنشاء بيئات تشغيل MCP عند الاستخدام التالي.",
toolFilter: "عامل تصفية الأدوات",
parallel: "متوازٍ",
missingTransport: "وسيلة النقل مفقودة",
tlsVerifyOff: "التحقق من TLS متوقف",
mtls: "mTLS",
},
sessionsPage: {
hubTablistLabel: "أقسام المحادثات",
},
pluginsPage: {
searchLabel: "البحث في المكوّنات الإضافية",
searchPlaceholder: "البحث في المكوّنات الإضافية",
@@ -1984,18 +2091,7 @@ export const ar: TranslationMap = {
mcpSettingsLink: "إعدادات MCP",
mcpHint:
"اربط خوادم Model Context Protocol لمنح وكيلك أدوات إضافية. تنطبق التغييرات على جلسات الوكيل الجديدة.",
mcpAdd: "إضافة خادم",
mcpAdding: "جارٍ الإضافة…",
mcpEmpty: "لم يتم تكوين أي خوادم MCP بعد. أضف واحدًا هنا أو اختر موصّلًا من Discover.",
mcpNameLabel: "الاسم",
mcpTargetLabel: "عنوان URL أو أمر",
mcpNameInvalid: "تستخدم أسماء الخوادم أحرفًا وأرقامًا ونقاطًا وشرطات أو شرطات سفلية.",
mcpTargetInvalid: "أدخل عنوان URL بنظام http(s) أو سطر أوامر.",
mcpNameTaken: "يوجد بالفعل خادم MCP باسم “{name}”.",
mcpMissing: "لم يتم العثور على خادم MCP “{name}” في التكوين.",
mcpAddedSuccess: "تمت إضافة خادم MCP {name}.",
mcpRemovedSuccess: "تمت إزالة خادم MCP {name}.",
mcpConfigUnavailable: "التكوين غير متاح؛ حدّث الصفحة وحاول مرة أخرى.",
remove: "إزالة",
removing: "جارٍ الإزالة…",
removeNamed: "إزالة {name}",
@@ -2044,6 +2140,25 @@ export const ar: TranslationMap = {
disabledSuccess: "تم تعطيل {name}.",
disabledRestart: "تم تعطيل {name}. يلزم إعادة تشغيل Gateway لتطبيق التغيير.",
},
labsPage: {
intro: "يحتوي Labs على قدرات تجريبية قد تتغير أو تتعطل أو تختفي بين الإصدارات.",
sectionTitle: "الميزات التجريبية",
sectionDescription: "تُحفظ التغييرات فورًا وتُطبَّق على عمليات تشغيل الوكيل المستقبلية.",
documentation: "التوثيق",
restartRequired: "يلزم إعادة تشغيل Gateway.",
saveErrorTitle: "تعذّر تحديث الميزة",
saveFailed: "تعذّر حفظ إعداد الميزة.",
codeMode: {
title: "وضع الكود",
description: "دع الوكلاء يجمعون الأدوات في سير عمل JavaScript مضغوط ومعزول.",
},
swarm: {
title: "Swarm",
description: "دع وضع الكود ينسّق مجموعات من الوكلاء الفرعيين بالتوازي.",
empty: "لا توجد أسراب نشطة.",
defaultPhase: "بدون مرحلة",
},
},
aboutPage: {
productName: "OpenClaw",
tagline: "مساعدك الشخصي بالذكاء الاصطناعي، يعمل على أجهزتك الخاصة.",
@@ -2053,6 +2168,7 @@ export const ar: TranslationMap = {
linkDocs: "الوثائق",
linkGitHub: "GitHub",
linkDiscord: "Discord",
linkX: "X (Twitter)",
linkChangelog: "سجل التغييرات",
license: "© 2026 مؤسسة OpenClaw — ترخيص MIT.",
artifactTitle: "Control UI",
@@ -2071,6 +2187,72 @@ export const ar: TranslationMap = {
gatewayVersionHint:
"يتم الإبلاغ عنه بواسطة اتصال Gateway النشط؛ وهو منفصل عن بناء Control UI هذا.",
},
appsPage: {
heroTitle: "اصطحب OpenClaw إلى كل مكان",
heroTagline:
"تطبيقات مرافقة لهاتفك وساعتك وسطح مكتبك ومتصفحك — بالإضافة إلى إضافات لتوسيع قدرات وكيلك.",
sectionMobile: "على هاتفك",
havePhone: "هل لديك التطبيق بالفعل؟",
pairDevice: "اقرن جهازك",
sectionWatch: "على معصمك",
sectionDesktop: "على سطح مكتبك",
sectionBrowser: "في متصفحك",
sectionCommunity: "المجتمع",
badgeBundledIos: "مضمّن مع تطبيق iOS",
badgeBundledAndroid: "مضمّن مع تطبيق Android",
ctaAppStore: "App Store",
ctaPlayStore: "Google Play",
ctaDownload: "تنزيل",
ctaDocs: "الوثائق",
ctaSetupGuide: "دليل الإعداد",
ctaOpenPlugins: "فتح الإضافات",
ctaBrowseClawHub: "تصفّح ClawHub",
linkDiscord: "مجتمع Discord",
linkDocs: "الوثائق",
cards: {
ios: {
title: "iPhone",
desc: "الدردشة والتحدث والموافقة على الإجراءات والمشاركة في OpenClaw من iOS.",
},
android: {
title: "Android",
desc: "هاتف Android الخاص بك كعقدة OpenClaw كاملة — الدردشة والكاميرا وCanvas.",
},
appleWatch: {
title: "Apple Watch",
desc: "محادثات سريعة النظرة وردود سريعة من معصمك.",
},
wearOs: {
title: "Wear OS",
desc: "يوسّع تطبيق Android المرافق OpenClaw إلى ساعتك.",
},
macos: {
title: "macOS",
desc: "تطبيق مرافق في شريط القوائم لـ Gateway — الإشعارات والموافقات والدردشة السريعة.",
},
windows: {
title: "Windows",
desc: "يربط تطبيق Windows المرافق جهاز الكمبيوتر الخاص بك كعقدة OpenClaw.",
},
linux: {
title: "Linux",
desc: "تطبيق سطح مكتب أصلي — إصدارات .deb و AppImage.",
},
chrome: {
title: "امتداد Chrome",
desc: "اسمح لـ OpenClaw بالتحكم في Chrome الحالي — علامات التبويب والصفحات والنماذج.",
},
plugins: {
title: "الإضافات و ClawHub",
desc: "وسّع OpenClaw بقنوات وأدوات ومهارات من المجتمع.",
},
},
},
presence: {
rosterLabel: "إظهار المتصلين",
rosterTitle: "متصل",
you: "أنت",
},
profilePage: {
offline: "اتصل بـ Gateway للقاء وكيلك.",
loading: "نغوص بحثًا عن الإحصاءات…",
@@ -2102,6 +2284,26 @@ export const ar: TranslationMap = {
toolsEmpty: "لم تُسجَّل أي عمليات تشغيل للأدوات بعد.",
toolRun: "{count} تشغيل",
toolRuns: "{count} عمليات تشغيل",
identity: {
title: "الهوية",
description: "ملفك الشخصي على هذا الـ gateway.",
loading: "جارٍ تحميل هويتك…",
profileUnavailable: "تعذّر تحميل ملف هويتك.",
avatar: "الصورة الرمزية",
avatarDescription: "PNG أو JPEG أو WebP. يتم تغيير حجم الصور إلى 256 × 256 أو أصغر.",
chooseAvatar: "اختيار صورة",
processingAvatar: "جارٍ المعالجة…",
displayName: "الاسم المعروض",
displayNameDescription: "يظهر للأشخاص الآخرين الذين يستخدمون هذا الـ gateway.",
linkedEmails: "الأيميلات المرتبطة",
linkedEmailsDescription: "عناوين البريد الإلكتروني المرتبطة بهذا الملف الشخصي.",
openSettings: "فتح إعدادات الهوية لـ {name}",
avatarErrors: {
invalid: "تعذّرت معالجة هذه الصورة.",
sourceTooLarge: "اختر صورة بحجم 10 ميجابايت أو أقل.",
tooLarge: "الصورة الرمزية المعالجة أكبر من 512 كيلوبايت.",
},
},
},
tasksPage: {
active: "نشطة",
@@ -2404,131 +2606,51 @@ export const ar: TranslationMap = {
submit: "Ask",
},
},
workspaces: {
tabs: {
label: "Workspaces",
hidden: "Hidden ({count})",
},
error: {
title: "Couldn't load your workspaces",
subtitle: "Something went wrong loading your workspaces. Try reloading.",
detailSummary: "Show details",
},
header: {
subtitle: "Arrange widgets and tabs for this workspace.",
},
onboarding: {
title: "Build your first workspace tab",
primary: "Ask your agent to build a tab.",
secondary: "Or create one from the command line:",
},
empty: {
onboardingTitle: "No workspaces yet",
onboardingSubtitle:
"Ask your agent to build a workspace, or create one from the command line.",
onboardingCommand: "openclaw workspaces tabs create --title Main",
tabTitle: "This workspace is empty",
tabSubtitle: "Ask your agent to add a widget, or add one yourself.",
noVisibleTabs: "Every workspace tab is hidden. Restore one from the hidden menu.",
board: {
label: "لوحة معلومات المحادثات",
tabsLabel: "علامات تبويب لوحة المعلومات",
moreTabs: "المزيد من علامات تبويب لوحة المعلومات",
gridLabel: "عناصر لوحة المعلومات",
emptyTitle: "لوحة نظيفة وجاهزة للعمل",
emptyHint: "يمكن لوكيلك تثبيت العناصر هنا — جرّب طلب بطاقة حالة.",
actionFailed: "تعذّر حفظ تغيير لوحة المعلومات.",
actionInProgress: "لا يزال هناك تغيير آخر للوحة المعلومات قيد الحفظ.",
announcement: {
moved: "تم نقل {title}.",
resized: "تم تغيير حجم {title}.",
removed: "تمت إزالة {title}.",
granted: "تم السماح بالوصول إلى العنصر.",
rejected: "تم رفض الوصول إلى العنصر.",
},
widget: {
collapse: "Collapse widget",
expand: "Expand widget",
moveHandle: "Move widget",
resizeHandle: "Resize widget",
menuLabel: "Widget options",
provenanceChip: "AI",
provenanceTooltip: "Built by {agent}",
errorTitle: "This widget couldn't load",
errorHumane: "This widget ran into a problem while rendering.",
errorDetailSummary: "Show details",
customPlaceholder: "Custom widget — coming soon.",
customLoading: "Loading custom widget…",
approval: {
title: "Custom widget awaiting approval",
byAgent: "Built by {agent}",
byUnknown: "Built by an unknown agent",
approve: "Approve",
reject: "Reject",
unavailable:
"This custom widget isn't available. Ask your agent to rebuild it, or remove it.",
},
markdownEmpty: "No content yet.",
unknownKind: "Unknown widget type: {kind}",
editTitleTitle: "Edit widget title",
editTitleLabel: "Widget title",
moveToTabTitle: "Move to tab",
moveToTabEmpty: "There are no other tabs to move this widget to.",
menu: {
editTitle: "Edit title",
moveToTab: "Move to tab…",
hide: "Hide",
remove: "Remove",
},
stat: {
empty: "—",
},
table: {
empty: "No rows to show.",
more: "+{count} more",
},
chart: {
empty: "لا توجد بيانات لعرضها في المخطط.",
invalid: "يحتوي هذا المخطط على بيانات أو خيارات غير صالحة.",
label: "مخطط",
summary: "{title}: {count} من نقاط البيانات، تتراوح من {min} إلى {max}.",
},
sessions: {
empty: "No sessions yet.",
},
agentStatus: {
empty: "لا توجد وكلاء أو جلسات بعد.",
busy: "مشغول",
idle: "خامل",
progress: "{percent}% مكتمل",
},
customWidgetApprovals: {
empty: "لا توجد أدوات مخصصة بانتظار الموافقة.",
kind: "أداة مخصصة",
requestedBy: "طلبها {agent}",
approve: "موافقة",
reject: "رفض",
permissionRequired: "إذن الموافقة مطلوب",
},
usage: {
cost: "Cost",
tokens: "Tokens",
},
cron: {
empty: "No scheduled jobs.",
next: "Next {time}",
noNext: "Not scheduled",
},
instances: {
empty: "No connected instances.",
idle: "Idle for {duration}",
},
activity: {
empty: "No recent activity.",
},
embed: {
missing: "This embed has no URL yet.",
blockedExternal: "External embeds are disabled by your gateway policy.",
blockedScheme: "This embed URL uses an unsupported scheme.",
},
preview: {
missing: "لا تحتوي هذه المعاينة على عنوان URL حتى الآن.",
blockedExternal: "المعاينات الخارجية معطّلة بموجب سياسة Gateway الخاصة بك.",
blockedScheme: "يستخدم عنوان URL لهذه المعاينة نظامًا غير مدعوم.",
toolbar: "عناصر التحكم في المعاينة",
reload: "إعادة تحميل المعاينة",
viewport: {
label: "إطار عرض المعاينة",
desktop: "سطح المكتب",
tablet: "جهاز لوحي",
mobile: "هاتف محمول",
},
},
cellLabel:
"عنصر لوحة المعلومات: {title}. استخدم مفاتيح الأسهم للتنقل. اضغط مع الاستمرار على Alt واضغط على مفتاح سهم لتحريكه.",
moveHandle: "نقل {title}",
resizeHandle: "تغيير حجم {title}",
menuLabel: "خيارات الأداة",
moveToTab: "نقل إلى علامة تبويب",
noOtherTabs: "لا توجد علامات تبويب أخرى",
resize: "تغيير الحجم",
remove: "إزالة",
needsApproval: "يتطلب الموافقة",
needsApprovalDetail: "طلبت هذه الأداة وصولاً إضافياً.",
allow: "السماح",
reject: "رفض",
rejected: "تم رفض الوصول",
rejectedDetail: "تبقى هذه الأداة غير نشطة حتى تتم إزالتها أو استبدالها.",
appLoading: "جارٍ استعادة التطبيق…",
appStaleTitle: "هذا التطبيق المثبّت قديم",
appStaleDetail: "لم يعد الخادم أو المورد أو النص الأصلي متاحاً.",
retry: "إعادة المحاولة",
frameResolverMissing: "محتوى الأداة غير متاح.",
frameAuthorizationFailed: "فشلت مصادقة الأداة بعد محاولات تحديث متكررة.",
errorTitle: "تعذّر تحميل هذه الأداة",
errorDetail: "المشكلة محصورة في هذه البطاقة.",
actionErrorTitle: "فشل تغيير الأداة",
actionErrorDetail: "احتفظت لوحة المعلومات بحالة الأداة السابقة.",
errorShow: "عرض التفاصيل",
kindMcp: "MCP",
kindHtml: "HTML",
},
},
workboard: {
@@ -2798,7 +2920,6 @@ export const ar: TranslationMap = {
cronFailed: "فشل عدد {count} من مهام cron",
cronOverdue: "تأخر عدد {count} من مهام cron",
modelAuthExpired: "انتهت صلاحية مصادقة النموذج: {providers}",
modelAuthExpiring: "توشك صلاحية مصادقة النموذج على الانتهاء: {providers}",
pendingApproval: "{count} موافقة معلّقة",
pendingApprovals: "{count} موافقات معلّقة",
},
@@ -2858,6 +2979,7 @@ export const ar: TranslationMap = {
skills: "Skills",
},
items: {
apps: "التطبيقات",
sessions: "الجلسات",
scheduled: "المجدولة",
skills: "Skills",
@@ -3511,6 +3633,7 @@ export const ar: TranslationMap = {
},
chat: {
disconnected: "تم قطع الاتصال بـ Gateway.",
waitingForApproval: "في انتظار الموافقة…",
archivedSessionDisabled: "استعِد هذه الجلسة لإرسال الرسائل.",
loadOlder: "تحميل الأقدم",
sessionHeader: {
@@ -3525,6 +3648,34 @@ export const ar: TranslationMap = {
copyPath: "نسخ المسار",
copyBranch: "نسخ اسم الفرع",
copied: "تم النسخ",
branches: "فروع المحادثة",
branchSwitchUnavailable: "تبديل الفرع غير متاح أثناء عمل الوكيل.",
branchSwitchRequiresAdmin: "يتطلب تبديل الفرع صلاحية مشغّل مسؤول.",
untitledBranch: "فرع بدون عنوان",
oneMessage: "{count} رسالة",
messages: "{count} رسالة",
activeBranch: "الفرع النشط",
},
board: {
faceLabel: "واجهة المحادثة",
chatFace: "محادثة",
dashboardFace: "لوحة المعلومات",
dockMenu: "رصيف المحادثة: {dock}",
dockLeft: "إرساء المحادثة يسارًا",
dockRight: "إرساء المحادثة يمينًا",
dockBottom: "إرساء المحادثة أسفل",
dockHidden: "إخفاء المحادثة",
resizeDock: "تغيير حجم رصيف المحادثة",
reopenChat: "إظهار المحادثة",
defaultTab: "الرئيسية",
mockPlaceholder: "واجهة عرض اللوحة · {tabs} علامات تبويب · {widgets} عناصر واجهة",
mockOverview: "نظرة عامة",
mockResearch: "بحث",
mockSessionStatus: "حالة المحادثة",
mockRecentFindings: "النتائج الأخيرة",
mockSourceMap: "خريطة المصادر",
resetTitle: "إعادة تعيين المحادثة؟",
resetDescription: "يُعاد تعيين سياق المحادثة. تبقى لوحة المعلومات كما هي.",
},
catalog: {
remoteViewOnly: "هذه الجلسة موجودة على عقدة مقترنة وهي للعرض فقط.",
@@ -3663,7 +3814,9 @@ export const ar: TranslationMap = {
updateMacAndGateway: "تحديث تطبيق Mac وGateway",
updateGateway: "تحديث Gateway",
allSessions: "كل الجلسات",
chats: "الدردشات",
threads: "المحادثات",
groups: "المجموعات",
coding: "البرمجة",
groupCatalogSessionsByProject: "التجميع حسب المشروع",
openSessionMenu: "Open session menu",
sortBy: "ترتيب حسب",
@@ -3672,7 +3825,7 @@ export const ar: TranslationMap = {
sortUpdated: "آخر تحديث",
sessionMenu: "Actions for {session}",
sessionMenuMany: "إجراءات لـ {count} جلسات",
workSessions: "العمل",
toolActivity: "جارٍ استخدام {tool}",
},
welcome: {
hintBeforeShortcut: "Type a message below ·",
@@ -3717,11 +3870,40 @@ export const ar: TranslationMap = {
title: "يحتاج Codex إلى إدخال",
other: "اكتب إجابة أخرى",
submit: "إرسال الإجابة",
next: "التالي",
back: "رجوع",
skip: "تخطَّ",
skipping: "جارٍ التخطي…",
skipped: "تم تخطيه",
collapse: "طيّ السؤال",
expand: "توسيع السؤال",
eyebrow: "سؤال",
cardLabel: "سؤال من المساعد",
summaryLabel: "نتيجة السؤال",
timeRemaining: "الوقت المتبقي",
ownAnswer: "إجابتك الخاصة…",
ownAnswerFor: "إجابتك الخاصة عن {header}",
submitting: "جارٍ الإرسال…",
submitFailed: "تعذّر الإرسال: {error}",
answered: "تمت الإجابة",
answeredElsewhere: "تمت الإجابة في مكان آخر",
unavailable: "غير متاح",
expired: "منتهي الصلاحية",
cancelled: "تم الإلغاء",
},
messages: {
activity: "النشاط",
deleteMessage: "حذف الرسالة",
forkFromHere: "تفريع من هنا",
hide: "إخفاء",
hideConfirm: "إخفاء هذه الرسالة في هذا المتصفح؟ لا يزال الوكيل يراها.",
hideMessage: "إخفاء الرسالة",
hideTooltip: "إخفاء في هذا المتصفح فقط",
openInCanvas: "فتح في اللوحة",
rewind: "إرجاع",
rewindConfirm: "الإرجاع إلى ما قبل هذه الرسالة؟",
rewindToHere: "الإرجاع إلى هنا",
rewindUnavailable: "الإرجاع غير متاح أثناء عمل الوكيل",
forkUnavailable: "التفريع غير متاح أثناء عمل الوكيل",
unknownDate: "تاريخ غير معروف",
voiceNote: "ملاحظة صوتية",
},
@@ -3729,6 +3911,9 @@ export const ar: TranslationMap = {
default: "الافتراضي",
reasoning: "الاستدلال",
speed: "السرعة",
sessionOverride: "تجاوز المحادثة",
usingDefault: "استخدام الافتراضي من الإعدادات",
resetToDefault: "إعادة التعيين إلى الافتراضي ({model})",
},
sideChat: {
title: "دردشة جانبية",
@@ -3805,8 +3990,13 @@ export const ar: TranslationMap = {
limitHours: "حد {hours} ساعات",
},
takePhoto: "التقاط صورة",
cameraAccessFailed: "تعذّر الوصول إلى الكاميرا.",
cameraBusy: "الكاميرا مشغولة أو غير متاحة للمتصفح.",
cameraFallback: "الكاميرا {number}",
cameraInput: "الكاميرا",
cameraListUnsupported: "لا يمكن لهذا المتصفح سرد الكاميرات.",
cameraNoneFound: "لم يتم العثور على كاميرا.",
cameraPageInactive: "الكاميرات غير متاحة أثناء عدم نشاط هذه الصفحة.",
cameraPermissionBlocked:
"الوصول إلى الكاميرا محظور. اسمح بالوصول إلى الكاميرا والميكروفون في إعدادات الموقع في المتصفح.",
cameraPreview: "معاينة الكاميرا",
@@ -3815,21 +4005,41 @@ export const ar: TranslationMap = {
microphoneBusy: "مدخلات الميكروفون مشغولة أو غير متاحة للمتصفح.",
microphoneFallback: "الميكروفون {number}",
microphoneInput: "إدخال الميكروفون",
microphoneAppliesNextSession: "تُطبَّق التغييرات عند بدء جلسة Talk التالية.",
microphoneListUnsupported: "لا يمكن لهذا المتصفح عرض مدخلات الميكروفون.",
noCameras: "لم يتم العثور على كاميرات إضافية",
noMicrophones: "لم يتم العثور على ميكروفونات إضافية",
microphoneNoneFound: "لم يتم العثور على أي مدخلات ميكروفون.",
microphonePageInactive: "مدخلات الميكروفون غير متاحة أثناء عدم نشاط هذه الصفحة.",
microphonePermissionBlocked:
"تم حظر الوصول إلى الميكروفون. اسمح به في إعدادات موقع المتصفح لعرض المدخلات.",
holdToRecordSetting: "اضغط مع الاستمرار على زر الميكروفون للإملاء",
holdToRecordSettingDescription:
"اضغط مع الاستمرار على زر الميكروفون في مربع الإنشاء، وتحدث، ثم حرّره لإدراج النص دون إرساله.",
dictationAudioUnsupported: "أرجع Gateway تنسيق صوت إملاء غير مدعوم.",
dictationBrowserAudioUnsupported: "لا يستطيع هذا المتصفح التقاط صوت الإملاء عند 8 كيلوهرتز.",
dictationConnecting: "جارٍ بدء الإملاء…",
dictationDisconnected: "توقّف الإملاء بسبب قطع اتصال Gateway.",
dictationFailed: "فشل الإملاء.",
dictationFinalizing: "جارٍ إنهاء الإملاء…",
dictationFinalizationTimedOut: "توقّف الإملاء قبل أن يتمكن من إنهاء آخر نص جزئي.",
dictationProviderUnavailable: "لم يتم تكوين أي موفّر نسخ نصي للإملاء.",
dictationRecording: "جارٍ التسجيل {elapsed}",
dictationReleaseToInsert: "حرّر لإدراج الإملاء",
realtimeTalkRequiresMicrophone:
"يتطلب الإدخال الصوتي في الوقت الفعلي الوصول إلى ميكروفون المتصفح.",
selectedMicrophoneUnavailable:
"الميكروفون المحدد غير متاح. اختر مدخلاً آخر أو الإعداد الافتراضي للنظام.",
selectedCameraUnavailable:
"الكاميرا المحددة غير متاحة. اختر كاميرا أخرى أو الإعداد الافتراضي للنظام.",
startVoiceInput: "بدء الإدخال الصوتي",
startVideoTalk: "بدء محادثة فيديو",
stillListening: "لا يزال يستمع",
stopVoiceInput: "إيقاف الإدخال الصوتي",
systemDefaultMicrophone: "الإعداد الافتراضي للنظام",
systemDefaultCamera: "الإعداد الافتراضي للنظام",
switchCamera: "تبديل الكاميرا",
turnCameraOff: "إيقاف تشغيل الكاميرا",
turnCameraOn: "تشغيل الكاميرا",
voiceTranscript: "تفريغ الصوت",
},
selectors: {
@@ -3855,6 +4065,14 @@ export const ar: TranslationMap = {
rawDetails: "التفاصيل الأولية",
openFile: "فتح الملف",
openDetails: "فتح تفاصيل الأداة في اللوحة الجانبية",
widgetActions: "إجراءات الأداة",
copyToClipboard: "نسخ إلى الحافظة",
downloadFile: "تنزيل الملف",
widgetExportRerender: "يجب إعادة عرض هذه الأداة لتصديرها كصورة.",
widgetExportFailed: "فشل تصدير الأداة. حاول مرة أخرى.",
pinToDashboard: "تثبيت في لوحة المعلومات",
pinToDashboardPending: "جارٍ التثبيت…",
pinnedToDashboard: "مثبّتة",
fileChanges: "تغييرات الملفات",
attemptedChanges: "التغييرات التي تمت محاولتها",
failed: "فشل",
@@ -3950,6 +4168,18 @@ export const ar: TranslationMap = {
statusRenamed: "تمت إعادة التسمية",
statusModified: "تم التعديل",
},
sessionDiscussion: {
title: "المناقشة",
show: "إظهار المناقشة",
disconnected: "Gateway غير متصل.",
loading: "جارٍ تحميل المناقشة…",
opening: "جارٍ فتح المناقشة…",
requiresWriteAccess: "يلزم صلاحية الكتابة للمشغّل لفتح هذه المناقشة.",
opened: "مناقشة الجلسة",
openExternal: "فتح المناقشة في علامة تبويب جديدة",
frameTitle: "مناقشة الجلسة",
unavailable: "لا يمكن تضمين هذه المناقشة.",
},
workspaceFiles: {
label: "مساحة عمل الجلسة",
expand: "توسيع مساحة عمل الجلسة",
@@ -4181,9 +4411,11 @@ export const ar: TranslationMap = {
expression: "التعبير",
expressionPlaceholder: "0 7 * * *",
everyAmountPlaceholder: "30",
summaryEverySecondOne: "يعمل كل ثانية",
summaryEveryMinuteOne: "يعمل كل دقيقة",
summaryEveryHourOne: "يعمل كل ساعة",
summaryEveryDayOne: "يعمل كل يوم",
summaryEverySeconds: "يعمل كل {amount} ثانية",
summaryEveryMinutes: "يعمل كل {amount} دقائق",
summaryEveryHours: "يعمل كل {amount} ساعات",
summaryEveryDays: "يعمل كل {amount} أيام",
+445 -193
View File
File diff suppressed because it is too large Load Diff
+440 -193
View File
File diff suppressed because it is too large Load Diff
+428 -191
View File
File diff suppressed because it is too large Load Diff
+448 -192
View File
File diff suppressed because it is too large Load Diff
+422 -191
View File
@@ -20,6 +20,8 @@ export const hi: TranslationMap = {
staleData: "पुराना डेटा दिखाया जा रहा है।",
reload: "फिर से लोड करें",
reset: "रीसेट करें",
restore: "पुनर्स्थापित करें",
undo: "पूर्ववत करें",
probe: "जाँच करें",
call: "कॉल करें",
confirm: "पुष्टि करें",
@@ -87,6 +89,10 @@ export const hi: TranslationMap = {
logout: "लॉग आउट",
skipToMainContent: "मुख्य सामग्री पर जाएँ",
},
optionCard: {
recommended: "अनुशंसित",
skip: "अभी छोड़ें",
},
nativeLinkMenu: {
label: "लिंक कार्रवाइयाँ",
openInline: "Sidebar में खोलें",
@@ -219,6 +225,9 @@ export const hi: TranslationMap = {
whatsapp: {
title: "WhatsApp",
subtitle: "WhatsApp Web को लिंक करें और कनेक्शन स्वास्थ्य की निगरानी करें।",
loggedOut: "लॉग आउट हो गया।",
logoutNotCleared:
"कोई संग्रहीत WhatsApp सत्र साफ़ नहीं किया गया। यह पहले से अनुपस्थित हो सकता है, या इसकी auth निर्देशिका को मैन्युअल सफ़ाई की आवश्यकता हो सकती है।",
},
gatewayUrlConfirmation: {
title: "Gateway URL बदलें",
@@ -273,6 +282,7 @@ export const hi: TranslationMap = {
genericSubtitle: "इस पैनल को लोड करते समय कुछ गड़बड़ हो गई।",
staleTitle: "एक नया संस्करण उपलब्ध है",
staleSubtitle: "OpenClaw को बैकग्राउंड में अपडेट किया गया था। नवीनतम पैनल पाने के लिए फिर से लोड करें।",
reloading: "रीलोड हो रहा है…",
retry: "फिर से प्रयास करें",
},
nodes: {
@@ -281,6 +291,8 @@ export const hi: TranslationMap = {
adminRequired: "सेटअप कोड बनाने के लिए एडमिनिस्ट्रेटर एक्सेस आवश्यक है।",
title: "OpenClaw मोबाइल",
subtitle: "नया फ़ोन कनेक्ट करने के लिए मोबाइल ऐप में इस QR कोड को स्कैन करें।",
noApp: "अभी तक ऐप नहीं है?",
getApps: "ऐप्स प्राप्त करें",
generating: "सुरक्षित सेटअप कोड बनाया जा रहा है…",
accessTitle: "मोबाइल एक्सेस",
fullAccess: "पूर्ण एक्सेस (अनुशंसित)",
@@ -468,11 +480,15 @@ export const hi: TranslationMap = {
agentChip: {
menuLabel: "एजेंट मेनू",
agents: "एजेंट",
openChat: "{name} के साथ चैट करें",
offlineOpenSettings: "ऑफ़लाइन — सेटिंग्स खोलें",
switchAgent: "एजेंट बदलें",
working: "काम हो रहा है…",
ready: "चैट के लिए तैयार",
whatCanAgentDo: "{name} क्या कर सकता है?",
help: "सहायता",
getHelp: "सहायता प्राप्त करें",
getApps: "ऐप्स प्राप्त करें",
discord: "Discord समुदाय",
viewChangelog: "परिवर्तन सूची देखें",
agentSettings: "Agent सेटिंग्स",
@@ -493,6 +509,8 @@ export const hi: TranslationMap = {
cloudWorker: "Cloud · {profile}",
cloudWorkerProvider: "Cloud वर्कर प्रदाता: {provider}",
cloudRequiresWorktree: "Cloud वर्कर के लिए प्रबंधित worktree आवश्यक है",
cloudRequiresOpenClawRuntime:
"क्लाउड वर्कर्स को OpenClaw रनटाइम की आवश्यकता होती है; {runtime} चयनित है।",
cloudSecureContextRequired:
"Cloud वर्कर को एक सुरक्षित ब्राउज़र संदर्भ की आवश्यकता है, ताकि पुनर्प्राप्ति आपके कार्य को सुरक्षित रख सके।",
cloudStartFailed: "सत्र स्थानीय रूप से बनाया गया था, लेकिन Cloud स्टार्टअप विफल रहा: {error}",
@@ -538,7 +556,12 @@ export const hi: TranslationMap = {
sourceFilters: "सेशन स्रोत फ़िल्टर",
global: "वैश्विक",
unknown: "अज्ञात",
archivedOnly: "केवल संग्रहीत",
sessionState: "थ्रेड स्थिति",
viewArchived: "संग्रहीत देखें",
sessionArchived: "थ्रेड संग्रहीत किया गया",
sessionsArchived: "{count} थ्रेड संग्रहीत किए गए",
deleteAllArchived: "सभी संग्रहीत हटाएं…",
deleteAllArchivedConfirm: "{count} संग्रहीत थ्रेड और उनके ट्रांसक्रिप्ट हटाएं?",
activeTooltip: "पिछले {count} मिनटों में अपडेट किए गए सेशन लोड करता है।",
limitTooltip: "लोड करने के लिए अधिकतम सेशन।",
globalTooltip: "ग्लोबल सेशन शामिल करें।",
@@ -584,6 +607,8 @@ export const hi: TranslationMap = {
actions: "कार्रवाइयाँ",
addToWorkboard: "Workboard में जोड़ें",
openWorkboardCard: "Workboard कार्ड खोलें",
dashboardAvailable: "डैशबोर्ड उपलब्ध",
approvalNeeded: "अनुमोदन आवश्यक",
noSessions: "कोई सत्र नहीं मिला।",
noSessionsMatchFilters: "आपके फ़िल्टर से कोई सत्र मेल नहीं खाता।",
pagination: "{total} में से {start}-{end} पंक्तियाँ",
@@ -623,10 +648,17 @@ export const hi: TranslationMap = {
statusFailed: "विफल",
statusKilled: "समाप्त किया गया",
statusTimeout: "समय समाप्त",
waitingForAnswer: "आपके उत्तर की प्रतीक्षा है",
waitingForApproval: "अनुमोदन की प्रतीक्षा है",
runFailedReason: "रन विफल: {reason}",
runErrorTimedOut: "समय समाप्त",
runErrorUnknown: "अज्ञात त्रुटि",
attentionRequired: "सत्र पर ध्यान देना आवश्यक है",
model: "मॉडल",
provider: "प्रदाता",
runtime: "रनटाइम",
runDuration: "चलने की अवधि",
lastActive: "अंतिम बार सक्रिय {time}",
surface: "सतह",
subject: "विषय",
room: "रूम",
@@ -636,6 +668,7 @@ export const hi: TranslationMap = {
showChildSessions: "{session} के लिए {count} चाइल्ड सेशन दिखाएँ",
hideChildSessions: "{session} के लिए {count} चाइल्ड सेशन छिपाएँ",
childSessions: "चाइल्ड सेशन",
showMoreChildren: "{count} और दिखाएँ",
archived: "आर्काइव किया गया",
pinned: "पिन किया गया",
unread: "Unread",
@@ -647,6 +680,10 @@ export const hi: TranslationMap = {
renameSessionMenu: "Rename…",
pinSession: "सत्र पिन करें",
unpinSession: "सत्र अनपिन करें",
changeIcon: "आइकन बदलें",
customEmoji: "कस्टम इमोजी",
invalidEmojiIcon: "ठीक एक इमोजी दर्ज करें।",
removeIcon: "आइकन हटाएँ",
markUnread: "Mark as unread",
markRead: "Mark as read",
markUnreadCount: "{count} को अपठित के रूप में चिह्नित करें",
@@ -1078,40 +1115,9 @@ export const hi: TranslationMap = {
},
channels: {
title: "चैनल",
connectedCount: "{count} कनेक्टेड",
empty: "कोई चैनल कॉन्फ़िगर नहीं किया गया",
connect: "कनेक्ट करें →",
},
automation: {
title: "ऑटोमेशन",
scheduledTask: "{count} शेड्यूल्ड कार्य",
scheduledTasks: "{count} शेड्यूल्ड कार्य",
installedSkill: "{count} skill इंस्टॉल है",
installedSkills: "{count} skills इंस्टॉल हैं",
mcpServer: "{count} MCP server",
mcpServers: "{count} MCP servers",
manage: "प्रबंधित करें →",
browse: "ब्राउज़ करें →",
configure: "कॉन्फ़िगर करें →",
},
appearance: {
title: "दिखावट",
theme: "थीम",
textSize: "टेक्स्ट आकार",
importedTheme: "इंपोर्ट की गई थीम",
import: "इंपोर्ट करें",
themes: {
claw: "Claw",
knot: "Knot",
dash: "Dash",
},
textSizes: {
small: "S",
medium: "M",
large: "L",
xl: "XL",
xxl: "XXL",
},
lobsterVisits: "लॉब्स्टर की विज़िट",
lobsterVisitsOn: "कभी-कभी आ जाता है",
lobsterVisitsOff: "कभी नहीं आता",
@@ -1124,7 +1130,6 @@ export const hi: TranslationMap = {
},
security: {
title: "सुरक्षा",
configure: "कॉन्फ़िगर करें →",
gatewayAuth: "Gateway auth",
execPolicy: "Exec नीति",
deviceAuth: "डिवाइस प्रमाणीकरण",
@@ -1148,23 +1153,29 @@ export const hi: TranslationMap = {
},
personal: {
title: "व्यक्तिगत",
profileTitle: "प्रोफ़ाइल",
user: "उपयोगकर्ता",
you: "आप",
assistant: "असिस्टेंट",
localIdentity: "आपकी स्थानीय चैट पहचान",
profileIdentity: "आपकी gateway प्रोफ़ाइल",
assistantIdentity: "असिस्टेंट पहचान",
displayName: "प्रदर्शित नाम",
displayNamePlaceholder: "आपका नाम",
saveProfile: "नाम सहेजें",
saving: "सहेजा जा रहा है…",
uploading: "प्रोसेस हो रहा है…",
profileHint: "JPEG, PNG, या WebP. छवियां केंद्र से क्रॉप की जाती हैं और 512px तक आकार बदला जाता है।",
profileLoadFailed: "आपकी प्रोफ़ाइल लोड नहीं हो सकी।",
profileSaveFailed: "आपकी प्रोफ़ाइल सहेजी नहीं जा सकी।",
avatarInvalid: "एक मान्य JPEG, PNG, या WebP छवि चुनें।",
avatarTooLarge: "प्रोसेस किया गया अवतार अभी भी बहुत बड़ा है।",
avatarText: "अवतार टेक्स्ट / इमोजी",
avatarPlaceholder: "JD या 🦞",
chooseImage: "छवि चुनें",
replaceImage: "छवि बदलें",
clearAvatar: "अवतार हटाएँ",
clearOverride: "ओवरराइड हटाएँ",
browserOnly: "केवल इसी ब्राउज़र में संग्रहीत।",
overrideHint:
"एक Control UI ओवरराइड संग्रहीत करता है। कॉन्फ़िगर किए गए अवतार पर लौटने के लिए इसे हटाएँ।",
uiOverride: "UI ओवरराइड",
configuredAvatar: "कॉन्फ़िगर किया गया अवतार",
overrideFromSettings: "सेटिंग्स से ओवरराइड",
fallbackAvatar: "फ़ॉलबैक अवतार",
fallbackLogo: "फ़ॉलबैक लोगो",
avatarIssues: {
@@ -1178,26 +1189,16 @@ export const hi: TranslationMap = {
},
},
configPage: {
settingsView: "सेटिंग्स दृश्य",
simple: "सरल",
advanced: "उन्नत",
content: "सेटिंग्स की सामग्री",
themeImported: "{name} आयात किया गया।",
themeRemoved: "कस्टम थीम हटा दी गई।",
channels: {
telegram: "Telegram",
discord: "Discord",
slack: "Slack",
whatsapp: "WhatsApp",
signal: "Signal",
imessage: "iMessage",
},
},
configView: {
categories: {
core: "कोर",
ai: "AI और एजेंट्स",
communication: "संचार",
security: "गोपनीयता और सुरक्षा",
automation: "ऑटोमेशन",
infrastructure: "इन्फ्रास्ट्रक्चर",
appearance: "दिखावट",
@@ -1229,6 +1230,7 @@ export const hi: TranslationMap = {
bindings: "बाइंडिंग्स",
cron: "Cron",
approvals: "स्वीकृतियां",
security: "सुरक्षा नीति",
plugins: "प्लगइन",
gateway: "Gateway",
web: "वेब",
@@ -1264,11 +1266,15 @@ export const hi: TranslationMap = {
xl: "XL",
xxl: "XXL",
},
syncedHint: "Gateway के माध्यम से आपके डिवाइस पर सिंक किया गया।",
notifications: {
title: "पुश नोटिफ़िकेशन",
nativeTitle: "सूचनाएं",
hint: "अपने gateway से ब्राउज़र पुश नोटिफ़िकेशन प्राप्त करें।",
nativeHint: "इस Mac पर OpenClaw ऐप द्वारा सूचनाएं मूल रूप से दिखाई जाती हैं।",
unavailableHint: "इस ब्राउज़र में उपलब्ध नहीं है।",
unavailable: "अनुपलब्ध",
checking: "जांच रहे हैं...",
granted: "अनुमति दी गई",
denied: "अस्वीकृत",
notRequested: "अनुरोध नहीं किया गया",
@@ -1286,7 +1292,10 @@ export const hi: TranslationMap = {
sendTest: "परीक्षण भेजें",
subscribing: "सदस्यता ली जा रही है...",
enable: "सूचनाएँ सक्षम करें",
openSystemSettings: "System Settings खोलें",
blockedHint: "सूचनाएँ अवरुद्ध हैं। सूचनाओं की अनुमति देने के लिए अपने ब्राउज़र की साइट अनुमतियाँ अपडेट करें।",
nativeBlockedHint:
"macOS में OpenClaw के लिए सूचनाएं अक्षम हैं। उन्हें System Settings > Notifications में अनुमति दें।",
},
appearance: {
theme: "थीम",
@@ -1313,6 +1322,12 @@ export const hi: TranslationMap = {
title: "चैट",
hint: "ब्राउज़र-स्थानीय चैट प्राथमिकताएँ।",
},
sidebarPrefs: {
title: "साइडबार",
hint: "चुनें कि सत्र चलते समय क्या दिखाई दे।",
liveActivity: "साइडबार में लाइव एजेंट गतिविधि दिखाएं",
liveActivityHint: "चल रहे सत्रों के नीचे नवीनतम असिस्टेंट या टूल गतिविधि दिखाएं।",
},
connection: {
title: "कनेक्शन",
gateway: "Gateway",
@@ -1370,6 +1385,10 @@ export const hi: TranslationMap = {
execApprovalNeeded: "Exec अनुमोदन आवश्यक",
pluginApprovalNeeded: "प्लगइन अनुमोदन आवश्यक",
pending: "{count} लंबित",
otherPending: "अन्य लंबित अनुरोध",
reviewRequest: "{agent} से अनुमोदन की समीक्षा करें: {command}",
agentPendingOne: "{count} अनुमोदन लंबित",
agentPending: "{count} अनुमोदन लंबित",
allowOnce: "एक बार अनुमति दें",
alwaysAllow: "हमेशा अनुमति दें",
allowAlwaysUnavailable: "इस कमांड के लिए हमेशा अनुमति दें उपलब्ध नहीं है।",
@@ -1572,8 +1591,10 @@ export const hi: TranslationMap = {
chat: "चैट",
settings: "सेटिंग्स",
settingsGeneral: "सामान्य",
askOpenClaw: "OpenClaw से पूछें",
settingsGroupConnections: "कनेक्शन",
settingsGroupAgents: "एजेंट और टूल्स",
settingsGroupSecurity: "गोपनीयता और सुरक्षा",
settingsGroupSystem: "सिस्टम",
settingsSearchLabel: "सेटिंग खोजें",
settingsSearchPlaceholder: "सेटिंग खोजें…",
@@ -1585,6 +1606,8 @@ export const hi: TranslationMap = {
collapse: "साइडबार समेटें",
resize: "साइडबार का आकार बदलें",
more: "अधिक",
home: "होम",
pages: "पेज",
customize: "साइडबार कस्टमाइज़ करें",
customizeReset: "डिफ़ॉल्ट पर रीसेट करें",
},
@@ -1673,6 +1696,7 @@ export const hi: TranslationMap = {
tabs: {
agents: "एजेंट",
activity: "गतिविधि",
apps: "ऐप्स",
approvals: "स्वीकृतियां",
workboard: "वर्कबोर्ड",
worktrees: "Worktrees",
@@ -1687,6 +1711,7 @@ export const hi: TranslationMap = {
skillWorkshop: "कौशल वर्कशॉप",
nodes: "नोड्स",
chat: "चैट",
custodian: "OpenClaw",
config: "कॉन्फ़िग",
profile: "प्रोफ़ाइल",
communications: "संचार",
@@ -1694,11 +1719,15 @@ export const hi: TranslationMap = {
automation: "ऑटोमेशन",
mcp: "MCP",
infrastructure: "इन्फ्रास्ट्रक्चर",
labs: "Labs",
about: "परिचय",
aiAgents: "AI और एजेंट्स",
modelSetup: "मॉडल सेटअप",
modelProviders: "Model Providers",
memoryImport: "मेमोरी इंपोर्ट करें",
notifications: "सूचनाएं",
security: "गोपनीयता और सुरक्षा",
advanced: "उन्नत",
debug: "डीबग",
logs: "लॉग्स",
plugin: "प्लगइन",
@@ -1706,6 +1735,7 @@ export const hi: TranslationMap = {
subtitles: {
agents: "वर्कस्पेस, टूल्स, पहचान।",
activity: "ब्राउज़र-लोकल टूल गतिविधि सारांश।",
apps: "फ़ोन, वॉच, डेस्कटॉप और ब्राउज़र के लिए साथी ऐप्स।",
approvals: "हाल के exec, plugin और system-agent अनुमोदन।",
workboard: "एजेंट कार्य कतार और सेशन हैंडऑफ़।",
worktrees: "पृथक agent task checkouts और recovery snapshots.",
@@ -1720,6 +1750,7 @@ export const hi: TranslationMap = {
skillWorkshop: "प्रस्तावों के लाइव स्किल्स बनने से पहले उनकी समीक्षा करें, उन्हें परिष्कृत करें और लागू करें।",
nodes: "पेयर किए गए डिवाइस और कमांड्स।",
chat: "त्वरित हस्तक्षेपों के लिए गेटवे चैट।",
custodian: "सिस्टम सेटअप और देखभाल।",
config: "openclaw.json संपादित करें।",
profile: "आपके एजेंट के आँकड़े, streaks, और रीफ में जीवन।",
communications: "चैनल, संदेश, और ऑडियो सेटिंग्स।",
@@ -1727,11 +1758,15 @@ export const hi: TranslationMap = {
automation: "कमांड, हुक, cron, और प्लगइन।",
mcp: "MCP सर्वर, auth, टूल, और डायग्नोस्टिक्स।",
infrastructure: "Gateway, web, browser, और media सेटिंग्स।",
labs: "प्रयोगात्मक एजेंट और टूल क्षमताएँ।",
about: "Control UI और कनेक्टेड Gateway बिल्ड पहचान।",
aiAgents: "एजेंट, मॉडल, स्किल, टूल, मेमोरी, सेशन।",
modelSetup: "सत्यापित AI मॉडल कनेक्ट करें",
modelProviders: "Configured providers with plan, quota, and cost.",
memoryImport: "Codex और Claude Code की मेमोरी को एजेंट वर्कस्पेस में लाएँ।",
notifications: "आपके gateway से ब्राउज़र पुश सूचनाएँ।",
security: "Gateway ऑथ, exec पॉलिसी, टूल प्रोफ़ाइल, और अनुमोदन।",
advanced: "हर शेष कॉन्फ़िग अनुभाग, साथ ही रॉ फ़ाइल एडिटर।",
debug: "स्नैपशॉट, इवेंट, RPC।",
logs: "लाइव gateway लॉग।",
plugin: "प्लगइन द्वारा उपलब्ध कराया गया पैनल।",
@@ -1882,8 +1917,78 @@ export const hi: TranslationMap = {
"{migrated} माइग्रेट किए गए, {skipped} छोड़े गए। आप OpenClaw को सेट अप करना जारी रख सकते हैं।",
},
},
custodian: {
title: "OpenClaw",
subtitle: "आपका सिस्टम सेटअप गाइड",
subtitleCaretaker: "सिस्टम सेटअप और देखभाल।",
exitSetup: "सेटअप से बाहर निकलें",
newAgent: "नया एजेंट",
hatchDraft: "जागो, मेरे दोस्त!",
placeholder: "OpenClaw को संदेश भेजें…",
sensitivePlaceholder: "संवेदनशील मान दर्ज करें…",
sensitiveReply: "संवेदनशील उत्तर भेजा गया",
send: "भेजें",
thinking: "OpenClaw सोच रहा है",
earlier: "पहले",
requestFailed: "OpenClaw उत्तर नहीं दे सका। फिर से प्रयास करें।",
connectionChanged: "Gateway कनेक्शन बदल गया। इस सेटअप को जारी रखने के लिए फिर से प्रयास करें।",
sessionRestarted: "{error} OpenClaw ने एक नया सत्र शुरू किया; संदर्भ के लिए पहले के संदेश बने रहते हैं।",
unsupportedGateway: "OpenClaw के साथ सेटअप जारी रखने के लिए Gateway को अपडेट करें।",
history: {
button: "इतिहास",
title: "हाल के परिवर्तन",
description: "इस सिस्टम पर क्या बदला, नवीनतम पहले।",
loading: "हाल के परिवर्तन लोड हो रहे हैं…",
empty: "अभी तक कोई परिवर्तन दर्ज नहीं किया गया।",
requestFailed: "OpenClaw परिवर्तन इतिहास लोड नहीं कर सका।",
loadMore: "और लोड करें",
loadingMore: "और लोड हो रहा है…",
changedPaths: "बदले गए पथ ({count})",
invalidEdit: "यह मैन्युअल संपादन कॉन्फ़िगरेशन सत्यापन में पास नहीं हुआ।",
opaqueChange: "दृश्यमान कॉन्फ़िगरेशन पथ परिवर्तनों के बिना फ़ॉर्मेटिंग या टिप्पणियाँ बदल गईं।",
sources: {
systemAgent: "system-agent",
doctor: "doctor",
settings: "settings",
cli: "CLI",
pluginInstall: "plugin install",
manualEdit: "manual edit",
unknown: "अज्ञात",
},
},
nudge: {
configReload: "कॉन्फ़िगरेशन रीलोड रुक गया — मुझसे पूछें क्या हुआ",
channelAuth: "{channel} प्रमाणीकरण घट गया — मुझसे पूछें क्या हुआ",
channelDisconnected: "{channel} अभी डिस्कनेक्ट हुआ — मुझसे पूछें क्या हुआ",
channelDegraded: "{channel} घटा हुआ है — मुझसे पूछें क्या हुआ",
channelFallback: "एक चैनल",
dismiss: "इस अपडेट को खारिज करें",
},
},
mcpServers: {
add: "सर्वर जोड़ें",
adding: "जोड़ा जा रहा है…",
nameLabel: "नाम",
targetLabel: "URL या कमांड",
nameInvalid: "सर्वर नामों में अक्षर, संख्याएं, डॉट, डैश या अंडरस्कोर का उपयोग करें।",
targetInvalid: "एक http(s) URL या कमांड लाइन दर्ज करें।",
nameTaken: "“{name}” नाम का एक MCP सर्वर पहले से मौजूद है।",
missing: "कॉन्फ़िगरेशन में MCP सर्वर “{name}” नहीं मिला।",
missingTransport: "ट्रांसपोर्ट अनुपस्थित",
addedSuccess: "MCP सर्वर {name} जोड़ा गया।",
enabledSuccess: "MCP सर्वर {name} सक्षम किया गया।",
disabledSuccess: "MCP सर्वर {name} अक्षम किया गया।",
removedSuccess: "MCP सर्वर {name} हटाया गया।",
configUnavailable: "कॉन्फ़िगरेशन उपलब्ध नहीं है; रीफ़्रेश करें और फिर से प्रयास करें।",
connectRequired: "MCP सर्वर बदलने के लिए gateway से कनेक्ट करें।",
adminRequired: "MCP सर्वर बदलावों के लिए operator.admin एक्सेस आवश्यक है।",
enable: "सक्षम करें",
disable: "अक्षम करें",
removeNamed: "{name} को हटाएँ",
working: "काम हो रहा है…",
},
mcpPage: {
manageServersLink: "Plugins पेज पर सर्वर प्रबंधित करें।",
connectorsLink: "Plugins पेज पर वन-क्लिक कनेक्टर खोजें।",
servers: "सर्वर",
oauth: "OAuth",
filtered: "फ़िल्टर किया गया",
@@ -1895,10 +2000,12 @@ export const hi: TranslationMap = {
"रनटाइम परिवर्तन सहेजने और प्रकाशित करने के बाद लागू होते हैं; सक्रिय एजेंट अगले उपयोग पर MCP रनटाइम पुनर्निर्मित करते हैं।",
toolFilter: "टूल फ़िल्टर",
parallel: "समानांतर",
missingTransport: "ट्रांसपोर्ट अनुपस्थित",
tlsVerifyOff: "TLS सत्यापन बंद",
mtls: "mTLS",
},
sessionsPage: {
hubTablistLabel: "थ्रेड अनुभाग",
},
pluginsPage: {
searchLabel: "प्लगइन खोजें",
searchPlaceholder: "प्लगइन खोजें",
@@ -1980,18 +2087,7 @@ export const hi: TranslationMap = {
mcpSettingsLink: "MCP सेटिंग्स",
mcpHint:
"अपने एजेंट को अतिरिक्त टूल देने के लिए Model Context Protocol सर्वर कनेक्ट करें। बदलाव नए एजेंट सेशन पर लागू होते हैं।",
mcpAdd: "सर्वर जोड़ें",
mcpAdding: "जोड़ा जा रहा है…",
mcpEmpty: "अभी तक कोई MCP सर्वर कॉन्फ़िगर नहीं किया गया है। यहाँ एक जोड़ें या Discover से कोई कनेक्टर चुनें।",
mcpNameLabel: "नाम",
mcpTargetLabel: "URL या कमांड",
mcpNameInvalid: "सर्वर नामों में अक्षर, संख्याएँ, डॉट, डैश या अंडरस्कोर इस्तेमाल किए जा सकते हैं।",
mcpTargetInvalid: "कोई http(s) URL या कमांड लाइन दर्ज करें।",
mcpNameTaken: "“{name}” नाम का MCP सर्वर पहले से मौजूद है।",
mcpMissing: "MCP सर्वर “{name}” कॉन्फ़िगरेशन में नहीं मिला।",
mcpAddedSuccess: "MCP सर्वर {name} जोड़ा गया।",
mcpRemovedSuccess: "MCP सर्वर {name} हटाया गया।",
mcpConfigUnavailable: "कॉन्फ़िगरेशन उपलब्ध नहीं है; रीफ़्रेश करें और फिर से कोशिश करें।",
remove: "हटाएँ",
removing: "हटाया जा रहा है…",
removeNamed: "{name} हटाएँ",
@@ -2040,6 +2136,25 @@ export const hi: TranslationMap = {
disabledSuccess: "{name} अक्षम किया गया।",
disabledRestart: "{name} अक्षम किया गया। बदलाव लागू करने के लिए Gateway को रीस्टार्ट करना आवश्यक है।",
},
labsPage: {
intro: "Labs में प्रायोगिक क्षमताएं हैं जो रिलीज़ के बीच बदल सकती हैं, टूट सकती हैं या हटाई जा सकती हैं।",
sectionTitle: "प्रायोगिक सुविधाएं",
sectionDescription: "बदलाव तुरंत सहेजे जाते हैं और भविष्य के एजेंट रन पर लागू होते हैं।",
documentation: "दस्तावेज़",
restartRequired: "Gateway को पुनः आरंभ करना आवश्यक है।",
saveErrorTitle: "सुविधा अपडेट नहीं की जा सकी",
saveFailed: "सुविधा सेटिंग सहेजी नहीं जा सकी।",
codeMode: {
title: "Code Mode",
description: "एजेंट्स को कॉम्पैक्ट, सैंडबॉक्स्ड JavaScript वर्कफ़्लो में टूल्स संयोजित करने दें।",
},
swarm: {
title: "Swarm",
description: "Code Mode को समानांतर में सबएजेंट्स के समूहों को व्यवस्थित करने दें।",
empty: "कोई सक्रिय swarm नहीं।",
defaultPhase: "अनफेज़्ड",
},
},
aboutPage: {
productName: "OpenClaw",
tagline: "आपका व्यक्तिगत AI सहायक, जो आपके अपने डिवाइसों पर चलता है।",
@@ -2049,6 +2164,7 @@ export const hi: TranslationMap = {
linkDocs: "दस्तावेज़",
linkGitHub: "GitHub",
linkDiscord: "Discord",
linkX: "X (Twitter)",
linkChangelog: "परिवर्तन लॉग",
license: "© 2026 OpenClaw Foundation — MIT License.",
artifactTitle: "Control UI",
@@ -2066,6 +2182,72 @@ export const hi: TranslationMap = {
gatewayVersion: "कनेक्टेड Gateway संस्करण",
gatewayVersionHint: "सक्रिय Gateway कनेक्शन द्वारा रिपोर्ट किया गया; इस Control UI बिल्ड से अलग।",
},
appsPage: {
heroTitle: "OpenClaw को हर जगह ले जाएँ",
heroTagline:
"आपके फ़ोन, वॉच, डेस्कटॉप और ब्राउज़र के लिए कम्पैनियन ऐप्स — साथ ही आपके एजेंट की क्षमताओं को विस्तारित करने वाले प्लगइन्स।",
sectionMobile: "आपके फ़ोन पर",
havePhone: "पहले से ऐप है?",
pairDevice: "अपना डिवाइस पेयर करें",
sectionWatch: "आपकी कलाई पर",
sectionDesktop: "आपके डेस्कटॉप पर",
sectionBrowser: "आपके ब्राउज़र में",
sectionCommunity: "समुदाय",
badgeBundledIos: "iOS ऐप के साथ शामिल",
badgeBundledAndroid: "Android ऐप के साथ शामिल",
ctaAppStore: "App Store",
ctaPlayStore: "Google Play",
ctaDownload: "डाउनलोड करें",
ctaDocs: "दस्तावेज़",
ctaSetupGuide: "सेटअप गाइड",
ctaOpenPlugins: "Plugins खोलें",
ctaBrowseClawHub: "ClawHub ब्राउज़ करें",
linkDiscord: "Discord समुदाय",
linkDocs: "दस्तावेज़",
cards: {
ios: {
title: "iPhone",
desc: "iOS से चैट करें, बात करें, कार्रवाइयाँ स्वीकृत करें और OpenClaw में साझा करें।",
},
android: {
title: "Android",
desc: "आपका Android फ़ोन एक पूर्ण OpenClaw नोड के रूप में — चैट, कैमरा और Canvas।",
},
appleWatch: {
title: "Apple Watch",
desc: "आपकी कलाई से एक नज़र में चैट और त्वरित जवाब।",
},
wearOs: {
title: "Wear OS",
desc: "Android साथी OpenClaw को आपकी घड़ी तक विस्तारित करता है।",
},
macos: {
title: "macOS",
desc: "आपके Gateway के लिए मेनू बार साथी — सूचनाएँ, स्वीकृतियाँ, त्वरित चैट।",
},
windows: {
title: "Windows",
desc: "Windows साथी आपके PC को एक OpenClaw नोड के रूप में जोड़ता है।",
},
linux: {
title: "Linux",
desc: "नेटिव डेस्कटॉप ऐप — .deb और AppImage बिल्ड।",
},
chrome: {
title: "Chrome एक्सटेंशन",
desc: "OpenClaw को अपना मौजूदा Chrome चलाने दें — टैब, पेज और फ़ॉर्म।",
},
plugins: {
title: "Plugins और ClawHub",
desc: "समुदाय के चैनल, टूल और Skills के साथ OpenClaw का विस्तार करें।",
},
},
},
presence: {
rosterLabel: "देखें कौन ऑनलाइन है",
rosterTitle: "ऑनलाइन",
you: "आप",
},
profilePage: {
offline: "अपने एजेंट से मिलने के लिए Gateway से कनेक्ट करें।",
loading: "आँकड़ों के लिए गोता लगा रहे हैं…",
@@ -2097,6 +2279,26 @@ export const hi: TranslationMap = {
toolsEmpty: "अभी तक कोई टूल रन रिकॉर्ड नहीं किया गया है।",
toolRun: "{count} रन",
toolRuns: "{count} रन",
identity: {
title: "पहचान",
description: "इस gateway पर आपकी प्रोफ़ाइल।",
loading: "आपकी पहचान लोड हो रही है…",
profileUnavailable: "आपकी पहचान प्रोफ़ाइल लोड नहीं हो सकी।",
avatar: "अवतार",
avatarDescription: "PNG, JPEG, या WebP। छवियों का आकार 256 × 256 या उससे छोटा किया जाता है।",
chooseAvatar: "छवि चुनें",
processingAvatar: "प्रोसेस हो रहा है…",
displayName: "प्रदर्शित नाम",
displayNameDescription: "इस gateway का उपयोग करने वाले अन्य लोगों को दिखाया जाता है।",
linkedEmails: "लिंक किए गए ईमेल",
linkedEmailsDescription: "इस प्रोफ़ाइल से जुड़े ईमेल पते।",
openSettings: "{name} के लिए पहचान सेटिंग्स खोलें",
avatarErrors: {
invalid: "वह छवि प्रोसेस नहीं की जा सकी।",
sourceTooLarge: "10 MB या उससे छोटी छवि चुनें।",
tooLarge: "प्रोसेस किया गया अवतार 512 KB से बड़ा है।",
},
},
},
tasksPage: {
active: "सक्रिय",
@@ -2399,131 +2601,51 @@ export const hi: TranslationMap = {
submit: "पूछें",
},
},
workspaces: {
tabs: {
label: "Workspaces",
hidden: "Hidden ({count})",
},
error: {
title: "Couldn't load your workspaces",
subtitle: "Something went wrong loading your workspaces. Try reloading.",
detailSummary: "Show details",
},
header: {
subtitle: "Arrange widgets and tabs for this workspace.",
},
onboarding: {
title: "Build your first workspace tab",
primary: "Ask your agent to build a tab.",
secondary: "Or create one from the command line:",
},
empty: {
onboardingTitle: "No workspaces yet",
onboardingSubtitle:
"Ask your agent to build a workspace, or create one from the command line.",
onboardingCommand: "openclaw workspaces tabs create --title Main",
tabTitle: "This workspace is empty",
tabSubtitle: "Ask your agent to add a widget, or add one yourself.",
noVisibleTabs: "Every workspace tab is hidden. Restore one from the hidden menu.",
board: {
label: "थ्रेड डैशबोर्ड",
tabsLabel: "डैशबोर्ड टैब",
moreTabs: "अधिक डैशबोर्ड टैब",
gridLabel: "डैशबोर्ड विजेट",
emptyTitle: "एक साफ़ बोर्ड, काम के लिए तैयार",
emptyHint: "आपका एजेंट यहाँ विजेट पिन कर सकता है — एक स्टेटस कार्ड के लिए कहकर देखें।",
actionFailed: "डैशबोर्ड परिवर्तन सहेजा नहीं जा सका।",
actionInProgress: "एक और डैशबोर्ड परिवर्तन अभी भी सहेजा जा रहा है।",
announcement: {
moved: "{title} को स्थानांतरित किया गया।",
resized: "{title} का आकार बदला गया।",
removed: "{title} को हटाया गया।",
granted: "विजेट एक्सेस की अनुमति दी गई।",
rejected: "विजेट एक्सेस अस्वीकृत।",
},
widget: {
collapse: "Collapse widget",
expand: "Expand widget",
moveHandle: "Move widget",
resizeHandle: "Resize widget",
menuLabel: "Widget options",
provenanceChip: "AI",
provenanceTooltip: "Built by {agent}",
errorTitle: "This widget couldn't load",
errorHumane: "This widget ran into a problem while rendering.",
errorDetailSummary: "Show details",
customPlaceholder: "Custom widget — coming soon.",
customLoading: "Loading custom widget…",
approval: {
title: "Custom widget awaiting approval",
byAgent: "Built by {agent}",
byUnknown: "Built by an unknown agent",
approve: "Approve",
reject: "Reject",
unavailable:
"This custom widget isn't available. Ask your agent to rebuild it, or remove it.",
},
markdownEmpty: "No content yet.",
unknownKind: "Unknown widget type: {kind}",
editTitleTitle: "Edit widget title",
editTitleLabel: "Widget title",
moveToTabTitle: "Move to tab",
moveToTabEmpty: "There are no other tabs to move this widget to.",
menu: {
editTitle: "Edit title",
moveToTab: "Move to tab…",
hide: "Hide",
remove: "हटाएँ",
},
stat: {
empty: "—",
},
table: {
empty: "No rows to show.",
more: "+{count} और",
},
chart: {
empty: "चार्ट बनाने के लिए कोई डेटा नहीं है।",
invalid: "इस चार्ट में अमान्य डेटा या विकल्प हैं।",
label: "चार्ट",
summary: "{title}: {count} डेटा बिंदु, {min} से {max} तक।",
},
sessions: {
empty: "No sessions yet.",
},
agentStatus: {
empty: "अभी तक कोई एजेंट या सत्र नहीं है।",
busy: "व्यस्त",
idle: "निष्क्रिय",
progress: "{percent}% पूर्ण",
},
customWidgetApprovals: {
empty: "कोई कस्टम विजेट अनुमोदन की प्रतीक्षा में नहीं है।",
kind: "कस्टम विजेट",
requestedBy: "{agent} द्वारा अनुरोधित",
approve: "स्वीकृत करें",
reject: "अस्वीकार करें",
permissionRequired: "अनुमोदन अनुमति आवश्यक है",
},
usage: {
cost: "लागत",
tokens: "टोकन",
},
cron: {
empty: "No scheduled jobs.",
next: "Next {time}",
noNext: "Not scheduled",
},
instances: {
empty: "No connected instances.",
idle: "Idle for {duration}",
},
activity: {
empty: "No recent activity.",
},
embed: {
missing: "This embed has no URL yet.",
blockedExternal: "External embeds are disabled by your gateway policy.",
blockedScheme: "This embed URL uses an unsupported scheme.",
},
preview: {
missing: "इस पूर्वावलोकन के लिए अभी कोई URL नहीं है।",
blockedExternal: "आपकी gateway नीति द्वारा बाहरी पूर्वावलोकन अक्षम किए गए हैं।",
blockedScheme: "यह पूर्वावलोकन URL एक असमर्थित स्कीम का उपयोग करता है।",
toolbar: "पूर्वावलोकन नियंत्रण",
reload: "पूर्वावलोकन फिर से लोड करें",
viewport: {
label: "पूर्वावलोकन व्यूपोर्ट",
desktop: "डेस्कटॉप",
tablet: "टैबलेट",
mobile: "मोबाइल",
},
},
cellLabel:
"डैशबोर्ड विजेट: {title}। नेविगेट करने के लिए एरो कीज़ का उपयोग करें। इसे स्थानांतरित करने के लिए Alt दबाए रखें और एक एरो की दबाएं।",
moveHandle: "{title} को स्थानांतरित करें",
resizeHandle: "{title} का आकार बदलें",
menuLabel: "विजेट विकल्प",
moveToTab: "टैब में स्थानांतरित करें",
noOtherTabs: "कोई अन्य टैब नहीं",
resize: "आकार बदलें",
remove: "हटाएँ",
needsApproval: "अनुमोदन आवश्यक",
needsApprovalDetail: "इस विजेट ने अतिरिक्त पहुँच का अनुरोध किया।",
allow: "अनुमति दें",
reject: "अस्वीकार करें",
rejected: "पहुँच अस्वीकृत",
rejectedDetail: "यह विजेट तब तक निष्क्रिय रहता है जब तक इसे हटाया या बदला न जाए।",
appLoading: "ऐप पुनर्स्थापित हो रहा है…",
appStaleTitle: "यह पिन किया गया ऐप पुराना है",
appStaleDetail: "इसका सर्वर, संसाधन या मूल ट्रांसक्रिप्ट अब उपलब्ध नहीं है।",
retry: "पुनः प्रयास करें",
frameResolverMissing: "विजेट सामग्री उपलब्ध नहीं है।",
frameAuthorizationFailed: "बार-बार रीफ़्रेश प्रयासों के बाद विजेट प्राधिकरण विफल रहा।",
errorTitle: "यह विजेट लोड नहीं हो सका",
errorDetail: "समस्या इस कार्ड तक सीमित है।",
actionErrorTitle: "विजेट परिवर्तन विफल रहा",
actionErrorDetail: "डैशबोर्ड ने पिछली विजेट स्थिति बनाए रखी।",
errorShow: "विवरण दिखाएँ",
kindMcp: "MCP",
kindHtml: "HTML",
},
},
workboard: {
@@ -2792,7 +2914,6 @@ export const hi: TranslationMap = {
cronFailed: "{count} cron जॉब विफल",
cronOverdue: "{count} cron जॉब की समय-सीमा बीत गई",
modelAuthExpired: "मॉडल प्रमाणीकरण की समय-सीमा समाप्त: {providers}",
modelAuthExpiring: "मॉडल प्रमाणीकरण की समय-सीमा जल्द समाप्त होगी: {providers}",
pendingApproval: "{count} अनुमोदन लंबित",
pendingApprovals: "{count} अनुमोदन लंबित",
},
@@ -2852,6 +2973,7 @@ export const hi: TranslationMap = {
skills: "कौशल",
},
items: {
apps: "ऐप्स",
sessions: "सत्र",
scheduled: "शेड्यूल किए गए",
skills: "कौशल",
@@ -3505,6 +3627,7 @@ export const hi: TranslationMap = {
},
chat: {
disconnected: "Gateway से डिस्कनेक्ट हो गया।",
waitingForApproval: "अनुमोदन की प्रतीक्षा में…",
archivedSessionDisabled: "संदेश भेजने के लिए इस सत्र को बहाल करें।",
loadOlder: "पुराने लोड करें",
sessionHeader: {
@@ -3519,6 +3642,34 @@ export const hi: TranslationMap = {
copyPath: "पथ कॉपी करें",
copyBranch: "ब्रांच नाम कॉपी करें",
copied: "कॉपी किया गया",
branches: "थ्रेड शाखाएँ",
branchSwitchUnavailable: "एजेंट के कार्य करते समय शाखा स्विच उपलब्ध नहीं है।",
branchSwitchRequiresAdmin: "शाखा स्विचिंग के लिए ऑपरेटर एडमिन पहुँच आवश्यक है।",
untitledBranch: "अनाम शाखा",
oneMessage: "{count} संदेश",
messages: "{count} संदेश",
activeBranch: "सक्रिय शाखा",
},
board: {
faceLabel: "थ्रेड फेस",
chatFace: "चैट",
dashboardFace: "डैशबोर्ड",
dockMenu: "चैट डॉक: {dock}",
dockLeft: "चैट को बाएँ डॉक करें",
dockRight: "चैट को दाएँ डॉक करें",
dockBottom: "चैट को नीचे डॉक करें",
dockHidden: "चैट छिपाएँ",
resizeDock: "चैट डॉक का आकार बदलें",
reopenChat: "चैट दिखाएँ",
defaultTab: "मुख्य",
mockPlaceholder: "बोर्ड व्यू सीम · {tabs} टैब · {widgets} विजेट",
mockOverview: "ओवरव्यू",
mockResearch: "अनुसंधान",
mockSessionStatus: "थ्रेड स्थिति",
mockRecentFindings: "हाल के निष्कर्ष",
mockSourceMap: "स्रोत मानचित्र",
resetTitle: "बातचीत रीसेट करें?",
resetDescription: "बातचीत का संदर्भ रीसेट हो जाता है। आपका डैशबोर्ड बना रहता है।",
},
catalog: {
remoteViewOnly: "यह सत्र एक युग्मित नोड पर है और केवल देखने के लिए है।",
@@ -3657,7 +3808,9 @@ export const hi: TranslationMap = {
updateMacAndGateway: "Mac ऐप + Gateway अपडेट करें",
updateGateway: "Gateway अपडेट करें",
allSessions: "सभी सत्र",
chats: "चैट",
threads: "थ्रेड",
groups: "समूह",
coding: "कोडिंग",
groupCatalogSessionsByProject: "प्रोजेक्ट के अनुसार समूहित करें",
openSessionMenu: "Open session menu",
sortBy: "इसके अनुसार क्रमबद्ध करें",
@@ -3666,7 +3819,7 @@ export const hi: TranslationMap = {
sortUpdated: "अंतिम अपडेट",
sessionMenu: "Actions for {session}",
sessionMenuMany: "{count} सत्रों के लिए कार्रवाइयाँ",
workSessions: "कार्य",
toolActivity: "{tool} का उपयोग किया जा रहा है",
},
welcome: {
hintBeforeShortcut: "नीचे संदेश टाइप करें ·",
@@ -3711,11 +3864,40 @@ export const hi: TranslationMap = {
title: "Codex को इनपुट चाहिए",
other: "कोई अन्य उत्तर टाइप करें",
submit: "उत्तर सबमिट करें",
next: "अगला",
back: "वापस",
skip: "छोड़ें",
skipping: "छोड़ा जा रहा है…",
skipped: "छोड़ा गया",
collapse: "प्रश्न संक्षिप्त करें",
expand: "प्रश्न विस्तृत करें",
eyebrow: "प्रश्न",
cardLabel: "असिस्टेंट से प्रश्न",
summaryLabel: "प्रश्न का परिणाम",
timeRemaining: "शेष समय",
ownAnswer: "आपका अपना उत्तर…",
ownAnswerFor: "{header} के लिए आपका अपना उत्तर",
submitting: "सबमिट किया जा रहा है…",
submitFailed: "सबमिट नहीं कर सके: {error}",
answered: "उत्तर मिला",
answeredElsewhere: "अन्यत्र उत्तर दिया गया",
unavailable: "अनुपलब्ध",
expired: "समाप्त",
cancelled: "रद्द किया गया",
},
messages: {
activity: "गतिविधि",
deleteMessage: "संदेश हटाएँ",
forkFromHere: "यहाँ से फ़ोर्क करें",
hide: "छिपाएँ",
hideConfirm: "इस ब्राउज़र में इस संदेश को छिपाएँ? एजेंट फिर भी इसे देखता है।",
hideMessage: "संदेश छिपाएँ",
hideTooltip: "केवल इस ब्राउज़र में छिपाएँ",
openInCanvas: "कैनवास में खोलें",
rewind: "रिवाइंड करें",
rewindConfirm: "इस संदेश से पहले पर रिवाइंड करें?",
rewindToHere: "यहाँ तक रिवाइंड करें",
rewindUnavailable: "जब तक एजेंट काम कर रहा है, रिवाइंड उपलब्ध नहीं है",
forkUnavailable: "जब तक एजेंट काम कर रहा है, फ़ोर्क उपलब्ध नहीं है",
unknownDate: "अज्ञात तिथि",
voiceNote: "वॉइस नोट",
},
@@ -3723,6 +3905,9 @@ export const hi: TranslationMap = {
default: "डिफ़ॉल्ट",
reasoning: "तर्क",
speed: "गति",
sessionOverride: "थ्रेड ओवरराइड",
usingDefault: "Settings से डिफ़ॉल्ट का उपयोग किया जा रहा है",
resetToDefault: "डिफ़ॉल्ट पर रीसेट करें ({model})",
},
sideChat: {
title: "साइड चैट",
@@ -3799,8 +3984,13 @@ export const hi: TranslationMap = {
limitHours: "{hours}-घंटे की सीमा",
},
takePhoto: "फ़ोटो लें",
cameraAccessFailed: "कैमरा एक्सेस करने में असमर्थ।",
cameraBusy: "कैमरा व्यस्त है या ब्राउज़र के लिए अनुपलब्ध है।",
cameraFallback: "कैमरा {number}",
cameraInput: "कैमरा",
cameraListUnsupported: "यह ब्राउज़र कैमरों की सूची नहीं बना सकता।",
cameraNoneFound: "कोई कैमरा नहीं मिला।",
cameraPageInactive: "यह पेज निष्क्रिय होने पर कैमरे उपलब्ध नहीं हैं।",
cameraPermissionBlocked:
"कैमरा एक्सेस अवरुद्ध है। ब्राउज़र साइट सेटिंग्स में कैमरा और माइक्रोफ़ोन एक्सेस की अनुमति दें।",
cameraPreview: "कैमरा पूर्वावलोकन",
@@ -3809,20 +3999,39 @@ export const hi: TranslationMap = {
microphoneBusy: "माइक्रोफ़ोन इनपुट व्यस्त हैं या ब्राउज़र के लिए उपलब्ध नहीं हैं।",
microphoneFallback: "माइक्रोफ़ोन {number}",
microphoneInput: "माइक्रोफ़ोन इनपुट",
microphoneAppliesNextSession: "बदलाव तब लागू होंगे जब आप अपना अगला Talk सत्र शुरू करेंगे।",
microphoneListUnsupported: "यह ब्राउज़र माइक्रोफ़ोन इनपुट की सूची नहीं दिखा सकता।",
noCameras: "कोई अतिरिक्त कैमरा नहीं मिला",
noMicrophones: "कोई अतिरिक्त माइक्रोफ़ोन नहीं मिला",
microphoneNoneFound: "कोई माइक्रोफ़ोन इनपुट नहीं मिला।",
microphonePageInactive: "इस पेज के निष्क्रिय होने पर माइक्रोफ़ोन इनपुट उपलब्ध नहीं होते।",
microphonePermissionBlocked:
"माइक्रोफ़ोन एक्सेस ब्लॉक है। इनपुट की सूची देखने के लिए ब्राउज़र साइट सेटिंग्स में इसकी अनुमति दें।",
holdToRecordSetting: "बोलकर लिखने के लिए माइक्रोफ़ोन बटन दबाकर रखें",
holdToRecordSettingDescription:
"कंपोज़र माइक्रोफ़ोन बटन को दबाकर रखें, बोलें, फिर बिना भेजे टेक्स्ट डालने के लिए छोड़ें।",
dictationAudioUnsupported: "Gateway ने एक असमर्थित डिक्टेशन ऑडियो फ़ॉर्मेट लौटाया।",
dictationBrowserAudioUnsupported: "यह ब्राउज़र 8 kHz पर डिक्टेशन ऑडियो कैप्चर नहीं कर सकता।",
dictationConnecting: "डिक्टेशन शुरू हो रहा है…",
dictationDisconnected: "Gateway के डिस्कनेक्ट होने के कारण डिक्टेशन रुक गया।",
dictationFailed: "श्रुतलेखन विफल रहा।",
dictationFinalizing: "श्रुतलेखन पूरा किया जा रहा है…",
dictationFinalizationTimedOut: "अंतिम आंशिक प्रतिलेख को अंतिम रूप देने से पहले श्रुतलेखन रुक गया।",
dictationProviderUnavailable: "श्रुतलेखन के लिए कोई ट्रांसक्रिप्शन प्रदाता कॉन्फ़िगर नहीं है।",
dictationRecording: "रिकॉर्डिंग {elapsed}",
dictationReleaseToInsert: "श्रुतलेखन डालने के लिए छोड़ें",
realtimeTalkRequiresMicrophone: "रीयलटाइम वॉइस इनपुट के लिए ब्राउज़र माइक्रोफ़ोन एक्सेस आवश्यक है।",
selectedMicrophoneUnavailable:
"चुना गया माइक्रोफ़ोन उपलब्ध नहीं है। कोई दूसरा इनपुट या System default चुनें।",
selectedCameraUnavailable: "चयनित कैमरा अनुपलब्ध है। कोई अन्य कैमरा या System default चुनें।",
startVoiceInput: "वॉइस इनपुट शुरू करें",
startVideoTalk: "वीडियो टॉक शुरू करें",
stillListening: "अभी भी सुन रहा है",
stopVoiceInput: "वॉइस इनपुट बंद करें",
systemDefaultMicrophone: "सिस्टम डिफ़ॉल्ट",
systemDefaultCamera: "सिस्टम डिफ़ॉल्ट",
switchCamera: "कैमरा बदलें",
turnCameraOff: "कैमरा बंद करें",
turnCameraOn: "कैमरा चालू करें",
voiceTranscript: "वॉइस ट्रांसक्रिप्ट",
},
selectors: {
@@ -3848,6 +4057,14 @@ export const hi: TranslationMap = {
rawDetails: "कच्चे विवरण",
openFile: "फ़ाइल खोलें",
openDetails: "साइड पैनल में टूल विवरण खोलें",
widgetActions: "विजेट क्रियाएँ",
copyToClipboard: "क्लिपबोर्ड पर कॉपी करें",
downloadFile: "फ़ाइल डाउनलोड करें",
widgetExportRerender: "इस विजेट को छवि के रूप में निर्यात करने के लिए फिर से रेंडर करना होगा।",
widgetExportFailed: "विजेट निर्यात विफल रहा। फिर से प्रयास करें।",
pinToDashboard: "डैशबोर्ड पर पिन करें",
pinToDashboardPending: "पिन किया जा रहा है…",
pinnedToDashboard: "पिन किया गया",
fileChanges: "फ़ाइल परिवर्तन",
attemptedChanges: "प्रयास किए गए परिवर्तन",
failed: "विफल",
@@ -3943,6 +4160,18 @@ export const hi: TranslationMap = {
statusRenamed: "नाम बदला गया",
statusModified: "संशोधित",
},
sessionDiscussion: {
title: "चर्चा",
show: "चर्चा दिखाएँ",
disconnected: "Gateway डिस्कनेक्ट है।",
loading: "चर्चा लोड हो रही है…",
opening: "चर्चा खोली जा रही है…",
requiresWriteAccess: "इस चर्चा को खोलने के लिए Operator write access आवश्यक है।",
opened: "सत्र चर्चा",
openExternal: "चर्चा नए टैब में खोलें",
frameTitle: "सत्र चर्चा",
unavailable: "इस चर्चा को एम्बेड नहीं किया जा सकता।",
},
workspaceFiles: {
label: "सेशन वर्कस्पेस",
expand: "सेशन वर्कस्पेस विस्तृत करें",
@@ -4175,9 +4404,11 @@ export const hi: TranslationMap = {
expression: "एक्सप्रेशन",
expressionPlaceholder: "0 7 * * *",
everyAmountPlaceholder: "30",
summaryEverySecondOne: "हर सेकंड चलता है",
summaryEveryMinuteOne: "हर मिनट चलता है",
summaryEveryHourOne: "हर घंटे चलता है",
summaryEveryDayOne: "हर दिन चलता है",
summaryEverySeconds: "हर {amount} सेकंड में चलता है",
summaryEveryMinutes: "हर {amount} मिनट में चलता है",
summaryEveryHours: "हर {amount} घंटे में चलता है",
summaryEveryDays: "हर {amount} दिन में चलता है",
+431 -191
View File
File diff suppressed because it is too large Load Diff
+443 -192
View File
File diff suppressed because it is too large Load Diff
+436 -191
View File
File diff suppressed because it is too large Load Diff
+427 -190
View File
File diff suppressed because it is too large Load Diff
+434 -191
View File
File diff suppressed because it is too large Load Diff
+436 -192
View File
File diff suppressed because it is too large Load Diff
+439 -191
View File
File diff suppressed because it is too large Load Diff
+433 -191
View File
File diff suppressed because it is too large Load Diff
+420 -190
View File
@@ -20,6 +20,8 @@ export const th: TranslationMap = {
staleData: "กำลังแสดงข้อมูลที่ไม่เป็นปัจจุบัน",
reload: "โหลดใหม่",
reset: "รีเซ็ต",
restore: "กู้คืน",
undo: "เลิกทำ",
probe: "ตรวจสอบ",
call: "โทร",
confirm: "ยืนยัน",
@@ -87,6 +89,10 @@ export const th: TranslationMap = {
logout: "ออกจากระบบ",
skipToMainContent: "ข้ามไปยังเนื้อหาหลัก",
},
optionCard: {
recommended: "แนะนำ",
skip: "ข้ามไปก่อน",
},
nativeLinkMenu: {
label: "การดำเนินการลิงก์",
openInline: "เปิดในแถบด้านข้าง",
@@ -217,6 +223,9 @@ export const th: TranslationMap = {
whatsapp: {
title: "WhatsApp",
subtitle: "เชื่อมต่อ WhatsApp Web และตรวจสอบสถานะการเชื่อมต่อ",
loggedOut: "ออกจากระบบแล้ว",
logoutNotCleared:
"ไม่มีเซสชัน WhatsApp ที่จัดเก็บไว้ถูกล้าง อาจไม่มีอยู่แล้ว หรือไดเรกทอรีการยืนยันตัวตนอาจต้องล้างด้วยตนเอง",
},
gatewayUrlConfirmation: {
title: "เปลี่ยน Gateway URL",
@@ -270,6 +279,7 @@ export const th: TranslationMap = {
genericSubtitle: "เกิดข้อผิดพลาดขณะโหลดแผงนี้",
staleTitle: "มีเวอร์ชันใหม่พร้อมใช้งาน",
staleSubtitle: "OpenClaw ได้รับการอัปเดตในเบื้องหลัง โหลดใหม่เพื่อใช้แผงเวอร์ชันล่าสุด",
reloading: "กำลังโหลดใหม่…",
retry: "ลองอีกครั้ง",
},
nodes: {
@@ -278,6 +288,8 @@ export const th: TranslationMap = {
adminRequired: "จำเป็นต้องมีสิทธิ์ผู้ดูแลระบบเพื่อสร้างรหัสตั้งค่า",
title: "OpenClaw mobile",
subtitle: "สแกนคิวอาร์โค้ดนี้ในแอปมือถือเพื่อเชื่อมต่อโทรศัพท์เครื่องใหม่",
noApp: "ยังไม่มีแอปใช่ไหม?",
getApps: "ดาวน์โหลดแอป",
generating: "กำลังสร้างรหัสตั้งค่าที่ปลอดภัย…",
accessTitle: "การเข้าถึงผ่านมือถือ",
fullAccess: "สิทธิ์เข้าถึงแบบเต็ม (แนะนำ)",
@@ -464,11 +476,15 @@ export const th: TranslationMap = {
agentChip: {
menuLabel: "เมนูเอเจนต์",
agents: "เอเจนต์",
openChat: "แชทกับ {name}",
offlineOpenSettings: "ออฟไลน์ — เปิดการตั้งค่า",
switchAgent: "สลับเอเจนต์",
working: "กำลังทำงาน…",
ready: "พร้อมแชต",
whatCanAgentDo: "{name} ทำอะไรได้บ้าง?",
help: "วิธีใช้",
getHelp: "ขอความช่วยเหลือ",
getApps: "ดาวน์โหลดแอป",
discord: "ชุมชน Discord",
viewChangelog: "ดูบันทึกการเปลี่ยนแปลง",
agentSettings: "การตั้งค่าเอเจนต์",
@@ -489,6 +505,7 @@ export const th: TranslationMap = {
cloudWorker: "คลาวด์ · {profile}",
cloudWorkerProvider: "ผู้ให้บริการเวิร์กเกอร์คลาวด์: {provider}",
cloudRequiresWorktree: "เวิร์กเกอร์คลาวด์ต้องใช้ worktree ที่มีการจัดการ",
cloudRequiresOpenClawRuntime: "ตัวประมวลผลบนคลาวด์ต้องใช้รันไทม์ OpenClaw; เลือก {runtime} ไว้",
cloudSecureContextRequired:
"เวิร์กเกอร์คลาวด์ต้องใช้บริบทเบราว์เซอร์ที่ปลอดภัย เพื่อให้การกู้คืนสามารถปกป้องงานของคุณได้",
cloudStartFailed: "สร้างเซสชันภายในเครื่องแล้ว แต่การเริ่มต้นระบบคลาวด์ล้มเหลว: {error}",
@@ -534,7 +551,12 @@ export const th: TranslationMap = {
sourceFilters: "ตัวกรองแหล่งที่มาของเซสชัน",
global: "ส่วนกลาง",
unknown: "ไม่ทราบ",
archivedOnly: "เฉพาะที่เก็บถาวร",
sessionState: "สถานะเธรด",
viewArchived: "ดูรายการที่เก็บถาวร",
sessionArchived: "เก็บถาวรเธรดแล้ว",
sessionsArchived: "เก็บถาวรแล้ว {count} เธรด",
deleteAllArchived: "ลบรายการที่เก็บถาวรทั้งหมด…",
deleteAllArchivedConfirm: "ลบเธรดที่เก็บถาวร {count} รายการและบันทึกการสนทนาของเธรดหรือไม่?",
activeTooltip: "อัปเดตในช่วง {count} นาทีที่ผ่านมา",
limitTooltip: "จำนวนเซสชันสูงสุดที่จะโหลด",
globalTooltip: "รวมเซสชันส่วนกลาง",
@@ -578,6 +600,8 @@ export const th: TranslationMap = {
actions: "การดำเนินการ",
addToWorkboard: "เพิ่มไปยัง Workboard",
openWorkboardCard: "เปิดการ์ด Workboard",
dashboardAvailable: "มีแดชบอร์ด",
approvalNeeded: "ต้องการการอนุมัติ",
noSessions: "ไม่พบเซสชัน",
noSessionsMatchFilters: "ไม่มีเซสชันที่ตรงกับตัวกรองของคุณ",
pagination: "{start}-{end} จาก {total} แถว",
@@ -617,10 +641,17 @@ export const th: TranslationMap = {
statusFailed: "ล้มเหลว",
statusKilled: "ถูกยุติ",
statusTimeout: "หมดเวลา",
waitingForAnswer: "กำลังรอคำตอบของคุณ",
waitingForApproval: "กำลังรอการอนุมัติ",
runFailedReason: "การรันล้มเหลว: {reason}",
runErrorTimedOut: "หมดเวลา",
runErrorUnknown: "ข้อผิดพลาดที่ไม่รู้จัก",
attentionRequired: "เซสชันต้องการความสนใจ",
model: "Model",
provider: "Provider",
runtime: "รันไทม์",
runDuration: "ระยะเวลาการทำงาน",
lastActive: "ใช้งานล่าสุด {time}",
surface: "พื้นผิว",
subject: "หัวข้อ",
room: "ห้อง",
@@ -630,6 +661,7 @@ export const th: TranslationMap = {
showChildSessions: "แสดงเซสชันย่อย {count} รายการสำหรับ {session}",
hideChildSessions: "ซ่อนเซสชันย่อย {count} รายการสำหรับ {session}",
childSessions: "เซสชันย่อย",
showMoreChildren: "แสดงเพิ่มอีก {count} รายการ",
archived: "เก็บถาวรแล้ว",
pinned: "ปักหมุดแล้ว",
unread: "Unread",
@@ -641,6 +673,10 @@ export const th: TranslationMap = {
renameSessionMenu: "Rename…",
pinSession: "ปักหมุดเซสชัน",
unpinSession: "เลิกปักหมุดเซสชัน",
changeIcon: "เปลี่ยนไอคอน",
customEmoji: "อีโมจิกำหนดเอง",
invalidEmojiIcon: "ป้อนอีโมจิเพียงหนึ่งตัวเท่านั้น",
removeIcon: "ลบไอคอน",
markUnread: "Mark as unread",
markRead: "Mark as read",
markUnreadCount: "ทำเครื่องหมาย {count} รายการว่ายังไม่ได้อ่าน",
@@ -1072,40 +1108,9 @@ export const th: TranslationMap = {
},
channels: {
title: "ช่องทาง",
connectedCount: "เชื่อมต่อแล้ว {count} รายการ",
empty: "ยังไม่ได้กำหนดค่าช่องทาง",
connect: "เชื่อมต่อ →",
},
automation: {
title: "ระบบอัตโนมัติ",
scheduledTask: "งานที่ตั้งเวลาไว้ {count} งาน",
scheduledTasks: "งานที่ตั้งเวลาไว้ {count} งาน",
installedSkill: "ติดตั้ง Skills แล้ว {count} รายการ",
installedSkills: "ติดตั้ง Skills แล้ว {count} รายการ",
mcpServer: "เซิร์ฟเวอร์ MCP {count} รายการ",
mcpServers: "เซิร์ฟเวอร์ MCP {count} รายการ",
manage: "จัดการ →",
browse: "เรียกดู →",
configure: "กำหนดค่า →",
},
appearance: {
title: "ลักษณะที่ปรากฏ",
theme: "ธีม",
textSize: "ขนาดข้อความ",
importedTheme: "ธีมที่นำเข้า",
import: "นำเข้า",
themes: {
claw: "Claw",
knot: "Knot",
dash: "Dash",
},
textSizes: {
small: "S",
medium: "M",
large: "L",
xl: "XL",
xxl: "XXL",
},
lobsterVisits: "การมาเยือนของกุ้งล็อบสเตอร์",
lobsterVisitsOn: "แวะมาเป็นครั้งคราว",
lobsterVisitsOff: "ไม่เคยมาเยือน",
@@ -1118,7 +1123,6 @@ export const th: TranslationMap = {
},
security: {
title: "ความปลอดภัย",
configure: "กำหนดค่า →",
gatewayAuth: "การยืนยันตัวตน Gateway",
execPolicy: "นโยบายการเรียกใช้",
deviceAuth: "การยืนยันตัวตนอุปกรณ์",
@@ -1142,22 +1146,29 @@ export const th: TranslationMap = {
},
personal: {
title: "ส่วนตัว",
profileTitle: "โปรไฟล์",
user: "ผู้ใช้",
you: "คุณ",
assistant: "ผู้ช่วย",
localIdentity: "ตัวตนในการแชทของคุณในเครื่อง",
profileIdentity: "โปรไฟล์ Gateway ของคุณ",
assistantIdentity: "ตัวตนของผู้ช่วย",
displayName: "ชื่อที่แสดง",
displayNamePlaceholder: "ชื่อของคุณ",
saveProfile: "บันทึกชื่อ",
saving: "กำลังบันทึก…",
uploading: "กำลังประมวลผล…",
profileHint: "JPEG, PNG หรือ WebP รูปภาพจะถูกครอปตรงกลางและปรับขนาดเป็น 512px",
profileLoadFailed: "ไม่สามารถโหลดโปรไฟล์ของคุณได้",
profileSaveFailed: "ไม่สามารถบันทึกโปรไฟล์ของคุณได้",
avatarInvalid: "เลือกรูปภาพ JPEG, PNG หรือ WebP ที่ถูกต้อง",
avatarTooLarge: "อวาตาร์ที่ประมวลผลแล้วยังใหญ่เกินไป",
avatarText: "ข้อความอวาตาร์ / อีโมจิ",
avatarPlaceholder: "JD หรือ 🦞",
chooseImage: "เลือกรูปภาพ",
replaceImage: "แทนที่รูปภาพ",
clearAvatar: "ล้างอวาตาร์",
clearOverride: "ล้างการแทนที่",
browserOnly: "จัดเก็บในเบราว์เซอร์นี้เท่านั้น",
overrideHint: "จัดเก็บการแทนที่ของ Control UI ล้างเพื่อกลับไปใช้อวาตาร์ที่กำหนดค่าไว้",
uiOverride: "การแทนที่ UI",
configuredAvatar: "อวาตาร์ที่กำหนดค่าไว้",
overrideFromSettings: "แทนที่จากการตั้งค่า",
fallbackAvatar: "อวาตาร์สำรอง",
fallbackLogo: "โลโก้สำรอง",
avatarIssues: {
@@ -1171,26 +1182,16 @@ export const th: TranslationMap = {
},
},
configPage: {
settingsView: "มุมมองการตั้งค่า",
simple: "แบบง่าย",
advanced: "ขั้นสูง",
content: "เนื้อหาการตั้งค่า",
themeImported: "นำเข้า {name} แล้ว",
themeRemoved: "ลบธีมที่กำหนดเองแล้ว",
channels: {
telegram: "Telegram",
discord: "Discord",
slack: "Slack",
whatsapp: "WhatsApp",
signal: "Signal",
imessage: "iMessage",
},
},
configView: {
categories: {
core: "หลัก",
ai: "AI และเอเจนต์",
communication: "การสื่อสาร",
security: "ความเป็นส่วนตัวและความปลอดภัย",
automation: "ระบบอัตโนมัติ",
infrastructure: "โครงสร้างพื้นฐาน",
appearance: "ลักษณะที่ปรากฏ",
@@ -1222,6 +1223,7 @@ export const th: TranslationMap = {
bindings: "การผูก",
cron: "Cron",
approvals: "การอนุมัติ",
security: "นโยบายความปลอดภัย",
plugins: "ปลั๊กอิน",
gateway: "Gateway",
web: "เว็บ",
@@ -1257,11 +1259,15 @@ export const th: TranslationMap = {
xl: "XL",
xxl: "XXL",
},
syncedHint: "ซิงค์ระหว่างอุปกรณ์ของคุณผ่าน Gateway",
notifications: {
title: "การแจ้งเตือนแบบพุช",
nativeTitle: "การแจ้งเตือน",
hint: "รับการแจ้งเตือนแบบพุชในเบราว์เซอร์จาก gateway ของคุณ",
nativeHint: "การแจ้งเตือนแสดงแบบเนทีฟโดยแอป OpenClaw บน Mac เครื่องนี้",
unavailableHint: "ไม่พร้อมใช้งานในเบราว์เซอร์นี้",
unavailable: "ไม่พร้อมใช้งาน",
checking: "กำลังตรวจสอบ...",
granted: "อนุญาตแล้ว",
denied: "ปฏิเสธแล้ว",
notRequested: "ยังไม่ได้ร้องขอ",
@@ -1279,7 +1285,10 @@ export const th: TranslationMap = {
sendTest: "ส่งการทดสอบ",
subscribing: "กำลังสมัครรับ...",
enable: "เปิดใช้งานการแจ้งเตือน",
openSystemSettings: "เปิดการตั้งค่าระบบ",
blockedHint: "การแจ้งเตือนถูกบล็อก อัปเดตสิทธิ์เว็บไซต์ในเบราว์เซอร์ของคุณเพื่ออนุญาตการแจ้งเตือน",
nativeBlockedHint:
"การแจ้งเตือนสำหรับ OpenClaw ถูกปิดใช้งานใน macOS อนุญาตได้ที่การตั้งค่าระบบ > การแจ้งเตือน",
},
appearance: {
theme: "ธีม",
@@ -1306,6 +1315,12 @@ export const th: TranslationMap = {
title: "แชต",
hint: "การตั้งค่าแชตเฉพาะเบราว์เซอร์",
},
sidebarPrefs: {
title: "แถบด้านข้าง",
hint: "เลือกสิ่งที่แสดงขณะเซสชันกำลังทำงาน",
liveActivity: "แสดงกิจกรรมของ agent แบบเรียลไทม์ในแถบด้านข้าง",
liveActivityHint: "แสดงกิจกรรมล่าสุดของผู้ช่วยหรือเครื่องมือใต้เซสชันที่กำลังทำงาน",
},
connection: {
title: "การเชื่อมต่อ",
gateway: "Gateway",
@@ -1361,6 +1376,10 @@ export const th: TranslationMap = {
execApprovalNeeded: "Exec approval needed",
pluginApprovalNeeded: "Plugin approval needed",
pending: "{count} pending",
otherPending: "คำขออื่นที่รอดำเนินการ",
reviewRequest: "ตรวจสอบการอนุมัติจาก {agent}: {command}",
agentPendingOne: "รอการอนุมัติ {count} รายการ",
agentPending: "รอการอนุมัติ {count} รายการ",
allowOnce: "Allow once",
alwaysAllow: "Always allow",
allowAlwaysUnavailable: "Allow Always ไม่พร้อมใช้งานสำหรับคำสั่งนี้",
@@ -1563,8 +1582,10 @@ export const th: TranslationMap = {
chat: "แชต",
settings: "การตั้งค่า",
settingsGeneral: "ทั่วไป",
askOpenClaw: "ถาม OpenClaw",
settingsGroupConnections: "การเชื่อมต่อ",
settingsGroupAgents: "เอเจนต์และเครื่องมือ",
settingsGroupSecurity: "ความเป็นส่วนตัวและความปลอดภัย",
settingsGroupSystem: "ระบบ",
settingsSearchLabel: "ค้นหาการตั้งค่า",
settingsSearchPlaceholder: "ค้นหาการตั้งค่า…",
@@ -1576,6 +1597,8 @@ export const th: TranslationMap = {
collapse: "ย่อแถบด้านข้าง",
resize: "ปรับขนาดแถบด้านข้าง",
more: "เพิ่มเติม",
home: "หน้าแรก",
pages: "หน้า",
customize: "ปรับแต่งแถบด้านข้าง",
customizeReset: "รีเซ็ตเป็นค่าเริ่มต้น",
},
@@ -1664,6 +1687,7 @@ export const th: TranslationMap = {
tabs: {
agents: "เอเจนต์",
activity: "กิจกรรม",
apps: "แอป",
approvals: "การอนุมัติ",
workboard: "กระดานงาน",
worktrees: "Worktrees",
@@ -1678,6 +1702,7 @@ export const th: TranslationMap = {
skillWorkshop: "Skill Workshop",
nodes: "โหนด",
chat: "แชต",
custodian: "OpenClaw",
config: "Config",
profile: "โปรไฟล์",
communications: "การสื่อสาร",
@@ -1685,11 +1710,15 @@ export const th: TranslationMap = {
automation: "ระบบอัตโนมัติ",
mcp: "MCP",
infrastructure: "โครงสร้างพื้นฐาน",
labs: "Labs",
about: "เกี่ยวกับ",
aiAgents: "AI และเอเจนต์",
modelSetup: "ตั้งค่าโมเดล",
modelProviders: "Model Providers",
memoryImport: "นำเข้าหน่วยความจำ",
notifications: "การแจ้งเตือน",
security: "ความเป็นส่วนตัวและความปลอดภัย",
advanced: "ขั้นสูง",
debug: "ดีบัก",
logs: "บันทึก",
plugin: "ปลั๊กอิน",
@@ -1697,6 +1726,7 @@ export const th: TranslationMap = {
subtitles: {
agents: "เวิร์กสเปซ เครื่องมือ และข้อมูลประจำตัว",
activity: "สรุปกิจกรรมของเครื่องมือภายในเบราว์เซอร์",
apps: "แอปคู่หูสำหรับโทรศัพท์ นาฬิกา เดสก์ท็อป และเบราว์เซอร์",
approvals: "การอนุมัติคำสั่ง exec, ปลั๊กอิน และเอเจนต์ระบบล่าสุด",
workboard: "คิวงานของ Agent และการส่งต่อเซสชัน",
worktrees: "การ checkout งานของเอเจนต์แบบแยก และสแนปช็อตสำหรับการกู้คืน",
@@ -1711,6 +1741,7 @@ export const th: TranslationMap = {
skillWorkshop: "ตรวจสอบ ปรับแต่ง และนำข้อเสนอไปใช้ก่อนที่จะกลายเป็น Skills ที่ใช้งานจริง",
nodes: "อุปกรณ์ที่จับคู่และคำสั่ง",
chat: "แชตเกตเวย์สำหรับการดำเนินการอย่างรวดเร็ว",
custodian: "การตั้งค่าและดูแลระบบ",
config: "แก้ไข openclaw.json",
profile: "สถิติ สตรีก และชีวิตในแนวปะการังของเอเจนต์คุณ",
communications: "ช่องทาง ข้อความ และการตั้งค่าเสียง",
@@ -1718,11 +1749,15 @@ export const th: TranslationMap = {
automation: "คำสั่ง hooks cron และ plugins",
mcp: "เซิร์ฟเวอร์ MCP, การยืนยันตัวตน, เครื่องมือ และการวินิจฉัย",
infrastructure: "การตั้งค่าเกตเวย์ เว็บ เบราว์เซอร์ และสื่อ",
labs: "ความสามารถของเอเจนต์และเครื่องมือแบบทดลอง",
about: "ข้อมูลระบุตัวตนของบิลด์ Control UI และ Gateway ที่เชื่อมต่อ",
aiAgents: "เอเจนต์ โมเดล ทักษะ เครื่องมือ หน่วยความจำ เซสชัน",
modelSetup: "เชื่อมต่อโมเดล AI ที่ผ่านการตรวจสอบ",
modelProviders: "Configured providers with plan, quota, and cost.",
memoryImport: "นำหน่วยความจำของ Codex และ Claude Code เข้าสู่พื้นที่ทำงานของเอเจนต์",
notifications: "การแจ้งเตือนแบบพุชผ่านเบราว์เซอร์จาก gateway ของคุณ",
security: "การยืนยันตัวตน Gateway, นโยบายการรันคำสั่ง, โปรไฟล์เครื่องมือ และการอนุมัติ",
advanced: "ทุกส่วนการตั้งค่าที่เหลือ พร้อมตัวแก้ไขไฟล์แบบดิบ",
debug: "สแนปช็อต เหตุการณ์ และ RPC",
logs: "บันทึกเกตเวย์แบบสด",
plugin: "แผงที่ปลั๊กอินจัดเตรียมไว้",
@@ -1872,8 +1907,78 @@ export const th: TranslationMap = {
doneBody: "ย้ายแล้ว {migrated} รายการ ข้าม {skipped} รายการ คุณสามารถตั้งค่า OpenClaw ต่อได้",
},
},
custodian: {
title: "OpenClaw",
subtitle: "คู่มือการตั้งค่าระบบของคุณ",
subtitleCaretaker: "การตั้งค่าและดูแลระบบ",
exitSetup: "ออกจากการตั้งค่า",
newAgent: "เอเจนต์ใหม่",
hatchDraft: "ตื่นเถอะ เพื่อน!",
placeholder: "ส่งข้อความถึง OpenClaw…",
sensitivePlaceholder: "ป้อนค่าที่ละเอียดอ่อน…",
sensitiveReply: "ส่งการตอบกลับที่ละเอียดอ่อนแล้ว",
send: "ส่ง",
thinking: "OpenClaw กำลังคิด",
earlier: "ก่อนหน้านี้",
requestFailed: "OpenClaw ไม่สามารถตอบกลับได้ ลองอีกครั้ง",
connectionChanged: "การเชื่อมต่อ Gateway มีการเปลี่ยนแปลง ลองใหม่เพื่อดำเนินการตั้งค่านี้ต่อ",
sessionRestarted: "{error} OpenClaw เริ่มเซสชันใหม่แล้ว ข้อความก่อนหน้ายังคงอยู่เพื่อเป็นบริบท",
unsupportedGateway: "อัปเดต Gateway เพื่อดำเนินการตั้งค่าต่อกับ OpenClaw",
history: {
button: "ประวัติ",
title: "การเปลี่ยนแปลงล่าสุด",
description: "สิ่งที่เปลี่ยนแปลงในระบบนี้ เรียงจากใหม่สุดก่อน",
loading: "กำลังโหลดการเปลี่ยนแปลงล่าสุด…",
empty: "ยังไม่มีการเปลี่ยนแปลงที่บันทึกไว้",
requestFailed: "OpenClaw ไม่สามารถโหลดประวัติการเปลี่ยนแปลงได้",
loadMore: "โหลดเพิ่มเติม",
loadingMore: "กำลังโหลดเพิ่มเติม…",
changedPaths: "พาธที่เปลี่ยนแปลง ({count})",
invalidEdit: "การแก้ไขด้วยตนเองนี้ไม่ผ่านการตรวจสอบการกำหนดค่า",
opaqueChange: "การจัดรูปแบบหรือคอมเมนต์เปลี่ยนแปลงโดยไม่มีการเปลี่ยนแปลงพาธการกำหนดค่าที่มองเห็นได้",
sources: {
systemAgent: "system-agent",
doctor: "doctor",
settings: "settings",
cli: "CLI",
pluginInstall: "plugin install",
manualEdit: "manual edit",
unknown: "unknown",
},
},
nudge: {
configReload: "การโหลดการกำหนดค่าใหม่หยุดลง — ถามฉันว่าเกิดอะไรขึ้น",
channelAuth: "การยืนยันตัวตนของ {channel} เสื่อมประสิทธิภาพ — ถามฉันว่าเกิดอะไรขึ้น",
channelDisconnected: "{channel} เพิ่งถูกตัดการเชื่อมต่อ — ถามฉันว่าเกิดอะไรขึ้น",
channelDegraded: "{channel} เสื่อมประสิทธิภาพ — ถามฉันว่าเกิดอะไรขึ้น",
channelFallback: "ช่องทาง",
dismiss: "ปิดการอัปเดตนี้",
},
},
mcpServers: {
add: "เพิ่มเซิร์ฟเวอร์",
adding: "กำลังเพิ่ม…",
nameLabel: "ชื่อ",
targetLabel: "URL หรือคำสั่ง",
nameInvalid: "ชื่อเซิร์ฟเวอร์ใช้ตัวอักษร ตัวเลข จุด ขีดกลาง หรือขีดล่าง",
targetInvalid: "ป้อน URL แบบ http(s) หรือบรรทัดคำสั่ง",
nameTaken: "มีเซิร์ฟเวอร์ MCP ชื่อ “{name}” อยู่แล้ว",
missing: "ไม่พบเซิร์ฟเวอร์ MCP “{name}” ในการกำหนดค่า",
missingTransport: "ไม่มีการขนส่ง",
addedSuccess: "เพิ่มเซิร์ฟเวอร์ MCP {name} แล้ว",
enabledSuccess: "เปิดใช้งานเซิร์ฟเวอร์ MCP {name} แล้ว",
disabledSuccess: "ปิดใช้งานเซิร์ฟเวอร์ MCP {name} แล้ว",
removedSuccess: "ลบเซิร์ฟเวอร์ MCP {name} แล้ว",
configUnavailable: "ไม่สามารถใช้การกำหนดค่าได้ โปรดรีเฟรชแล้วลองอีกครั้ง",
connectRequired: "เชื่อมต่อกับ gateway เพื่อเปลี่ยนเซิร์ฟเวอร์ MCP",
adminRequired: "การเปลี่ยนแปลงเซิร์ฟเวอร์ MCP ต้องใช้สิทธิ์ operator.admin",
enable: "เปิดใช้งาน",
disable: "ปิดใช้งาน",
removeNamed: "นำ {name} ออก",
working: "กำลังทำงาน…",
},
mcpPage: {
manageServersLink: "จัดการเซิร์ฟเวอร์ในหน้า Plugins",
connectorsLink: "ค้นพบตัวเชื่อมต่อแบบคลิกเดียวในหน้า Plugins",
servers: "เซิร์ฟเวอร์",
oauth: "OAuth",
filtered: "กรองแล้ว",
@@ -1885,10 +1990,12 @@ export const th: TranslationMap = {
"การเปลี่ยนแปลงรันไทม์จะมีผลหลังจากบันทึกและเผยแพร่ เอเจนต์ที่ทำงานอยู่จะสร้างรันไทม์ MCP ใหม่เมื่อใช้งานครั้งถัดไป",
toolFilter: "ตัวกรองเครื่องมือ",
parallel: "ขนาน",
missingTransport: "ไม่มีการขนส่ง",
tlsVerifyOff: "ปิดการตรวจสอบ TLS",
mtls: "mTLS",
},
sessionsPage: {
hubTablistLabel: "ส่วนของเธรด",
},
pluginsPage: {
searchLabel: "ค้นหาปลั๊กอิน",
searchPlaceholder: "ค้นหาปลั๊กอิน",
@@ -1969,18 +2076,7 @@ export const th: TranslationMap = {
mcpSettingsLink: "การตั้งค่า MCP",
mcpHint:
"เชื่อมต่อเซิร์ฟเวอร์ Model Context Protocol เพื่อมอบเครื่องมือเพิ่มเติมให้เอเจนต์ของคุณ การเปลี่ยนแปลงจะมีผลกับเซสชันเอเจนต์ใหม่",
mcpAdd: "เพิ่มเซิร์ฟเวอร์",
mcpAdding: "กำลังเพิ่ม…",
mcpEmpty: "ยังไม่ได้กำหนดค่าเซิร์ฟเวอร์ MCP เพิ่มที่นี่หรือเลือกตัวเชื่อมต่อจาก Discover",
mcpNameLabel: "ชื่อ",
mcpTargetLabel: "URL หรือคำสั่ง",
mcpNameInvalid: "ชื่อเซิร์ฟเวอร์ใช้ตัวอักษร ตัวเลข จุด ขีดกลาง หรือขีดล่างได้",
mcpTargetInvalid: "ป้อน URL http(s) หรือบรรทัดคำสั่ง",
mcpNameTaken: "มีเซิร์ฟเวอร์ MCP ชื่อ “{name}” อยู่แล้ว",
mcpMissing: "ไม่พบเซิร์ฟเวอร์ MCP “{name}” ในการกำหนดค่า",
mcpAddedSuccess: "เพิ่มเซิร์ฟเวอร์ MCP {name} แล้ว",
mcpRemovedSuccess: "นำเซิร์ฟเวอร์ MCP {name} ออกแล้ว",
mcpConfigUnavailable: "ไม่สามารถใช้งานการกำหนดค่าได้ รีเฟรชแล้วลองอีกครั้ง",
remove: "ลบ",
removing: "กำลังลบ…",
removeNamed: "ลบ {name}",
@@ -2029,6 +2125,25 @@ export const th: TranslationMap = {
disabledSuccess: "ปิดใช้งาน {name} แล้ว",
disabledRestart: "ปิดใช้งาน {name} แล้ว ต้องรีสตาร์ท Gateway เพื่อใช้การเปลี่ยนแปลง",
},
labsPage: {
intro: "Labs ประกอบด้วยความสามารถเชิงทดลองที่อาจเปลี่ยนแปลง เสีย หรือหายไประหว่างรุ่นต่าง ๆ",
sectionTitle: "ฟีเจอร์เชิงทดลอง",
sectionDescription: "การเปลี่ยนแปลงจะบันทึกทันทีและมีผลกับการทำงานของ agent ในอนาคต",
documentation: "เอกสารประกอบ",
restartRequired: "ต้องรีสตาร์ท Gateway",
saveErrorTitle: "ไม่สามารถอัปเดตฟีเจอร์ได้",
saveFailed: "ไม่สามารถบันทึกการตั้งค่าฟีเจอร์ได้",
codeMode: {
title: "Code Mode",
description: "ให้ agent ผสานเครื่องมือต่าง ๆ ในเวิร์กโฟลว์ JavaScript ที่กะทัดรัดและอยู่ในแซนด์บ็อกซ์",
},
swarm: {
title: "Swarm",
description: "ให้ Code Mode จัดการกลุ่มของ subagent แบบขนาน",
empty: "ไม่มี swarm ที่ทำงานอยู่",
defaultPhase: "ไม่มีเฟส",
},
},
aboutPage: {
productName: "OpenClaw",
tagline: "ผู้ช่วย AI ส่วนตัวของคุณที่ทำงานบนอุปกรณ์ของคุณเอง",
@@ -2038,6 +2153,7 @@ export const th: TranslationMap = {
linkDocs: "เอกสาร",
linkGitHub: "GitHub",
linkDiscord: "Discord",
linkX: "X (Twitter)",
linkChangelog: "บันทึกการเปลี่ยนแปลง",
license: "© 2026 OpenClaw Foundation — สัญญาอนุญาต MIT",
artifactTitle: "Control UI",
@@ -2055,6 +2171,72 @@ export const th: TranslationMap = {
gatewayVersion: "เวอร์ชัน Gateway ที่เชื่อมต่อ",
gatewayVersionHint: "รายงานโดยการเชื่อมต่อ Gateway ที่ใช้งานอยู่ ซึ่งแยกจากบิลด์ Control UI นี้",
},
appsPage: {
heroTitle: "พา OpenClaw ไปได้ทุกที่",
heroTagline:
"แอปคู่หูสำหรับโทรศัพท์ นาฬิกา เดสก์ท็อป และเบราว์เซอร์ของคุณ — พร้อมปลั๊กอินเพื่อขยายความสามารถของ agent ของคุณ",
sectionMobile: "บนโทรศัพท์ของคุณ",
havePhone: "มีแอปแล้วใช่ไหม?",
pairDevice: "จับคู่อุปกรณ์ของคุณ",
sectionWatch: "บนข้อมือของคุณ",
sectionDesktop: "บนเดสก์ท็อปของคุณ",
sectionBrowser: "ในเบราว์เซอร์ของคุณ",
sectionCommunity: "ชุมชน",
badgeBundledIos: "มาพร้อมกับแอป iOS",
badgeBundledAndroid: "มาพร้อมกับแอป Android",
ctaAppStore: "App Store",
ctaPlayStore: "Google Play",
ctaDownload: "ดาวน์โหลด",
ctaDocs: "เอกสาร",
ctaSetupGuide: "คู่มือการตั้งค่า",
ctaOpenPlugins: "เปิด Plugins",
ctaBrowseClawHub: "เรียกดู ClawHub",
linkDiscord: "ชุมชน Discord",
linkDocs: "เอกสาร",
cards: {
ios: {
title: "iPhone",
desc: "แชท พูดคุย อนุมัติการดำเนินการ และแชร์เข้าสู่ OpenClaw จาก iOS",
},
android: {
title: "Android",
desc: "โทรศัพท์ Android ของคุณในฐานะโหนด OpenClaw เต็มรูปแบบ — แชท กล้อง และ Canvas",
},
appleWatch: {
title: "Apple Watch",
desc: "แชทแบบเหลือบมองและตอบกลับด่วนจากข้อมือของคุณ",
},
wearOs: {
title: "Wear OS",
desc: "แอปคู่หู Android ขยาย OpenClaw ไปยังนาฬิกาของคุณ",
},
macos: {
title: "macOS",
desc: "แอปคู่หูบนแถบเมนูสำหรับ Gateway ของคุณ — การแจ้งเตือน การอนุมัติ แชทด่วน",
},
windows: {
title: "Windows",
desc: "แอปคู่หูสำหรับ Windows เชื่อมต่อ PC ของคุณเป็นโหนด OpenClaw",
},
linux: {
title: "Linux",
desc: "แอปเดสก์ท็อปแบบเนทีฟ — บิลด์ .deb และ AppImage",
},
chrome: {
title: "ส่วนขยาย Chrome",
desc: "ให้ OpenClaw ควบคุม Chrome ที่คุณมีอยู่ — แท็บ หน้าเว็บ และฟอร์ม",
},
plugins: {
title: "ปลั๊กอินและ ClawHub",
desc: "ขยายความสามารถของ OpenClaw ด้วยช่องทาง เครื่องมือ และ Skills จากชุมชน",
},
},
},
presence: {
rosterLabel: "แสดงว่าใครออนไลน์",
rosterTitle: "ออนไลน์",
you: "คุณ",
},
profilePage: {
offline: "เชื่อมต่อกับ Gateway เพื่อพบเอเจนต์ของคุณ",
loading: "กำลังดำลงไปหาสถิติ…",
@@ -2086,6 +2268,26 @@ export const th: TranslationMap = {
toolsEmpty: "ยังไม่มีการบันทึกการเรียกใช้เครื่องมือ",
toolRun: "{count} ครั้ง",
toolRuns: "{count} ครั้ง",
identity: {
title: "ข้อมูลประจำตัว",
description: "โปรไฟล์ของคุณบน gateway นี้",
loading: "กำลังโหลดข้อมูลระบุตัวตนของคุณ…",
profileUnavailable: "ไม่สามารถโหลดโปรไฟล์ข้อมูลระบุตัวตนของคุณได้",
avatar: "อวาตาร์",
avatarDescription: "PNG, JPEG หรือ WebP รูปภาพจะถูกปรับขนาดเป็น 256 × 256 หรือเล็กกว่า",
chooseAvatar: "เลือกรูปภาพ",
processingAvatar: "กำลังประมวลผล…",
displayName: "ชื่อที่แสดง",
displayNameDescription: "แสดงให้ผู้อื่นที่ใช้ gateway นี้เห็น",
linkedEmails: "อีเมลที่เชื่อมโยง",
linkedEmailsDescription: "ที่อยู่อีเมลที่เชื่อมต่อกับโปรไฟล์นี้",
openSettings: "เปิดการตั้งค่าข้อมูลระบุตัวตนสำหรับ {name}",
avatarErrors: {
invalid: "ไม่สามารถประมวลผลรูปภาพนั้นได้",
sourceTooLarge: "เลือกรูปภาพที่มีขนาด 10 MB หรือเล็กกว่า",
tooLarge: "อวาตาร์ที่ประมวลผลแล้วมีขนาดใหญ่กว่า 512 KB",
},
},
},
tasksPage: {
active: "กำลังใช้งาน",
@@ -2388,131 +2590,50 @@ export const th: TranslationMap = {
submit: "Ask",
},
},
workspaces: {
tabs: {
label: "Workspaces",
hidden: "Hidden ({count})",
},
error: {
title: "Couldn't load your workspaces",
subtitle: "Something went wrong loading your workspaces. Try reloading.",
detailSummary: "Show details",
},
header: {
subtitle: "Arrange widgets and tabs for this workspace.",
},
onboarding: {
title: "Build your first workspace tab",
primary: "Ask your agent to build a tab.",
secondary: "Or create one from the command line:",
},
empty: {
onboardingTitle: "No workspaces yet",
onboardingSubtitle:
"Ask your agent to build a workspace, or create one from the command line.",
onboardingCommand: "openclaw workspaces tabs create --title Main",
tabTitle: "This workspace is empty",
tabSubtitle: "Ask your agent to add a widget, or add one yourself.",
noVisibleTabs: "Every workspace tab is hidden. Restore one from the hidden menu.",
board: {
label: "แดชบอร์ดเธรด",
tabsLabel: "แท็บแดชบอร์ด",
moreTabs: "แท็บแดชบอร์ดเพิ่มเติม",
gridLabel: "วิดเจ็ตแดชบอร์ด",
emptyTitle: "บอร์ดว่างเปล่า พร้อมทำงาน",
emptyHint: "เอเจนต์ของคุณสามารถปักหมุดวิดเจ็ตที่นี่ได้ — ลองขอการ์ดสถานะดู",
actionFailed: "ไม่สามารถบันทึกการเปลี่ยนแปลงแดชบอร์ดได้",
actionInProgress: "การเปลี่ยนแปลงแดชบอร์ดอื่นกำลังถูกบันทึกอยู่",
announcement: {
moved: "ย้าย {title} แล้ว",
resized: "ปรับขนาด {title} แล้ว",
removed: "ลบ {title} แล้ว",
granted: "อนุญาตการเข้าถึงวิดเจ็ตแล้ว",
rejected: "ปฏิเสธการเข้าถึงวิดเจ็ตแล้ว",
},
widget: {
collapse: "Collapse widget",
expand: "Expand widget",
moveHandle: "Move widget",
resizeHandle: "Resize widget",
menuLabel: "Widget options",
provenanceChip: "AI",
provenanceTooltip: "Built by {agent}",
errorTitle: "This widget couldn't load",
errorHumane: "This widget ran into a problem while rendering.",
errorDetailSummary: "Show details",
customPlaceholder: "Custom widget — coming soon.",
customLoading: "Loading custom widget…",
approval: {
title: "Custom widget awaiting approval",
byAgent: "Built by {agent}",
byUnknown: "Built by an unknown agent",
approve: "Approve",
reject: "Reject",
unavailable:
"This custom widget isn't available. Ask your agent to rebuild it, or remove it.",
},
markdownEmpty: "No content yet.",
unknownKind: "Unknown widget type: {kind}",
editTitleTitle: "Edit widget title",
editTitleLabel: "Widget title",
moveToTabTitle: "Move to tab",
moveToTabEmpty: "There are no other tabs to move this widget to.",
menu: {
editTitle: "Edit title",
moveToTab: "Move to tab…",
hide: "Hide",
remove: "Remove",
},
stat: {
empty: "—",
},
table: {
empty: "No rows to show.",
more: "+{count} more",
},
chart: {
empty: "ไม่มีข้อมูลสำหรับสร้างแผนภูมิ",
invalid: "แผนภูมินี้มีข้อมูลหรือตัวเลือกที่ไม่ถูกต้อง",
label: "แผนภูมิ",
summary: "{title}: จุดข้อมูล {count} จุด ตั้งแต่ {min} ถึง {max}",
},
sessions: {
empty: "No sessions yet.",
},
agentStatus: {
empty: "ยังไม่มี agent หรือเซสชัน",
busy: "ไม่ว่าง",
idle: "ไม่ได้ใช้งาน",
progress: "เสร็จแล้ว {percent}%",
},
customWidgetApprovals: {
empty: "ไม่มีวิดเจ็ตกำหนดเองที่รอการอนุมัติ",
kind: "วิดเจ็ตกำหนดเอง",
requestedBy: "ร้องขอโดย {agent}",
approve: "อนุมัติ",
reject: "ปฏิเสธ",
permissionRequired: "ต้องมีสิทธิ์อนุมัติ",
},
usage: {
cost: "Cost",
tokens: "Tokens",
},
cron: {
empty: "No scheduled jobs.",
next: "Next {time}",
noNext: "Not scheduled",
},
instances: {
empty: "No connected instances.",
idle: "Idle for {duration}",
},
activity: {
empty: "No recent activity.",
},
embed: {
missing: "This embed has no URL yet.",
blockedExternal: "External embeds are disabled by your gateway policy.",
blockedScheme: "This embed URL uses an unsupported scheme.",
},
preview: {
missing: "ตัวอย่างนี้ยังไม่มี URL",
blockedExternal: "ตัวอย่างภายนอกถูกปิดใช้งานตามนโยบาย Gateway ของคุณ",
blockedScheme: "URL ของตัวอย่างนี้ใช้สกีมที่ไม่รองรับ",
toolbar: "ตัวควบคุมตัวอย่าง",
reload: "โหลดตัวอย่างใหม่",
viewport: {
label: "วิวพอร์ตของตัวอย่าง",
desktop: "เดสก์ท็อป",
tablet: "แท็บเล็ต",
mobile: "มือถือ",
},
},
cellLabel: "วิดเจ็ตแดชบอร์ด: {title} ใช้ปุ่มลูกศรเพื่อนำทาง กดค้าง Alt แล้วกดปุ่มลูกศรเพื่อย้าย",
moveHandle: "ย้าย {title}",
resizeHandle: "ปรับขนาด {title}",
menuLabel: "ตัวเลือกวิดเจ็ต",
moveToTab: "ย้ายไปยังแท็บ",
noOtherTabs: "ไม่มีแท็บอื่น",
resize: "ปรับขนาด",
remove: "ลบ",
needsApproval: "ต้องการการอนุมัติ",
needsApprovalDetail: "วิดเจ็ตนี้ร้องขอการเข้าถึงเพิ่มเติม",
allow: "อนุญาต",
reject: "ปฏิเสธ",
rejected: "ปฏิเสธการเข้าถึง",
rejectedDetail: "วิดเจ็ตนี้จะไม่ทำงานจนกว่าจะถูกลบหรือแทนที่",
appLoading: "กำลังกู้คืนแอป…",
appStaleTitle: "แอปที่ปักหมุดนี้ล้าสมัย",
appStaleDetail: "เซิร์ฟเวอร์ ทรัพยากร หรือทรานสคริปต์ต้นทางไม่พร้อมใช้งานอีกต่อไป",
retry: "ลองอีกครั้ง",
frameResolverMissing: "เนื้อหาวิดเจ็ตไม่พร้อมใช้งาน",
frameAuthorizationFailed: "การอนุญาตวิดเจ็ตล้มเหลวหลังจากพยายามรีเฟรชซ้ำหลายครั้ง",
errorTitle: "ไม่สามารถโหลดวิดเจ็ตนี้ได้",
errorDetail: "ปัญหาถูกจำกัดอยู่ที่การ์ดนี้เท่านั้น",
actionErrorTitle: "การเปลี่ยนแปลงวิดเจ็ตล้มเหลว",
actionErrorDetail: "แดชบอร์ดยังคงสถานะวิดเจ็ตก่อนหน้าไว้",
errorShow: "แสดงรายละเอียด",
kindMcp: "MCP",
kindHtml: "HTML",
},
},
workboard: {
@@ -2781,7 +2902,6 @@ export const th: TranslationMap = {
cronFailed: "งาน cron ล้มเหลว {count} งาน",
cronOverdue: "งาน cron เลยกำหนด {count} งาน",
modelAuthExpired: "การยืนยันตัวตนของโมเดลหมดอายุ: {providers}",
modelAuthExpiring: "การยืนยันตัวตนของโมเดลกำลังจะหมดอายุ: {providers}",
pendingApproval: "รอการอนุมัติ {count} รายการ",
pendingApprovals: "รอการอนุมัติ {count} รายการ",
},
@@ -2841,6 +2961,7 @@ export const th: TranslationMap = {
skills: "Skills",
},
items: {
apps: "แอป",
sessions: "เซสชัน",
scheduled: "กำหนดเวลาไว้",
skills: "Skills",
@@ -3481,6 +3602,7 @@ export const th: TranslationMap = {
},
chat: {
disconnected: "ตัดการเชื่อมต่อจากเกตเวย์แล้ว",
waitingForApproval: "กำลังรอการอนุมัติ…",
archivedSessionDisabled: "กู้คืนเซสชันนี้เพื่อส่งข้อความ",
loadOlder: "โหลดรายการก่อนหน้า",
sessionHeader: {
@@ -3495,6 +3617,34 @@ export const th: TranslationMap = {
copyPath: "คัดลอกพาธ",
copyBranch: "คัดลอกชื่อ branch",
copied: "คัดลอกแล้ว",
branches: "สาขาเธรด",
branchSwitchUnavailable: "ไม่สามารถสลับสาขาได้ในขณะที่เอเจนต์กำลังทำงาน",
branchSwitchRequiresAdmin: "การสลับสาขาต้องใช้สิทธิ์ผู้ดูแลระบบของผู้ปฏิบัติงาน",
untitledBranch: "สาขาที่ไม่มีชื่อ",
oneMessage: "{count} ข้อความ",
messages: "{count} ข้อความ",
activeBranch: "สาขาที่ใช้งานอยู่",
},
board: {
faceLabel: "หน้าเธรด",
chatFace: "แชท",
dashboardFace: "แดชบอร์ด",
dockMenu: "แท่นแชท: {dock}",
dockLeft: "จอดแชทไว้ทางซ้าย",
dockRight: "จอดแชทไว้ทางขวา",
dockBottom: "จอดแชทไว้ด้านล่าง",
dockHidden: "ซ่อนแชท",
resizeDock: "ปรับขนาดแท่นแชท",
reopenChat: "แสดงแชท",
defaultTab: "หลัก",
mockPlaceholder: "ตะเข็บมุมมองบอร์ด · {tabs} แท็บ · {widgets} วิดเจ็ต",
mockOverview: "ภาพรวม",
mockResearch: "การค้นคว้า",
mockSessionStatus: "สถานะเธรด",
mockRecentFindings: "ผลลัพธ์ล่าสุด",
mockSourceMap: "แผนที่แหล่งที่มา",
resetTitle: "รีเซ็ตการสนทนาหรือไม่?",
resetDescription: "บริบทการสนทนาจะถูกรีเซ็ต แดชบอร์ดของคุณยังคงอยู่",
},
catalog: {
remoteViewOnly: "เซสชันนี้อยู่บนโหนดที่จับคู่และดูได้อย่างเดียว",
@@ -3633,7 +3783,9 @@ export const th: TranslationMap = {
updateMacAndGateway: "อัปเดตแอป Mac + Gateway",
updateGateway: "อัปเดต Gateway",
allSessions: "เซสชันทั้งหมด",
chats: "แชท",
threads: "เธรด",
groups: "กลุ่ม",
coding: "การเขียนโค้ด",
groupCatalogSessionsByProject: "จัดกลุ่มตามโปรเจกต์",
openSessionMenu: "Open session menu",
sortBy: "จัดเรียงตาม",
@@ -3642,7 +3794,7 @@ export const th: TranslationMap = {
sortUpdated: "อัปเดตล่าสุด",
sessionMenu: "Actions for {session}",
sessionMenuMany: "การดำเนินการสำหรับเซสชัน {count} รายการ",
workSessions: "งาน",
toolActivity: "กำลังใช้ {tool}",
},
welcome: {
hintBeforeShortcut: "Type a message below ·",
@@ -3687,11 +3839,40 @@ export const th: TranslationMap = {
title: "Codex ต้องการข้อมูลเพิ่มเติม",
other: "พิมพ์คำตอบอื่น",
submit: "ส่งคำตอบ",
next: "ถัดไป",
back: "ย้อนกลับ",
skip: "ข้าม",
skipping: "กำลังข้าม…",
skipped: "ข้ามแล้ว",
collapse: "ยุบคำถาม",
expand: "ขยายคำถาม",
eyebrow: "คำถาม",
cardLabel: "คำถามจากผู้ช่วย",
summaryLabel: "ผลลัพธ์คำถาม",
timeRemaining: "เวลาที่เหลือ",
ownAnswer: "คำตอบของคุณเอง…",
ownAnswerFor: "คำตอบของคุณเองสำหรับ {header}",
submitting: "กำลังส่ง…",
submitFailed: "ไม่สามารถส่งได้: {error}",
answered: "ตอบแล้ว",
answeredElsewhere: "ตอบไว้ที่อื่นแล้ว",
unavailable: "ไม่พร้อมใช้งาน",
expired: "หมดอายุ",
cancelled: "ยกเลิกแล้ว",
},
messages: {
activity: "กิจกรรม",
deleteMessage: "ลบข้อความ",
forkFromHere: "แยกจากจุดนี้",
hide: "ซ่อน",
hideConfirm: "ซ่อนข้อความนี้ในเบราว์เซอร์นี้หรือไม่? เอเจนต์ยังคงเห็นข้อความนี้อยู่",
hideMessage: "ซ่อนข้อความ",
hideTooltip: "ซ่อนเฉพาะในเบราว์เซอร์นี้",
openInCanvas: "เปิดใน Canvas",
rewind: "ย้อนกลับ",
rewindConfirm: "ย้อนกลับไปก่อนข้อความนี้หรือไม่?",
rewindToHere: "ย้อนกลับมาที่นี่",
rewindUnavailable: "ไม่สามารถย้อนกลับได้ขณะที่เอเจนต์กำลังทำงาน",
forkUnavailable: "ไม่สามารถแยกได้ขณะที่เอเจนต์กำลังทำงาน",
unknownDate: "ไม่ทราบวันที่",
voiceNote: "ข้อความเสียง",
},
@@ -3699,6 +3880,9 @@ export const th: TranslationMap = {
default: "ค่าเริ่มต้น",
reasoning: "การให้เหตุผล",
speed: "ความเร็ว",
sessionOverride: "การแทนที่ในเธรด",
usingDefault: "กำลังใช้ค่าเริ่มต้นจากการตั้งค่า",
resetToDefault: "รีเซ็ตเป็นค่าเริ่มต้น ({model})",
},
sideChat: {
title: "แชทด้านข้าง",
@@ -3775,8 +3959,13 @@ export const th: TranslationMap = {
limitHours: "ขีดจำกัด {hours} ชั่วโมง",
},
takePhoto: "ถ่ายรูป",
cameraAccessFailed: "ไม่สามารถเข้าถึงกล้องได้",
cameraBusy: "กล้องกำลังใช้งานอยู่หรือไม่พร้อมใช้งานสำหรับเบราว์เซอร์",
cameraFallback: "กล้อง {number}",
cameraInput: "กล้อง",
cameraListUnsupported: "เบราว์เซอร์นี้ไม่สามารถแสดงรายการกล้องได้",
cameraNoneFound: "ไม่พบกล้อง",
cameraPageInactive: "ไม่สามารถใช้กล้องได้ขณะที่หน้านี้ไม่ได้ใช้งาน",
cameraPermissionBlocked:
"การเข้าถึงกล้องถูกบล็อก อนุญาตการเข้าถึงกล้องและไมโครโฟนในการตั้งค่าไซต์ของเบราว์เซอร์",
cameraPreview: "ตัวอย่างกล้อง",
@@ -3785,19 +3974,38 @@ export const th: TranslationMap = {
microphoneBusy: "อินพุตไมโครโฟนกำลังใช้งานอยู่หรือไม่พร้อมใช้งานสำหรับเบราว์เซอร์",
microphoneFallback: "ไมโครโฟน {number}",
microphoneInput: "อินพุตไมโครโฟน",
microphoneAppliesNextSession: "การเปลี่ยนแปลงจะมีผลเมื่อคุณเริ่มเซสชัน Talk ครั้งถัดไป",
microphoneListUnsupported: "เบราว์เซอร์นี้ไม่สามารถแสดงรายการอินพุตไมโครโฟนได้",
noCameras: "ไม่พบกล้องเพิ่มเติม",
noMicrophones: "ไม่พบไมโครโฟนเพิ่มเติม",
microphoneNoneFound: "ไม่พบอินพุตไมโครโฟน",
microphonePageInactive: "อินพุตไมโครโฟนไม่พร้อมใช้งานขณะที่หน้านี้ไม่ได้ใช้งาน",
microphonePermissionBlocked:
"การเข้าถึงไมโครโฟนถูกบล็อก อนุญาตในการตั้งค่าเว็บไซต์ของเบราว์เซอร์เพื่อแสดงรายการอินพุต",
holdToRecordSetting: "กดปุ่มไมโครโฟนค้างไว้เพื่อบอกให้พิมพ์",
holdToRecordSettingDescription:
"กดปุ่มไมโครโฟนของช่องเขียนข้อความค้างไว้ พูด แล้วปล่อยเพื่อแทรกข้อความโดยไม่ต้องส่ง",
dictationAudioUnsupported: "Gateway ส่งกลับรูปแบบเสียงการบอกให้พิมพ์ที่ไม่รองรับ",
dictationBrowserAudioUnsupported: "เบราว์เซอร์นี้ไม่สามารถบันทึกเสียงการบอกให้พิมพ์ที่ 8 kHz ได้",
dictationConnecting: "กำลังเริ่มการบอกให้พิมพ์…",
dictationDisconnected: "การบอกให้พิมพ์หยุดลงเนื่องจาก Gateway ตัดการเชื่อมต่อ",
dictationFailed: "การบอกให้พิมพ์ล้มเหลว",
dictationFinalizing: "กำลังจบการบอกให้พิมพ์…",
dictationFinalizationTimedOut: "การบอกให้พิมพ์หยุดลงก่อนที่ข้อความถอดเสียงบางส่วนสุดท้ายจะเสร็จสมบูรณ์",
dictationProviderUnavailable: "ไม่ได้ตั้งค่าผู้ให้บริการถอดเสียงสำหรับการบอกให้พิมพ์",
dictationRecording: "กำลังบันทึก {elapsed}",
dictationReleaseToInsert: "ปล่อยเพื่อแทรกการบอกให้พิมพ์",
realtimeTalkRequiresMicrophone: "การป้อนเสียงแบบเรียลไทม์ต้องการสิทธิ์เข้าถึงไมโครโฟนของเบราว์เซอร์",
selectedMicrophoneUnavailable: "ไมโครโฟนที่เลือกไม่พร้อมใช้งาน เลือกอินพุตอื่นหรือค่าเริ่มต้นของระบบ",
selectedCameraUnavailable: "กล้องที่เลือกไม่พร้อมใช้งาน เลือกกล้องอื่นหรือค่าเริ่มต้นของระบบ",
startVoiceInput: "เริ่มการป้อนข้อมูลด้วยเสียง",
startVideoTalk: "เริ่มการสนทนาวิดีโอ",
stillListening: "ยังฟังอยู่",
stopVoiceInput: "หยุดการป้อนข้อมูลด้วยเสียง",
systemDefaultMicrophone: "ค่าเริ่มต้นของระบบ",
systemDefaultCamera: "ค่าเริ่มต้นของระบบ",
switchCamera: "สลับกล้อง",
turnCameraOff: "ปิดกล้อง",
turnCameraOn: "เปิดกล้อง",
voiceTranscript: "การถอดเสียง",
},
selectors: {
@@ -3823,6 +4031,14 @@ export const th: TranslationMap = {
rawDetails: "รายละเอียดดิบ",
openFile: "เปิดไฟล์",
openDetails: "เปิดรายละเอียดเครื่องมือในแผงด้านข้าง",
widgetActions: "การดำเนินการวิดเจ็ต",
copyToClipboard: "คัดลอกไปยังคลิปบอร์ด",
downloadFile: "ดาวน์โหลดไฟล์",
widgetExportRerender: "วิดเจ็ตนี้ต้องเรนเดอร์ใหม่เพื่อส่งออกเป็นรูปภาพ",
widgetExportFailed: "การส่งออกวิดเจ็ตล้มเหลว ลองอีกครั้ง",
pinToDashboard: "ปักหมุดไปที่แดชบอร์ด",
pinToDashboardPending: "กำลังปักหมุด…",
pinnedToDashboard: "ปักหมุดแล้ว",
fileChanges: "การเปลี่ยนแปลงไฟล์",
attemptedChanges: "การเปลี่ยนแปลงที่พยายามทำ",
failed: "ล้มเหลว",
@@ -3918,6 +4134,18 @@ export const th: TranslationMap = {
statusRenamed: "เปลี่ยนชื่อแล้ว",
statusModified: "แก้ไขแล้ว",
},
sessionDiscussion: {
title: "การสนทนา",
show: "แสดงการสนทนา",
disconnected: "Gateway ถูกตัดการเชื่อมต่อ",
loading: "กำลังโหลดการสนทนา…",
opening: "กำลังเปิดการสนทนา…",
requiresWriteAccess: "ต้องมีสิทธิ์การเขียนของผู้ควบคุมเพื่อเปิดการสนทนานี้",
opened: "การสนทนาของเซสชัน",
openExternal: "เปิดการสนทนาในแท็บใหม่",
frameTitle: "การสนทนาของเซสชัน",
unavailable: "ไม่สามารถฝังการสนทนานี้ได้",
},
workspaceFiles: {
label: "พื้นที่ทำงานของเซสชัน",
expand: "ขยายพื้นที่ทำงานของเซสชัน",
@@ -4149,9 +4377,11 @@ export const th: TranslationMap = {
expression: "นิพจน์",
expressionPlaceholder: "0 7 * * *",
everyAmountPlaceholder: "30",
summaryEverySecondOne: "ทำงานทุกวินาที",
summaryEveryMinuteOne: "ทำงานทุกนาที",
summaryEveryHourOne: "ทำงานทุกชั่วโมง",
summaryEveryDayOne: "ทำงานทุกวัน",
summaryEverySeconds: "ทำงานทุก {amount} วินาที",
summaryEveryMinutes: "ทำงานทุก {amount} นาที",
summaryEveryHours: "ทำงานทุก {amount} ชั่วโมง",
summaryEveryDays: "ทำงานทุก {amount} วัน",
+434 -192
View File
File diff suppressed because it is too large Load Diff
+433 -191
View File
File diff suppressed because it is too large Load Diff
+434 -190
View File
File diff suppressed because it is too large Load Diff
+417 -190
View File
@@ -20,6 +20,8 @@ export const zh_CN: TranslationMap = {
staleData: "正在显示旧数据。",
reload: "重新加载",
reset: "重置",
restore: "恢复",
undo: "撤销",
probe: "探测",
call: "调用",
confirm: "确认",
@@ -87,6 +89,10 @@ export const zh_CN: TranslationMap = {
logout: "退出登录",
skipToMainContent: "跳转到主要内容",
},
optionCard: {
recommended: "推荐",
skip: "暂时跳过",
},
nativeLinkMenu: {
label: "链接操作",
openInline: "在边栏中打开",
@@ -215,6 +221,9 @@ export const zh_CN: TranslationMap = {
whatsapp: {
title: "WhatsApp",
subtitle: "链接 WhatsApp Web 并监控连接状态。",
loggedOut: "已登出。",
logoutNotCleared:
"未清除已存储的 WhatsApp 会话。可能已不存在,或其身份验证目录需要手动清理。",
},
gatewayUrlConfirmation: {
title: "更改 Gateway URL",
@@ -268,6 +277,7 @@ export const zh_CN: TranslationMap = {
genericSubtitle: "加载此面板时出现问题。",
staleTitle: "有新版本可用",
staleSubtitle: "OpenClaw 已在后台更新。请重新加载以获取最新面板。",
reloading: "正在重新加载…",
retry: "重试",
},
nodes: {
@@ -276,6 +286,8 @@ export const zh_CN: TranslationMap = {
adminRequired: "需要管理员访问权限才能创建设置码。",
title: "OpenClaw 移动版",
subtitle: "在移动应用中扫描此二维码以连接新手机。",
noApp: "还没有该应用?",
getApps: "获取应用",
generating: "正在创建安全设置码…",
accessTitle: "移动端访问",
fullAccess: "完全访问权限(推荐)",
@@ -460,11 +472,15 @@ export const zh_CN: TranslationMap = {
agentChip: {
menuLabel: "智能体菜单",
agents: "代理",
openChat: "与 {name} 聊天",
offlineOpenSettings: "离线 — 打开设置",
switchAgent: "切换代理",
working: "正在工作…",
ready: "可以开始聊天",
whatCanAgentDo: "{name} 能做什么?",
help: "帮助",
getHelp: "获取帮助",
getApps: "获取应用",
discord: "Discord 社区",
viewChangelog: "查看更新日志",
agentSettings: "Agent 设置",
@@ -485,6 +501,7 @@ export const zh_CN: TranslationMap = {
cloudWorker: "云端 · {profile}",
cloudWorkerProvider: "云端工作器提供商:{provider}",
cloudRequiresWorktree: "云端工作器需要托管工作树",
cloudRequiresOpenClawRuntime: "云工作节点需要 OpenClaw 运行时;当前已选择 {runtime}。",
cloudSecureContextRequired: "云端工作器需要安全的浏览器上下文,以便恢复功能保护您的任务。",
cloudStartFailed: "会话已在本地创建,但云端启动失败:{error}",
cloudSyncsFolder: "将 {folder} 同步到云端工作器",
@@ -528,7 +545,12 @@ export const zh_CN: TranslationMap = {
sourceFilters: "会话来源筛选器",
global: "全局",
unknown: "未知",
archivedOnly: "仅已归档",
sessionState: "会话状态",
viewArchived: "查看已归档",
sessionArchived: "会话已归档",
sessionsArchived: "已归档 {count} 个会话",
deleteAllArchived: "删除所有已归档…",
deleteAllArchivedConfirm: "删除 {count} 个已归档会话及其记录?",
activeTooltip: "在过去 {count} 分钟内更新。",
limitTooltip: "要加载的最大会话数。",
globalTooltip: "包含全局会话。",
@@ -572,6 +594,8 @@ export const zh_CN: TranslationMap = {
actions: "操作",
addToWorkboard: "添加到 Workboard",
openWorkboardCard: "打开 Workboard 卡片",
dashboardAvailable: "仪表板可用",
approvalNeeded: "需要批准",
noSessions: "未找到会话。",
noSessionsMatchFilters: "没有会话符合你的筛选条件。",
pagination: "第 {start}-{end} 行,共 {total} 行",
@@ -611,10 +635,17 @@ export const zh_CN: TranslationMap = {
statusFailed: "失败",
statusKilled: "已终止",
statusTimeout: "已超时",
waitingForAnswer: "等待您的回答",
waitingForApproval: "等待批准",
runFailedReason: "运行失败:{reason}",
runErrorTimedOut: "已超时",
runErrorUnknown: "未知错误",
attentionRequired: "会话需要关注",
model: "模型",
provider: "提供商",
runtime: "运行时",
runDuration: "运行时长",
lastActive: "上次活动 {time}",
surface: "界面",
subject: "主题",
room: "房间",
@@ -624,6 +655,7 @@ export const zh_CN: TranslationMap = {
showChildSessions: "显示 {session} 的 {count} 个子会话",
hideChildSessions: "隐藏 {session} 的 {count} 个子会话",
childSessions: "子会话",
showMoreChildren: "再显示 {count} 个",
archived: "已归档",
pinned: "已置顶",
unread: "Unread",
@@ -635,6 +667,10 @@ export const zh_CN: TranslationMap = {
renameSessionMenu: "Rename…",
pinSession: "置顶会话",
unpinSession: "取消置顶会话",
changeIcon: "更改图标",
customEmoji: "自定义表情符号",
invalidEmojiIcon: "请正好输入一个表情符号。",
removeIcon: "移除图标",
markUnread: "Mark as unread",
markRead: "Mark as read",
markUnreadCount: "将 {count} 标记为未读",
@@ -1066,40 +1102,9 @@ export const zh_CN: TranslationMap = {
},
channels: {
title: "频道",
connectedCount: "已连接 {count} 个",
empty: "未配置频道",
connect: "连接 →",
},
automation: {
title: "自动化",
scheduledTask: "{count} 个计划任务",
scheduledTasks: "{count} 个计划任务",
installedSkill: "已安装 {count} 个 skill",
installedSkills: "已安装 {count} 个 skill",
mcpServer: "{count} 个 MCP 服务器",
mcpServers: "{count} 个 MCP 服务器",
manage: "管理 →",
browse: "浏览 →",
configure: "配置 →",
},
appearance: {
title: "外观",
theme: "主题",
textSize: "文字大小",
importedTheme: "已导入的主题",
import: "导入",
themes: {
claw: "Claw",
knot: "Knot",
dash: "Dash",
},
textSizes: {
small: "S",
medium: "M",
large: "L",
xl: "XL",
xxl: "XXL",
},
lobsterVisits: "龙虾来访",
lobsterVisitsOn: "偶尔来访",
lobsterVisitsOff: "从不来访",
@@ -1112,7 +1117,6 @@ export const zh_CN: TranslationMap = {
},
security: {
title: "安全",
configure: "配置 →",
gatewayAuth: "Gateway 认证",
execPolicy: "执行策略",
deviceAuth: "设备认证",
@@ -1136,22 +1140,29 @@ export const zh_CN: TranslationMap = {
},
personal: {
title: "个人",
profileTitle: "配置文件",
user: "用户",
you: "你",
assistant: "助手",
localIdentity: "你的本地聊天身份",
profileIdentity: "你的 gateway 配置文件",
assistantIdentity: "助手身份",
displayName: "显示名称",
displayNamePlaceholder: "你的名字",
saveProfile: "保存名字",
saving: "保存中…",
uploading: "处理中…",
profileHint: "JPEG、PNG 或 WebP。图像将居中裁剪并调整为 512px。",
profileLoadFailed: "无法加载你的配置文件。",
profileSaveFailed: "无法保存你的配置文件。",
avatarInvalid: "请选择有效的 JPEG、PNG 或 WebP 图像。",
avatarTooLarge: "处理后的头像仍然过大。",
avatarText: "头像文字 / 表情符号",
avatarPlaceholder: "JD 或 🦞",
chooseImage: "选择图片",
replaceImage: "替换图片",
clearAvatar: "清除头像",
clearOverride: "清除覆盖设置",
browserOnly: "仅存储在此浏览器中。",
overrideHint: "存储 Control UI 覆盖设置。清除它可恢复到已配置的头像。",
uiOverride: "UI 覆盖",
configuredAvatar: "已配置头像",
overrideFromSettings: "来自设置的覆盖",
fallbackAvatar: "后备头像",
fallbackLogo: "后备徽标",
avatarIssues: {
@@ -1165,26 +1176,16 @@ export const zh_CN: TranslationMap = {
},
},
configPage: {
settingsView: "设置视图",
simple: "简单",
advanced: "高级",
content: "设置内容",
themeImported: "已导入 {name}。",
themeRemoved: "已移除自定义主题。",
channels: {
telegram: "Telegram",
discord: "Discord",
slack: "Slack",
whatsapp: "WhatsApp",
signal: "Signal",
imessage: "iMessage",
},
},
configView: {
categories: {
core: "核心",
ai: "AI 与代理",
communication: "通信",
security: "隐私与安全",
automation: "自动化",
infrastructure: "基础设施",
appearance: "外观",
@@ -1216,6 +1217,7 @@ export const zh_CN: TranslationMap = {
bindings: "绑定",
cron: "Cron",
approvals: "审批",
security: "安全策略",
plugins: "插件",
gateway: "Gateway",
web: "Web",
@@ -1251,11 +1253,15 @@ export const zh_CN: TranslationMap = {
xl: "XL",
xxl: "XXL",
},
syncedHint: "通过 Gateway 在您的设备间同步。",
notifications: {
title: "推送通知",
nativeTitle: "通知",
hint: "接收来自 Gateway 的浏览器推送通知。",
nativeHint: "通知由此 Mac 上的 OpenClaw 应用原生显示。",
unavailableHint: "此浏览器不支持。",
unavailable: "不可用",
checking: "正在检查……",
granted: "已授予",
denied: "已拒绝",
notRequested: "未请求",
@@ -1273,7 +1279,9 @@ export const zh_CN: TranslationMap = {
sendTest: "发送测试",
subscribing: "正在订阅…",
enable: "启用通知",
openSystemSettings: "打开系统设置",
blockedHint: "通知已被阻止。请更新浏览器站点权限以允许通知。",
nativeBlockedHint: "OpenClaw 的通知已在 macOS 中被禁用。请在“系统设置 > 通知”中允许通知。",
},
appearance: {
theme: "主题",
@@ -1300,6 +1308,12 @@ export const zh_CN: TranslationMap = {
title: "聊天",
hint: "浏览器本地聊天偏好设置。",
},
sidebarPrefs: {
title: "侧边栏",
hint: "选择会话运行时显示的内容。",
liveActivity: "在侧边栏显示实时代理活动",
liveActivityHint: "在运行中的会话下方显示最新的助手或工具活动。",
},
connection: {
title: "连接",
gateway: "Gateway",
@@ -1353,6 +1367,10 @@ export const zh_CN: TranslationMap = {
execApprovalNeeded: "需要 Exec 审批",
pluginApprovalNeeded: "需要插件审批",
pending: "{count} 个待处理",
otherPending: "其他待处理请求",
reviewRequest: "审核来自 {agent} 的批准:{command}",
agentPendingOne: "{count} 项待审批",
agentPending: "{count} 项待审批",
allowOnce: "允许一次",
alwaysAllow: "始终允许",
allowAlwaysUnavailable: "“始终允许”不可用于此命令。",
@@ -1553,8 +1571,10 @@ export const zh_CN: TranslationMap = {
chat: "聊天",
settings: "设置",
settingsGeneral: "通用",
askOpenClaw: "询问 OpenClaw",
settingsGroupConnections: "连接",
settingsGroupAgents: "代理与工具",
settingsGroupSecurity: "隐私与安全",
settingsGroupSystem: "系统",
settingsSearchLabel: "搜索设置",
settingsSearchPlaceholder: "搜索设置…",
@@ -1566,6 +1586,8 @@ export const zh_CN: TranslationMap = {
collapse: "折叠侧边栏",
resize: "调整侧边栏大小",
more: "更多",
home: "主页",
pages: "页面",
customize: "自定义侧边栏",
customizeReset: "恢复默认设置",
},
@@ -1653,6 +1675,7 @@ export const zh_CN: TranslationMap = {
tabs: {
agents: "代理",
activity: "活动",
apps: "应用",
approvals: "审批",
workboard: "工作板",
worktrees: "Worktrees",
@@ -1667,6 +1690,7 @@ export const zh_CN: TranslationMap = {
skillWorkshop: "技能工坊",
nodes: "节点",
chat: "聊天",
custodian: "OpenClaw",
config: "配置",
profile: "个人资料",
communications: "通信",
@@ -1674,11 +1698,15 @@ export const zh_CN: TranslationMap = {
automation: "自动化",
mcp: "MCP",
infrastructure: "基础设施",
labs: "实验室",
about: "关于",
aiAgents: "AI 与代理",
modelSetup: "模型设置",
modelProviders: "Model Providers",
memoryImport: "导入记忆",
notifications: "通知",
security: "隐私与安全",
advanced: "高级",
debug: "调试",
logs: "日志",
plugin: "插件",
@@ -1686,6 +1714,7 @@ export const zh_CN: TranslationMap = {
subtitles: {
agents: "工作区、工具、身份。",
activity: "浏览器本地工具活动摘要。",
apps: "适用于手机、手表、桌面和浏览器的配套应用。",
approvals: "最近的执行、插件和系统代理审批。",
workboard: "智能体工作队列和会话交接。",
worktrees: "隔离的代理任务检出和恢复快照。",
@@ -1700,6 +1729,7 @@ export const zh_CN: TranslationMap = {
skillWorkshop: "在提案成为上线技能之前,进行审查、优化并应用。",
nodes: "配对设备和命令。",
chat: "网关聊天,快速干预。",
custodian: "系统设置与维护。",
config: "编辑 openclaw.json。",
profile: "你的智能体在珊瑚礁中的统计、连续记录和动态。",
communications: "频道、消息和音频设置。",
@@ -1707,11 +1737,15 @@ export const zh_CN: TranslationMap = {
automation: "命令、钩子、定时任务和插件设置。",
mcp: "MCP 服务器、身份验证、工具和诊断。",
infrastructure: "网关、Web、浏览器和媒体设置。",
labs: "实验性智能体和工具功能。",
about: "Control UI 和已连接的 Gateway 构建标识。",
aiAgents: "代理、模型、技能、工具、记忆和会话设置。",
modelSetup: "连接已验证的 AI 模型",
modelProviders: "Configured providers with plan, quota, and cost.",
memoryImport: "将 Codex 和 Claude Code 的记忆导入代理工作区。",
notifications: "来自 Gateway 的浏览器推送通知。",
security: "Gateway 认证、执行策略、工具配置文件和审批。",
advanced: "所有剩余的配置部分,以及原始文件编辑器。",
debug: "快照、事件、RPC。",
logs: "实时网关日志。",
plugin: "插件提供的面板。",
@@ -1859,8 +1893,78 @@ export const zh_CN: TranslationMap = {
doneBody: "已迁移 {migrated} 项,已跳过 {skipped} 项。您可以继续设置 OpenClaw。",
},
},
custodian: {
title: "OpenClaw",
subtitle: "您的系统设置向导",
subtitleCaretaker: "系统设置与维护。",
exitSetup: "退出设置",
newAgent: "新建智能体",
hatchDraft: "醒来吧,我的朋友!",
placeholder: "给 OpenClaw 发消息…",
sensitivePlaceholder: "输入敏感值…",
sensitiveReply: "已发送敏感回复",
send: "发送",
thinking: "OpenClaw 正在思考",
earlier: "更早",
requestFailed: "OpenClaw 无法回复。请重试。",
connectionChanged: "Gateway 连接已更改。请重试以继续此设置。",
sessionRestarted: "{error} OpenClaw 已开始新会话;先前的消息仍保留作为上下文。",
unsupportedGateway: "更新 Gateway 以继续使用 OpenClaw 进行设置。",
history: {
button: "历史",
title: "最近更改",
description: "此系统上的更改,最新在前。",
loading: "正在加载最近更改…",
empty: "尚无记录的更改。",
requestFailed: "OpenClaw 无法加载更改历史。",
loadMore: "加载更多",
loadingMore: "正在加载更多…",
changedPaths: "已更改的路径({count}",
invalidEdit: "此手动编辑未通过配置验证。",
opaqueChange: "格式或注释发生更改,但可见配置路径没有变化。",
sources: {
systemAgent: "system-agent",
doctor: "doctor",
settings: "settings",
cli: "CLI",
pluginInstall: "plugin install",
manualEdit: "manual edit",
unknown: "unknown",
},
},
nudge: {
configReload: "配置重新加载已停止——请问我发生了什么",
channelAuth: "{channel} 身份验证已降级——请问我发生了什么",
channelDisconnected: "{channel} 刚刚断开连接——请问我发生了什么",
channelDegraded: "{channel} 已降级——请问我发生了什么",
channelFallback: "频道",
dismiss: "忽略此更新",
},
},
mcpServers: {
add: "添加服务器",
adding: "正在添加…",
nameLabel: "名称",
targetLabel: "URL 或命令",
nameInvalid: "服务器名称只能使用字母、数字、点、短横线或下划线。",
targetInvalid: "请输入 http(s) URL 或命令行。",
nameTaken: "名为“{name}”的 MCP 服务器已存在。",
missing: "配置中未找到 MCP 服务器“{name}”。",
missingTransport: "缺少传输",
addedSuccess: "已添加 MCP 服务器 {name}。",
enabledSuccess: "已启用 MCP 服务器 {name}。",
disabledSuccess: "已禁用 MCP 服务器 {name}。",
removedSuccess: "已移除 MCP 服务器 {name}。",
configUnavailable: "配置不可用;请刷新后重试。",
connectRequired: "请连接到 Gateway 以更改 MCP 服务器。",
adminRequired: "更改 MCP 服务器需要 operator.admin 权限。",
enable: "启用",
disable: "禁用",
removeNamed: "移除 {name}",
working: "正在工作…",
},
mcpPage: {
manageServersLink: "在插件页面管理服务器。",
connectorsLink: "在 Plugins 页面发现一键连接器。",
servers: "服务器",
oauth: "OAuth",
filtered: "已过滤",
@@ -1871,10 +1975,12 @@ export const zh_CN: TranslationMap = {
runtimeHint: "运行时更改在保存并发布后生效;活动代理将在下次使用时重建 MCP 运行时。",
toolFilter: "工具过滤器",
parallel: "并行",
missingTransport: "缺少传输",
tlsVerifyOff: "TLS 验证已关闭",
mtls: "mTLS",
},
sessionsPage: {
hubTablistLabel: "会话分区",
},
pluginsPage: {
searchLabel: "搜索插件",
searchPlaceholder: "搜索插件",
@@ -1955,18 +2061,7 @@ export const zh_CN: TranslationMap = {
mcpSettingsLink: "MCP 设置",
mcpHint:
"连接 Model Context Protocol 服务器,为你的智能体提供额外工具。更改将应用于新的智能体会话。",
mcpAdd: "添加服务器",
mcpAdding: "正在添加…",
mcpEmpty: "尚未配置 MCP 服务器。在此添加一个,或从 Discover 中选择一个连接器。",
mcpNameLabel: "名称",
mcpTargetLabel: "URL 或命令",
mcpNameInvalid: "服务器名称可使用字母、数字、点、短横线或下划线。",
mcpTargetInvalid: "请输入 http(s) URL 或命令行。",
mcpNameTaken: "名为“{name}”的 MCP 服务器已存在。",
mcpMissing: "在配置中未找到 MCP 服务器“{name}”。",
mcpAddedSuccess: "已添加 MCP 服务器 {name}。",
mcpRemovedSuccess: "已移除 MCP 服务器 {name}。",
mcpConfigUnavailable: "配置不可用;请刷新后重试。",
remove: "移除",
removing: "正在移除…",
removeNamed: "移除 {name}",
@@ -2015,6 +2110,25 @@ export const zh_CN: TranslationMap = {
disabledSuccess: "已停用 {name}。",
disabledRestart: "已停用 {name}。需要重启 Gateway 才能应用更改。",
},
labsPage: {
intro: "Labs 包含实验性功能,可能在不同版本之间发生变化、损坏或消失。",
sectionTitle: "实验性功能",
sectionDescription: "更改会立即保存并应用于后续的代理运行。",
documentation: "文档",
restartRequired: "需要重启 Gateway。",
saveErrorTitle: "无法更新功能",
saveFailed: "无法保存功能设置。",
codeMode: {
title: "Code Mode",
description: "让代理在紧凑、沙盒化的 JavaScript 工作流中组合各种工具。",
},
swarm: {
title: "Swarm",
description: "让 Code Mode 并行编排子代理群组。",
empty: "没有活跃的 swarm。",
defaultPhase: "无阶段",
},
},
aboutPage: {
productName: "OpenClaw",
tagline: "运行在您自己设备上的个人 AI 助手。",
@@ -2024,6 +2138,7 @@ export const zh_CN: TranslationMap = {
linkDocs: "文档",
linkGitHub: "GitHub",
linkDiscord: "Discord",
linkX: "X (Twitter)",
linkChangelog: "更新日志",
license: "© 2026 OpenClaw Foundation — MIT License.",
artifactTitle: "Control UI",
@@ -2041,6 +2156,71 @@ export const zh_CN: TranslationMap = {
gatewayVersion: "已连接的 Gateway 版本",
gatewayVersionHint: "由活动的 Gateway 连接报告;与此 Control UI 构建分开。",
},
appsPage: {
heroTitle: "随时随地使用 OpenClaw",
heroTagline: "适用于手机、手表、桌面和浏览器的配套应用 — 以及扩展代理能力的插件。",
sectionMobile: "在您的手机上",
havePhone: "已经安装了应用?",
pairDevice: "配对您的设备",
sectionWatch: "在您的手腕上",
sectionDesktop: "在您的桌面上",
sectionBrowser: "在浏览器中",
sectionCommunity: "社区",
badgeBundledIos: "iOS 应用内附带",
badgeBundledAndroid: "Android 应用内附带",
ctaAppStore: "App Store",
ctaPlayStore: "Google Play",
ctaDownload: "下载",
ctaDocs: "文档",
ctaSetupGuide: "设置指南",
ctaOpenPlugins: "打开插件",
ctaBrowseClawHub: "浏览 ClawHub",
linkDiscord: "Discord 社区",
linkDocs: "文档",
cards: {
ios: {
title: "iPhone",
desc: "在 iOS 上聊天、通话、批准操作并分享内容到 OpenClaw。",
},
android: {
title: "Android",
desc: "让你的 Android 手机成为完整的 OpenClaw 节点——聊天、相机和 Canvas。",
},
appleWatch: {
title: "Apple Watch",
desc: "在手腕上一目了然地查看聊天并快速回复。",
},
wearOs: {
title: "Wear OS",
desc: "Android 配套应用将 OpenClaw 扩展到你的手表。",
},
macos: {
title: "macOS",
desc: "Gateway 的菜单栏配套应用——通知、批准、快速聊天。",
},
windows: {
title: "Windows",
desc: "Windows 伴侣应用将你的 PC 作为 OpenClaw 节点接入。",
},
linux: {
title: "Linux",
desc: "原生桌面应用 — .deb 与 AppImage 构建版本。",
},
chrome: {
title: "Chrome 扩展",
desc: "让 OpenClaw 操控你现有的 Chrome — 标签页、页面和表单。",
},
plugins: {
title: "插件与 ClawHub",
desc: "使用社区提供的渠道、工具和 Skills 扩展 OpenClaw。",
},
},
},
presence: {
rosterLabel: "查看谁在线",
rosterTitle: "在线",
you: "你",
},
profilePage: {
offline: "连接到 Gateway 以见到你的智能体。",
loading: "正在潜入统计数据…",
@@ -2072,6 +2252,26 @@ export const zh_CN: TranslationMap = {
toolsEmpty: "尚未记录工具运行。",
toolRun: "{count} 次运行",
toolRuns: "{count} 次运行",
identity: {
title: "身份",
description: "你在此 Gateway 上的个人资料。",
loading: "正在加载你的身份…",
profileUnavailable: "无法加载你的身份资料。",
avatar: "头像",
avatarDescription: "PNG、JPEG 或 WebP。图片会被调整为 256 × 256 或更小。",
chooseAvatar: "选择图片",
processingAvatar: "处理中…",
displayName: "显示名称",
displayNameDescription: "显示给使用此 Gateway 的其他人。",
linkedEmails: "已关联的邮箱",
linkedEmailsDescription: "与此资料关联的电子邮件地址。",
openSettings: "打开 {name} 的身份设置",
avatarErrors: {
invalid: "无法处理该图片。",
sourceTooLarge: "请选择不超过 10 MB 的图片。",
tooLarge: "处理后的头像大于 512 KB。",
},
},
},
tasksPage: {
active: "活跃",
@@ -2372,131 +2572,50 @@ export const zh_CN: TranslationMap = {
submit: "Ask",
},
},
workspaces: {
tabs: {
label: "Workspaces",
hidden: "Hidden ({count})",
},
error: {
title: "Couldn't load your workspaces",
subtitle: "Something went wrong loading your workspaces. Try reloading.",
detailSummary: "Show details",
},
header: {
subtitle: "Arrange widgets and tabs for this workspace.",
},
onboarding: {
title: "Build your first workspace tab",
primary: "Ask your agent to build a tab.",
secondary: "Or create one from the command line:",
},
empty: {
onboardingTitle: "No workspaces yet",
onboardingSubtitle:
"Ask your agent to build a workspace, or create one from the command line.",
onboardingCommand: "openclaw workspaces tabs create --title Main",
tabTitle: "This workspace is empty",
tabSubtitle: "Ask your agent to add a widget, or add one yourself.",
noVisibleTabs: "Every workspace tab is hidden. Restore one from the hidden menu.",
board: {
label: "线程仪表板",
tabsLabel: "仪表板标签页",
moreTabs: "更多仪表板标签页",
gridLabel: "仪表板小组件",
emptyTitle: "空白面板,随时可用",
emptyHint: "你的智能体可以在此固定小组件——试着请求一张状态卡片。",
actionFailed: "无法保存仪表板更改。",
actionInProgress: "另一项仪表板更改仍在保存中。",
announcement: {
moved: "已移动 {title}。",
resized: "已调整 {title} 的大小。",
removed: "已移除 {title}。",
granted: "已允许小组件访问。",
rejected: "已拒绝小组件访问。",
},
widget: {
collapse: "Collapse widget",
expand: "Expand widget",
moveHandle: "Move widget",
resizeHandle: "Resize widget",
menuLabel: "Widget options",
provenanceChip: "AI",
provenanceTooltip: "Built by {agent}",
errorTitle: "This widget couldn't load",
errorHumane: "This widget ran into a problem while rendering.",
errorDetailSummary: "Show details",
customPlaceholder: "Custom widget — coming soon.",
customLoading: "Loading custom widget…",
approval: {
title: "Custom widget awaiting approval",
byAgent: "Built by {agent}",
byUnknown: "Built by an unknown agent",
approve: "Approve",
reject: "Reject",
unavailable:
"This custom widget isn't available. Ask your agent to rebuild it, or remove it.",
},
markdownEmpty: "No content yet.",
unknownKind: "Unknown widget type: {kind}",
editTitleTitle: "Edit widget title",
editTitleLabel: "Widget title",
moveToTabTitle: "Move to tab",
moveToTabEmpty: "There are no other tabs to move this widget to.",
menu: {
editTitle: "Edit title",
moveToTab: "Move to tab…",
hide: "Hide",
remove: "Remove",
},
stat: {
empty: "—",
},
table: {
empty: "No rows to show.",
more: "+{count} more",
},
chart: {
empty: "没有可用于绘制图表的数据。",
invalid: "此图表包含无效的数据或选项。",
label: "图表",
summary: "{title}{count} 个数据点,范围从 {min} 到 {max}。",
},
sessions: {
empty: "No sessions yet.",
},
agentStatus: {
empty: "尚无代理或会话。",
busy: "忙碌中",
idle: "空闲",
progress: "已完成 {percent}%",
},
customWidgetApprovals: {
empty: "没有等待审批的自定义小组件。",
kind: "自定义小组件",
requestedBy: "由 {agent} 请求",
approve: "批准",
reject: "拒绝",
permissionRequired: "需要审批权限",
},
usage: {
cost: "Cost",
tokens: "Tokens",
},
cron: {
empty: "No scheduled jobs.",
next: "Next {time}",
noNext: "Not scheduled",
},
instances: {
empty: "No connected instances.",
idle: "Idle for {duration}",
},
activity: {
empty: "No recent activity.",
},
embed: {
missing: "This embed has no URL yet.",
blockedExternal: "External embeds are disabled by your gateway policy.",
blockedScheme: "This embed URL uses an unsupported scheme.",
},
preview: {
missing: "此预览尚无 URL。",
blockedExternal: "Gateway 策略已禁用外部预览。",
blockedScheme: "此预览 URL 使用了不受支持的协议。",
toolbar: "预览控件",
reload: "重新加载预览",
viewport: {
label: "预览视口",
desktop: "桌面设备",
tablet: "平板设备",
mobile: "移动设备",
},
},
cellLabel: "仪表板小组件:{title}。使用方向键导航。按住 Alt 并按方向键可移动它。",
moveHandle: "移动 {title}",
resizeHandle: "调整 {title} 的大小",
menuLabel: "小组件选项",
moveToTab: "移动到标签页",
noOtherTabs: "没有其他标签页",
resize: "调整大小",
remove: "移除",
needsApproval: "需要批准",
needsApprovalDetail: "此小组件请求了额外的访问权限。",
allow: "允许",
reject: "拒绝",
rejected: "访问被拒绝",
rejectedDetail: "此小组件在被移除或替换之前将保持非活动状态。",
appLoading: "正在恢复应用…",
appStaleTitle: "此固定应用已过期",
appStaleDetail: "其服务器、资源或来源记录已不再可用。",
retry: "重试",
frameResolverMissing: "小组件内容不可用。",
frameAuthorizationFailed: "多次刷新尝试后小组件授权仍失败。",
errorTitle: "此小组件无法加载",
errorDetail: "问题仅限于此卡片。",
actionErrorTitle: "小组件更改失败",
actionErrorDetail: "仪表板保留了先前的小组件状态。",
errorShow: "显示详情",
kindMcp: "MCP",
kindHtml: "HTML",
},
},
workboard: {
@@ -2765,7 +2884,6 @@ export const zh_CN: TranslationMap = {
cronFailed: "{count} 个 cron 任务失败",
cronOverdue: "{count} 个 cron 任务逾期",
modelAuthExpired: "模型身份验证已过期:{providers}",
modelAuthExpiring: "模型身份验证即将过期:{providers}",
pendingApproval: "{count} 项待审批",
pendingApprovals: "{count} 项待审批",
},
@@ -2824,6 +2942,7 @@ export const zh_CN: TranslationMap = {
skills: "Skills",
},
items: {
apps: "应用",
sessions: "会话",
scheduled: "计划任务",
skills: "Skills",
@@ -3460,6 +3579,7 @@ export const zh_CN: TranslationMap = {
},
chat: {
disconnected: "已断开与网关的连接。",
waitingForApproval: "等待批准…",
archivedSessionDisabled: "恢复此会话以发送消息。",
loadOlder: "加载更早内容",
sessionHeader: {
@@ -3474,6 +3594,34 @@ export const zh_CN: TranslationMap = {
copyPath: "复制路径",
copyBranch: "复制分支名称",
copied: "已复制",
branches: "会话分支",
branchSwitchUnavailable: "代理正在工作时无法切换分支。",
branchSwitchRequiresAdmin: "切换分支需要操作员管理员权限。",
untitledBranch: "未命名分支",
oneMessage: "{count} 条消息",
messages: "{count} 条消息",
activeBranch: "当前分支",
},
board: {
faceLabel: "会话视图",
chatFace: "聊天",
dashboardFace: "仪表板",
dockMenu: "聊天停靠:{dock}",
dockLeft: "聊天停靠到左侧",
dockRight: "聊天停靠到右侧",
dockBottom: "聊天停靠到底部",
dockHidden: "隐藏聊天",
resizeDock: "调整聊天停靠大小",
reopenChat: "显示聊天",
defaultTab: "主要",
mockPlaceholder: "看板视图接缝 · {tabs} 个标签页 · {widgets} 个小组件",
mockOverview: "概览",
mockResearch: "研究",
mockSessionStatus: "会话状态",
mockRecentFindings: "最新发现",
mockSourceMap: "来源映射",
resetTitle: "重置对话?",
resetDescription: "对话上下文将重置。您的仪表板将保留。",
},
catalog: {
remoteViewOnly: "此会话位于已配对节点上,仅供查看。",
@@ -3610,7 +3758,9 @@ export const zh_CN: TranslationMap = {
updateMacAndGateway: "更新 Mac App 和 Gateway",
updateGateway: "更新 Gateway",
allSessions: "所有会话",
chats: "聊天",
threads: "会话",
groups: "群组",
coding: "编码",
groupCatalogSessionsByProject: "按项目分组",
openSessionMenu: "Open session menu",
sortBy: "排序方式",
@@ -3619,7 +3769,7 @@ export const zh_CN: TranslationMap = {
sortUpdated: "最近更新",
sessionMenu: "Actions for {session}",
sessionMenuMany: "{count} 个会话的操作",
workSessions: "工作",
toolActivity: "正在使用 {tool}",
},
welcome: {
hintBeforeShortcut: "在下方输入消息 · 输入",
@@ -3664,11 +3814,40 @@ export const zh_CN: TranslationMap = {
title: "Codex 需要输入",
other: "输入其他答案",
submit: "提交答案",
next: "下一个",
back: "后退",
skip: "跳过",
skipping: "正在跳过…",
skipped: "已跳过",
collapse: "折叠问题",
expand: "展开问题",
eyebrow: "问题",
cardLabel: "来自助手的问题",
summaryLabel: "问题结果",
timeRemaining: "剩余时间",
ownAnswer: "您自己的答案……",
ownAnswerFor: "您对 {header} 的答案",
submitting: "正在提交……",
submitFailed: "无法提交:{error}",
answered: "已回复",
answeredElsewhere: "已在别处回答",
unavailable: "不可用",
expired: "已过期",
cancelled: "已取消",
},
messages: {
activity: "活动",
deleteMessage: "删除消息",
forkFromHere: "从此处分叉",
hide: "隐藏",
hideConfirm: "在此浏览器中隐藏此消息?代理仍可看到它。",
hideMessage: "隐藏消息",
hideTooltip: "仅在此浏览器中隐藏",
openInCanvas: "在画布中打开",
rewind: "回退",
rewindConfirm: "回退到此消息之前?",
rewindToHere: "回退到此处",
rewindUnavailable: "代理工作时无法回退",
forkUnavailable: "代理工作时无法分叉",
unknownDate: "未知日期",
voiceNote: "语音消息",
},
@@ -3676,6 +3855,9 @@ export const zh_CN: TranslationMap = {
default: "默认",
reasoning: "推理",
speed: "速度",
sessionOverride: "线程覆盖",
usingDefault: "使用设置中的默认值",
resetToDefault: "重置为默认值({model}",
},
sideChat: {
title: "侧边聊天",
@@ -3752,8 +3934,13 @@ export const zh_CN: TranslationMap = {
limitHours: "{hours} 小时限制",
},
takePhoto: "拍照",
cameraAccessFailed: "无法访问摄像头。",
cameraBusy: "摄像头正忙或浏览器无法使用。",
cameraFallback: "摄像头 {number}",
cameraInput: "摄像头",
cameraListUnsupported: "此浏览器无法列出摄像头。",
cameraNoneFound: "未找到摄像头。",
cameraPageInactive: "此页面处于非活动状态时无法使用摄像头。",
cameraPermissionBlocked: "摄像头访问被阻止。请在浏览器网站设置中允许访问摄像头和麦克风。",
cameraPreview: "摄像头预览",
dismissVoiceInputError: "关闭语音输入错误",
@@ -3761,18 +3948,36 @@ export const zh_CN: TranslationMap = {
microphoneBusy: "麦克风输入正忙或浏览器无法使用。",
microphoneFallback: "麦克风 {number}",
microphoneInput: "麦克风输入",
microphoneAppliesNextSession: "更改将在你开始下一次 Talk 会话时生效。",
microphoneListUnsupported: "此浏览器无法列出麦克风输入。",
noCameras: "未找到其他摄像头",
noMicrophones: "未找到其他麦克风",
microphoneNoneFound: "未找到麦克风输入。",
microphonePageInactive: "此页面处于非活动状态时,麦克风输入不可用。",
microphonePermissionBlocked: "麦克风访问被阻止。请在浏览器的网站设置中允许访问以列出输入。",
holdToRecordSetting: "按住麦克风按钮进行听写",
holdToRecordSettingDescription: "按住输入框的麦克风按钮,说话后松开即可插入文本而不发送。",
dictationAudioUnsupported: "Gateway 返回了不受支持的听写音频格式。",
dictationBrowserAudioUnsupported: "此浏览器无法以 8 kHz 采集听写音频。",
dictationConnecting: "正在开始听写…",
dictationDisconnected: "听写已停止,因为 Gateway 已断开连接。",
dictationFailed: "听写失败。",
dictationFinalizing: "正在完成听写…",
dictationFinalizationTimedOut: "听写在最后一段临时转录完成前已停止。",
dictationProviderUnavailable: "未配置用于听写的转录提供程序。",
dictationRecording: "正在录制 {elapsed}",
dictationReleaseToInsert: "松开以插入听写内容",
realtimeTalkRequiresMicrophone: "实时语音输入需要浏览器麦克风访问权限。",
selectedMicrophoneUnavailable: "所选麦克风不可用。请选择其他输入或系统默认。",
selectedCameraUnavailable: "所选摄像头不可用。请选择其他摄像头或系统默认设置。",
startVoiceInput: "开始语音输入",
startVideoTalk: "开始视频通话",
stillListening: "仍在聆听",
stopVoiceInput: "停止语音输入",
systemDefaultMicrophone: "系统默认",
systemDefaultCamera: "系统默认",
switchCamera: "切换摄像头",
turnCameraOff: "关闭摄像头",
turnCameraOn: "打开摄像头",
voiceTranscript: "语音转录",
},
selectors: {
@@ -3798,6 +4003,14 @@ export const zh_CN: TranslationMap = {
rawDetails: "原始详细信息",
openFile: "打开文件",
openDetails: "在侧边栏中打开工具详情",
widgetActions: "小组件操作",
copyToClipboard: "复制到剪贴板",
downloadFile: "下载文件",
widgetExportRerender: "此小组件需要重新渲染才能导出为图片。",
widgetExportFailed: "小组件导出失败。请重试。",
pinToDashboard: "固定到仪表板",
pinToDashboardPending: "正在固定…",
pinnedToDashboard: "已置顶",
fileChanges: "文件更改",
attemptedChanges: "尝试的更改",
failed: "失败",
@@ -3893,6 +4106,18 @@ export const zh_CN: TranslationMap = {
statusRenamed: "已重命名",
statusModified: "已修改",
},
sessionDiscussion: {
title: "讨论",
show: "显示讨论",
disconnected: "Gateway 已断开连接。",
loading: "正在加载讨论…",
opening: "正在打开讨论…",
requiresWriteAccess: "打开此讨论需要操作员写入权限。",
opened: "会话讨论",
openExternal: "在新标签页中打开讨论",
frameTitle: "会话讨论",
unavailable: "此讨论无法嵌入。",
},
workspaceFiles: {
label: "会话工作区",
expand: "展开会话工作区",
@@ -4124,9 +4349,11 @@ export const zh_CN: TranslationMap = {
expression: "表达式",
expressionPlaceholder: "0 7 * * *",
everyAmountPlaceholder: "30",
summaryEverySecondOne: "每秒运行",
summaryEveryMinuteOne: "每分钟运行一次",
summaryEveryHourOne: "每小时运行一次",
summaryEveryDayOne: "每天运行一次",
summaryEverySeconds: "每 {amount} 秒运行",
summaryEveryMinutes: "每 {amount} 分钟运行一次",
summaryEveryHours: "每 {amount} 小时运行一次",
summaryEveryDays: "每 {amount} 天运行一次",
+418 -190
View File
@@ -20,6 +20,8 @@ export const zh_TW: TranslationMap = {
staleData: "正在顯示舊資料。",
reload: "重新載入",
reset: "重設",
restore: "還原",
undo: "復原",
probe: "探測",
call: "呼叫",
confirm: "確認",
@@ -87,6 +89,10 @@ export const zh_TW: TranslationMap = {
logout: "登出",
skipToMainContent: "跳至主要內容",
},
optionCard: {
recommended: "推薦",
skip: "暫時略過",
},
nativeLinkMenu: {
label: "連結動作",
openInline: "在側邊欄開啟",
@@ -214,6 +220,9 @@ export const zh_TW: TranslationMap = {
whatsapp: {
title: "WhatsApp",
subtitle: "連結 WhatsApp Web 並監控連線健康狀態。",
loggedOut: "已登出。",
logoutNotCleared:
"沒有清除已儲存的 WhatsApp 工作階段。它可能已不存在,或其驗證目錄需要手動清理。",
},
gatewayUrlConfirmation: {
title: "變更 Gateway URL",
@@ -267,6 +276,7 @@ export const zh_TW: TranslationMap = {
genericSubtitle: "載入此面板時發生錯誤。",
staleTitle: "有新版本可用",
staleSubtitle: "OpenClaw 已在背景更新。請重新載入以取得最新面板。",
reloading: "重新載入中…",
retry: "重試",
},
nodes: {
@@ -275,6 +285,8 @@ export const zh_TW: TranslationMap = {
adminRequired: "需要系統管理員存取權才能建立設定代碼。",
title: "OpenClaw 行動版",
subtitle: "在行動 App 中掃描此 QR code,以連接新手機。",
noApp: "還沒有應用程式嗎?",
getApps: "取得應用程式",
generating: "正在建立安全的設定代碼…",
accessTitle: "行動裝置存取權限",
fullAccess: "完整存取權限(建議)",
@@ -459,11 +471,15 @@ export const zh_TW: TranslationMap = {
agentChip: {
menuLabel: "代理程式選單",
agents: "代理程式",
openChat: "與 {name} 聊天",
offlineOpenSettings: "離線 — 開啟設定",
switchAgent: "切換代理",
working: "處理中…",
ready: "可以開始聊天",
whatCanAgentDo: "{name} 能做什麼?",
help: "說明",
getHelp: "取得協助",
getApps: "取得應用程式",
discord: "Discord 社群",
viewChangelog: "查看變更記錄",
agentSettings: "Agent 設定",
@@ -484,6 +500,7 @@ export const zh_TW: TranslationMap = {
cloudWorker: "雲端 · {profile}",
cloudWorkerProvider: "雲端工作器供應商:{provider}",
cloudRequiresWorktree: "雲端工作器需要受管理的工作樹",
cloudRequiresOpenClawRuntime: "雲端工作程序需要 OpenClaw 執行階段;目前選取的是 {runtime}。",
cloudSecureContextRequired: "雲端工作器需要安全的瀏覽器環境,以便復原機制保護您的工作。",
cloudStartFailed: "工作階段已在本機建立,但雲端啟動失敗:{error}",
cloudSyncsFolder: "將 {folder} 同步至雲端工作節點",
@@ -528,7 +545,12 @@ export const zh_TW: TranslationMap = {
sourceFilters: "工作階段來源篩選器",
global: "全域",
unknown: "未知",
archivedOnly: "僅已封存",
sessionState: "討論串狀態",
viewArchived: "檢視封存",
sessionArchived: "討論串已封存",
sessionsArchived: "已封存 {count} 個討論串",
deleteAllArchived: "刪除所有封存…",
deleteAllArchivedConfirm: "要刪除 {count} 個封存的討論串及其對話記錄嗎?",
activeTooltip: "在過去 {count} 分鐘內更新。",
limitTooltip: "要載入的工作階段上限。",
globalTooltip: "包含全域工作階段。",
@@ -573,6 +595,8 @@ export const zh_TW: TranslationMap = {
actions: "動作",
addToWorkboard: "新增至 Workboard",
openWorkboardCard: "開啟 Workboard 卡片",
dashboardAvailable: "儀表板可用",
approvalNeeded: "需要核准",
noSessions: "找不到工作階段。",
noSessionsMatchFilters: "沒有符合篩選條件的工作階段。",
pagination: "第 {start}-{end} 列,共 {total} 列",
@@ -612,10 +636,17 @@ export const zh_TW: TranslationMap = {
statusFailed: "失敗",
statusKilled: "已終止",
statusTimeout: "逾時",
waitingForAnswer: "等待您的回覆",
waitingForApproval: "等待核准",
runFailedReason: "執行失敗:{reason}",
runErrorTimedOut: "逾時",
runErrorUnknown: "未知錯誤",
attentionRequired: "工作階段需要處理",
model: "模型",
provider: "提供者",
runtime: "執行階段",
runDuration: "執行時間",
lastActive: "上次活動時間 {time}",
surface: "介面",
subject: "主旨",
room: "聊天室",
@@ -625,6 +656,7 @@ export const zh_TW: TranslationMap = {
showChildSessions: "顯示 {session} 的 {count} 個子工作階段",
hideChildSessions: "隱藏 {session} 的 {count} 個子工作階段",
childSessions: "子工作階段",
showMoreChildren: "顯示另外 {count} 個",
archived: "已封存",
pinned: "已釘選",
unread: "Unread",
@@ -636,6 +668,10 @@ export const zh_TW: TranslationMap = {
renameSessionMenu: "Rename…",
pinSession: "釘選工作階段",
unpinSession: "取消釘選工作階段",
changeIcon: "變更圖示",
customEmoji: "自訂表情符號",
invalidEmojiIcon: "請輸入剛好一個表情符號。",
removeIcon: "移除圖示",
markUnread: "Mark as unread",
markRead: "Mark as read",
markUnreadCount: "將 {count} 標示為未讀",
@@ -1067,40 +1103,9 @@ export const zh_TW: TranslationMap = {
},
channels: {
title: "頻道",
connectedCount: "已連線 {count} 個",
empty: "尚未設定任何頻道",
connect: "連線 →",
},
automation: {
title: "自動化",
scheduledTask: "{count} 個排程工作",
scheduledTasks: "{count} 個排程工作",
installedSkill: "已安裝 {count} 個 Skill",
installedSkills: "已安裝 {count} 個 Skills",
mcpServer: "{count} 個 MCP server",
mcpServers: "{count} 個 MCP servers",
manage: "管理 →",
browse: "瀏覽 →",
configure: "設定 →",
},
appearance: {
title: "外觀",
theme: "主題",
textSize: "文字大小",
importedTheme: "已匯入的主題",
import: "匯入",
themes: {
claw: "Claw",
knot: "Knot",
dash: "Dash",
},
textSizes: {
small: "S",
medium: "M",
large: "L",
xl: "XL",
xxl: "XXL",
},
lobsterVisits: "龍蝦造訪",
lobsterVisitsOn: "偶爾來訪",
lobsterVisitsOff: "從不來訪",
@@ -1113,7 +1118,6 @@ export const zh_TW: TranslationMap = {
},
security: {
title: "安全性",
configure: "設定 →",
gatewayAuth: "Gateway 驗證",
execPolicy: "執行原則",
deviceAuth: "裝置驗證",
@@ -1137,22 +1141,29 @@ export const zh_TW: TranslationMap = {
},
personal: {
title: "個人",
profileTitle: "設定檔",
user: "使用者",
you: "你",
assistant: "助理",
localIdentity: "您的本機聊天身分",
profileIdentity: "您的 gateway 設定檔",
assistantIdentity: "助理身分",
displayName: "顯示名稱",
displayNamePlaceholder: "您的姓名",
saveProfile: "儲存姓名",
saving: "儲存中…",
uploading: "處理中…",
profileHint: "JPEG、PNG 或 WebP。影像會置中裁切並調整為 512px。",
profileLoadFailed: "無法載入您的設定檔。",
profileSaveFailed: "無法儲存您的設定檔。",
avatarInvalid: "請選擇有效的 JPEG、PNG 或 WebP 影像。",
avatarTooLarge: "處理後的頭像仍然過大。",
avatarText: "頭像文字/表情符號",
avatarPlaceholder: "JD 或 🦞",
chooseImage: "選擇圖片",
replaceImage: "更換圖片",
clearAvatar: "清除頭像",
clearOverride: "清除覆寫",
browserOnly: "僅儲存於此瀏覽器中。",
overrideHint: "儲存 Control UI 覆寫設定。清除後可回復為已設定的頭像。",
uiOverride: "UI 覆寫",
configuredAvatar: "已設定的頭像",
overrideFromSettings: "來自設定的覆寫",
fallbackAvatar: "備用頭像",
fallbackLogo: "備用標誌",
avatarIssues: {
@@ -1166,26 +1177,16 @@ export const zh_TW: TranslationMap = {
},
},
configPage: {
settingsView: "設定檢視",
simple: "簡易",
advanced: "進階",
content: "設定內容",
themeImported: "已匯入 {name}。",
themeRemoved: "已移除自訂佈景主題。",
channels: {
telegram: "Telegram",
discord: "Discord",
slack: "Slack",
whatsapp: "WhatsApp",
signal: "Signal",
imessage: "iMessage",
},
},
configView: {
categories: {
core: "核心",
ai: "AI 與代理",
communication: "通訊",
security: "隱私與安全",
automation: "自動化",
infrastructure: "基礎架構",
appearance: "外觀",
@@ -1217,6 +1218,7 @@ export const zh_TW: TranslationMap = {
bindings: "綁定",
cron: "Cron",
approvals: "核准",
security: "安全性原則",
plugins: "外掛程式",
gateway: "Gateway",
web: "網頁",
@@ -1252,11 +1254,15 @@ export const zh_TW: TranslationMap = {
xl: "XL",
xxl: "XXL",
},
syncedHint: "透過 gateway 在您的裝置間同步。",
notifications: {
title: "推播通知",
nativeTitle: "通知",
hint: "從您的 Gateway 接收瀏覽器推播通知。",
nativeHint: "通知由這部 Mac 上的 OpenClaw 應用程式以原生方式顯示。",
unavailableHint: "此瀏覽器不支援。",
unavailable: "無法使用",
checking: "正在檢查...",
granted: "已允許",
denied: "已拒絕",
notRequested: "尚未請求",
@@ -1274,7 +1280,9 @@ export const zh_TW: TranslationMap = {
sendTest: "傳送測試",
subscribing: "訂閱中...",
enable: "啟用通知",
openSystemSettings: "開啟系統設定",
blockedHint: "通知已被封鎖。請更新瀏覽器網站權限以允許通知。",
nativeBlockedHint: "OpenClaw 的通知在 macOS 中已停用。請在「系統設定」>「通知」中允許。",
},
appearance: {
theme: "主題",
@@ -1301,6 +1309,12 @@ export const zh_TW: TranslationMap = {
title: "聊天",
hint: "瀏覽器本機的聊天偏好設定。",
},
sidebarPrefs: {
title: "側邊欄",
hint: "選擇工作階段執行時要顯示的內容。",
liveActivity: "在側邊欄顯示即時代理活動",
liveActivityHint: "在執行中的工作階段下方顯示最新的助理或工具活動。",
},
connection: {
title: "連線",
gateway: "Gateway",
@@ -1354,6 +1368,10 @@ export const zh_TW: TranslationMap = {
execApprovalNeeded: "Exec approval needed",
pluginApprovalNeeded: "Plugin approval needed",
pending: "{count} pending",
otherPending: "其他待處理的要求",
reviewRequest: "檢閱來自 {agent} 的核准:{command}",
agentPendingOne: "{count} 項待核准",
agentPending: "{count} 項待核准",
allowOnce: "Allow once",
alwaysAllow: "Always allow",
allowAlwaysUnavailable: "「一律允許」無法用於此指令。",
@@ -1554,8 +1572,10 @@ export const zh_TW: TranslationMap = {
chat: "聊天",
settings: "設置",
settingsGeneral: "一般",
askOpenClaw: "詢問 OpenClaw",
settingsGroupConnections: "連線",
settingsGroupAgents: "代理程式與工具",
settingsGroupSecurity: "隱私權與安全性",
settingsGroupSystem: "系統",
settingsSearchLabel: "搜尋設定",
settingsSearchPlaceholder: "搜尋設定…",
@@ -1567,6 +1587,8 @@ export const zh_TW: TranslationMap = {
collapse: "折疊側邊欄",
resize: "調整側邊欄大小",
more: "更多",
home: "首頁",
pages: "頁面",
customize: "自訂側邊欄",
customizeReset: "重設為預設值",
},
@@ -1655,6 +1677,7 @@ export const zh_TW: TranslationMap = {
tabs: {
agents: "代理",
activity: "活動",
apps: "應用程式",
approvals: "核准",
workboard: "工作板",
worktrees: "Worktrees",
@@ -1669,6 +1692,7 @@ export const zh_TW: TranslationMap = {
skillWorkshop: "Skill Workshop",
nodes: "節點",
chat: "聊天",
custodian: "OpenClaw",
config: "配置",
profile: "個人檔案",
communications: "通訊",
@@ -1676,11 +1700,15 @@ export const zh_TW: TranslationMap = {
automation: "自動化",
mcp: "MCP",
infrastructure: "基礎設施",
labs: "Labs",
about: "關於",
aiAgents: "AI 與代理",
modelSetup: "模型設定",
modelProviders: "Model Providers",
memoryImport: "匯入記憶",
notifications: "通知",
security: "隱私權與安全性",
advanced: "進階",
debug: "調試",
logs: "日誌",
plugin: "外掛程式",
@@ -1688,6 +1716,7 @@ export const zh_TW: TranslationMap = {
subtitles: {
agents: "工作區、工具、身份。",
activity: "瀏覽器本機工具活動摘要。",
apps: "適用於手機、手錶、桌面和瀏覽器的配套應用程式。",
approvals: "近期的執行、外掛程式與系統代理程式核准記錄。",
workboard: "代理工作佇列與工作階段交接。",
worktrees: "隔離的代理程式任務簽出與復原快照。",
@@ -1702,6 +1731,7 @@ export const zh_TW: TranslationMap = {
skillWorkshop: "在提案成為上線技能之前,先進行審閱、調整並套用。",
nodes: "配對設備和命令。",
chat: "網關聊天,快速干預。",
custodian: "系統設定與維護。",
config: "編輯 openclaw.json。",
profile: "你的代理程式統計、連續紀錄,以及在礁區中的生活。",
communications: "頻道、消息和音頻設置。",
@@ -1709,11 +1739,15 @@ export const zh_TW: TranslationMap = {
automation: "命令、鉤子、定時任務和插件設置。",
mcp: "MCP 伺服器、驗證、工具與診斷。",
infrastructure: "網關、Web、瀏覽器和媒體設置。",
labs: "實驗性的代理程式與工具功能。",
about: "Control UI 與已連線的 Gateway 建置身分識別。",
aiAgents: "代理、模型、技能、工具、記憶和會話設置。",
modelSetup: "連接已驗證的 AI 模型",
modelProviders: "Configured providers with plan, quota, and cost.",
memoryImport: "將 Codex 和 Claude Code 的記憶匯入代理程式工作區。",
notifications: "來自您 Gateway 的瀏覽器推播通知。",
security: "Gateway 驗證、執行原則、工具設定檔和核准。",
advanced: "所有剩餘的設定區段,加上原始檔案編輯器。",
debug: "快照、事件、RPC。",
logs: "實時網關日誌。",
plugin: "外掛程式提供的面板。",
@@ -1861,8 +1895,78 @@ export const zh_TW: TranslationMap = {
doneBody: "已移轉 {migrated} 項,已略過 {skipped} 項。您可以繼續設定 OpenClaw。",
},
},
custodian: {
title: "OpenClaw",
subtitle: "您的系統設定指南",
subtitleCaretaker: "系統設定與維護。",
exitSetup: "退出設定",
newAgent: "新增代理程式",
hatchDraft: "醒醒吧,我的朋友!",
placeholder: "傳訊息給 OpenClaw…",
sensitivePlaceholder: "輸入敏感值…",
sensitiveReply: "已傳送敏感回覆",
send: "傳送",
thinking: "OpenClaw 思考中",
earlier: "較早",
requestFailed: "OpenClaw 無法回覆。請再試一次。",
connectionChanged: "Gateway 連線已變更。請重試以繼續此設定。",
sessionRestarted: "{error} OpenClaw 已開啟全新工作階段;先前的訊息仍會保留作為背景資訊。",
unsupportedGateway: "更新 Gateway 以繼續使用 OpenClaw 進行設定。",
history: {
button: "歷史記錄",
title: "最近的變更",
description: "此系統的變更內容,最新的在前。",
loading: "正在載入最近的變更…",
empty: "尚無記錄的變更。",
requestFailed: "OpenClaw 無法載入變更歷史記錄。",
loadMore: "載入更多",
loadingMore: "正在載入更多…",
changedPaths: "已變更的路徑 ({count})",
invalidEdit: "此手動編輯未通過設定驗證。",
opaqueChange: "格式或註解已變更,但可見的設定路徑無變化。",
sources: {
systemAgent: "system-agent",
doctor: "doctor",
settings: "settings",
cli: "CLI",
pluginInstall: "plugin install",
manualEdit: "manual edit",
unknown: "unknown",
},
},
nudge: {
configReload: "設定重新載入已停止 — 問我發生了什麼事",
channelAuth: "{channel} 驗證品質下降 — 問我發生了什麼事",
channelDisconnected: "{channel} 剛剛已中斷連線 — 問我發生了什麼事",
channelDegraded: "{channel} 已降級 — 詢問我發生了什麼事",
channelFallback: "頻道",
dismiss: "關閉此更新",
},
},
mcpServers: {
add: "新增伺服器",
adding: "新增中…",
nameLabel: "名稱",
targetLabel: "URL 或指令",
nameInvalid: "伺服器名稱可使用字母、數字、點、破折號或底線。",
targetInvalid: "請輸入 http(s) URL 或指令列。",
nameTaken: "名為「{name}」的 MCP 伺服器已存在。",
missing: "在設定中找不到 MCP 伺服器「{name}」。",
missingTransport: "缺少傳輸方式",
addedSuccess: "已新增 MCP 伺服器 {name}。",
enabledSuccess: "已啟用 MCP 伺服器 {name}。",
disabledSuccess: "已停用 MCP 伺服器 {name}。",
removedSuccess: "已移除 MCP 伺服器 {name}。",
configUnavailable: "設定無法使用;請重新整理後再試。",
connectRequired: "請連線至 gateway 以變更 MCP 伺服器。",
adminRequired: "變更 MCP 伺服器需要 operator.admin 存取權限。",
enable: "啟用",
disable: "停用",
removeNamed: "移除 {name}",
working: "處理中…",
},
mcpPage: {
manageServersLink: "在插件頁面管理伺服器。",
connectorsLink: "在 Plugins 頁面探索一鍵連接器。",
servers: "伺服器",
oauth: "OAuth",
filtered: "已篩選",
@@ -1874,10 +1978,12 @@ export const zh_TW: TranslationMap = {
"執行階段變更會在儲存並發布後套用;使用中的代理程式會在下次使用時重建 MCP 執行環境。",
toolFilter: "工具篩選器",
parallel: "並行",
missingTransport: "缺少傳輸方式",
tlsVerifyOff: "TLS 驗證已關閉",
mtls: "mTLS",
},
sessionsPage: {
hubTablistLabel: "討論串區段",
},
pluginsPage: {
searchLabel: "搜尋外掛程式",
searchPlaceholder: "搜尋外掛程式",
@@ -1958,18 +2064,7 @@ export const zh_TW: TranslationMap = {
mcpSettingsLink: "MCP 設定",
mcpHint:
"連接 Model Context Protocol 伺服器,為你的代理程式提供額外工具。變更會套用到新的代理程式工作階段。",
mcpAdd: "新增伺服器",
mcpAdding: "正在新增…",
mcpEmpty: "尚未設定 MCP 伺服器。在此新增一個,或從 Discover 選擇連接器。",
mcpNameLabel: "名稱",
mcpTargetLabel: "URL 或命令",
mcpNameInvalid: "伺服器名稱可使用字母、數字、句點、破折號或底線。",
mcpTargetInvalid: "請輸入 http(s) URL 或命令列。",
mcpNameTaken: "名為「{name}」的 MCP 伺服器已存在。",
mcpMissing: "在設定中找不到 MCP 伺服器「{name}」。",
mcpAddedSuccess: "已新增 MCP 伺服器 {name}。",
mcpRemovedSuccess: "已移除 MCP 伺服器 {name}。",
mcpConfigUnavailable: "設定無法使用;請重新整理後再試一次。",
remove: "移除",
removing: "正在移除…",
removeNamed: "移除 {name}",
@@ -2018,6 +2113,25 @@ export const zh_TW: TranslationMap = {
disabledSuccess: "已停用 {name}。",
disabledRestart: "已停用 {name}。需要重新啟動 Gateway 才能套用變更。",
},
labsPage: {
intro: "Labs 包含實驗性功能,這些功能可能在不同版本之間變更、失效或消失。",
sectionTitle: "實驗性功能",
sectionDescription: "變更會立即儲存,並套用至未來的代理程式執行。",
documentation: "文件",
restartRequired: "需要重新啟動 Gateway。",
saveErrorTitle: "無法更新功能",
saveFailed: "無法儲存功能設定。",
codeMode: {
title: "Code Mode",
description: "讓代理程式在精簡、沙箱化的 JavaScript 工作流程中組合工具。",
},
swarm: {
title: "Swarm",
description: "讓 Code Mode 並行協調多組子代理程式。",
empty: "沒有作用中的 swarm。",
defaultPhase: "未分階段",
},
},
aboutPage: {
productName: "OpenClaw",
tagline: "在您自己的裝置上運行的個人 AI 助理。",
@@ -2027,6 +2141,7 @@ export const zh_TW: TranslationMap = {
linkDocs: "文件",
linkGitHub: "GitHub",
linkDiscord: "Discord",
linkX: "X (Twitter)",
linkChangelog: "更新日誌",
license: "© 2026 OpenClaw Foundation — MIT 授權條款。",
artifactTitle: "Control UI",
@@ -2044,6 +2159,72 @@ export const zh_TW: TranslationMap = {
gatewayVersion: "已連線的 Gateway 版本",
gatewayVersionHint: "由作用中的 Gateway 連線回報;與此 Control UI 建置分開。",
},
appsPage: {
heroTitle: "隨處帶著 OpenClaw",
heroTagline:
"適用於手機、手錶、桌面與瀏覽器的隨附應用程式 — 還有可擴充代理程式功能的外掛程式。",
sectionMobile: "在你的手機上",
havePhone: "已經安裝了應用程式?",
pairDevice: "配對你的裝置",
sectionWatch: "在你的手腕上",
sectionDesktop: "在您的桌面上",
sectionBrowser: "在您的瀏覽器中",
sectionCommunity: "社群",
badgeBundledIos: "隨 iOS 應用程式一同提供",
badgeBundledAndroid: "隨 Android 應用程式一同提供",
ctaAppStore: "App Store",
ctaPlayStore: "Google Play",
ctaDownload: "下載",
ctaDocs: "文件",
ctaSetupGuide: "設定指南",
ctaOpenPlugins: "開啟外掛程式",
ctaBrowseClawHub: "瀏覽 ClawHub",
linkDiscord: "Discord 社群",
linkDocs: "文件",
cards: {
ios: {
title: "iPhone",
desc: "在 iOS 上聊天、通話、批准操作並分享至 OpenClaw。",
},
android: {
title: "Android",
desc: "將您的 Android 手機作為完整的 OpenClaw 節點 — 聊天、相機與 Canvas。",
},
appleWatch: {
title: "Apple Watch",
desc: "在您的手腕上一目了然地查看聊天並快速回覆。",
},
wearOs: {
title: "Wear OS",
desc: "Android 隨附應用程式將 OpenClaw 延伸到你的手錶。",
},
macos: {
title: "macOS",
desc: "Gateway 的選單列隨附應用程式——通知、核准、快速聊天。",
},
windows: {
title: "Windows",
desc: "Windows 隨附應用程式將你的電腦連線為 OpenClaw 節點。",
},
linux: {
title: "Linux",
desc: "原生桌面應用程式——.deb 與 AppImage 版本。",
},
chrome: {
title: "Chrome 擴充功能",
desc: "讓 OpenClaw 操作你現有的 Chrome——分頁、頁面與表單。",
},
plugins: {
title: "外掛程式與 ClawHub",
desc: "透過社群提供的頻道、工具與 Skills 擴充 OpenClaw。",
},
},
},
presence: {
rosterLabel: "顯示誰在線上",
rosterTitle: "線上",
you: "你",
},
profilePage: {
offline: "連線至 Gateway 以認識你的代理程式。",
loading: "正在潛入查看統計資料…",
@@ -2075,6 +2256,26 @@ export const zh_TW: TranslationMap = {
toolsEmpty: "尚未記錄任何工具執行。",
toolRun: "{count} 次執行",
toolRuns: "{count} 次執行",
identity: {
title: "身分",
description: "你在此 gateway 上的個人檔案。",
loading: "正在載入你的身分…",
profileUnavailable: "無法載入你的身分檔案。",
avatar: "頭像",
avatarDescription: "PNG、JPEG 或 WebP。圖片會調整為 256 × 256 或更小。",
chooseAvatar: "選擇圖片",
processingAvatar: "處理中…",
displayName: "顯示名稱",
displayNameDescription: "顯示給使用此 gateway 的其他人。",
linkedEmails: "已連結的電子郵件",
linkedEmailsDescription: "連結至此個人檔案的電子郵件地址。",
openSettings: "開啟 {name} 的身分設定",
avatarErrors: {
invalid: "無法處理該圖片。",
sourceTooLarge: "請選擇 10 MB 或更小的圖片。",
tooLarge: "處理後的頭像大於 512 KB。",
},
},
},
tasksPage: {
active: "進行中",
@@ -2375,131 +2576,50 @@ export const zh_TW: TranslationMap = {
submit: "Ask",
},
},
workspaces: {
tabs: {
label: "Workspaces",
hidden: "Hidden ({count})",
},
error: {
title: "Couldn't load your workspaces",
subtitle: "Something went wrong loading your workspaces. Try reloading.",
detailSummary: "Show details",
},
header: {
subtitle: "Arrange widgets and tabs for this workspace.",
},
onboarding: {
title: "Build your first workspace tab",
primary: "Ask your agent to build a tab.",
secondary: "Or create one from the command line:",
},
empty: {
onboardingTitle: "No workspaces yet",
onboardingSubtitle:
"Ask your agent to build a workspace, or create one from the command line.",
onboardingCommand: "openclaw workspaces tabs create --title Main",
tabTitle: "This workspace is empty",
tabSubtitle: "Ask your agent to add a widget, or add one yourself.",
noVisibleTabs: "Every workspace tab is hidden. Restore one from the hidden menu.",
board: {
label: "討論串儀表板",
tabsLabel: "儀表板分頁",
moreTabs: "更多儀表板分頁",
gridLabel: "儀表板小工具",
emptyTitle: "空白的看板,準備開始工作",
emptyHint: "你的代理程式可以在此釘選小工具 — 試著要求一張狀態卡片。",
actionFailed: "無法儲存儀表板變更。",
actionInProgress: "另一項儀表板變更仍在儲存中。",
announcement: {
moved: "已移動 {title}。",
resized: "已調整 {title} 的大小。",
removed: "已移除 {title}。",
granted: "已允許小工具存取。",
rejected: "已拒絕小工具存取。",
},
widget: {
collapse: "Collapse widget",
expand: "Expand widget",
moveHandle: "Move widget",
resizeHandle: "Resize widget",
menuLabel: "Widget options",
provenanceChip: "AI",
provenanceTooltip: "Built by {agent}",
errorTitle: "This widget couldn't load",
errorHumane: "This widget ran into a problem while rendering.",
errorDetailSummary: "Show details",
customPlaceholder: "Custom widget — coming soon.",
customLoading: "Loading custom widget…",
approval: {
title: "Custom widget awaiting approval",
byAgent: "Built by {agent}",
byUnknown: "Built by an unknown agent",
approve: "Approve",
reject: "Reject",
unavailable:
"This custom widget isn't available. Ask your agent to rebuild it, or remove it.",
},
markdownEmpty: "No content yet.",
unknownKind: "Unknown widget type: {kind}",
editTitleTitle: "Edit widget title",
editTitleLabel: "Widget title",
moveToTabTitle: "Move to tab",
moveToTabEmpty: "There are no other tabs to move this widget to.",
menu: {
editTitle: "Edit title",
moveToTab: "Move to tab…",
hide: "Hide",
remove: "Remove",
},
stat: {
empty: "—",
},
table: {
empty: "No rows to show.",
more: "+{count} more",
},
chart: {
empty: "沒有可供繪製圖表的資料。",
invalid: "此圖表包含無效的資料或選項。",
label: "圖表",
summary: "{title}{count} 個資料點,範圍從 {min} 到 {max}。",
},
sessions: {
empty: "No sessions yet.",
},
agentStatus: {
empty: "尚無代理或工作階段。",
busy: "忙碌中",
idle: "閒置",
progress: "已完成 {percent}%",
},
customWidgetApprovals: {
empty: "沒有等待核准的自訂小工具。",
kind: "自訂小工具",
requestedBy: "由 {agent} 要求",
approve: "核准",
reject: "拒絕",
permissionRequired: "需要核准權限",
},
usage: {
cost: "Cost",
tokens: "Tokens",
},
cron: {
empty: "No scheduled jobs.",
next: "Next {time}",
noNext: "Not scheduled",
},
instances: {
empty: "No connected instances.",
idle: "Idle for {duration}",
},
activity: {
empty: "No recent activity.",
},
embed: {
missing: "This embed has no URL yet.",
blockedExternal: "External embeds are disabled by your gateway policy.",
blockedScheme: "This embed URL uses an unsupported scheme.",
},
preview: {
missing: "此預覽尚無 URL。",
blockedExternal: "您的 Gateway 政策已停用外部預覽。",
blockedScheme: "此預覽 URL 使用不支援的通訊協定。",
toolbar: "預覽控制項",
reload: "重新載入預覽",
viewport: {
label: "預覽檢視區",
desktop: "桌面",
tablet: "平板電腦",
mobile: "行動裝置",
},
},
cellLabel: "儀表板小工具:{title}。使用方向鍵導覽。按住 Alt 並按方向鍵可移動它。",
moveHandle: "移動 {title}",
resizeHandle: "調整 {title} 大小",
menuLabel: "小工具選項",
moveToTab: "移至分頁",
noOtherTabs: "沒有其他分頁",
resize: "調整大小",
remove: "移除",
needsApproval: "需要核准",
needsApprovalDetail: "此小工具要求額外的存取權限。",
allow: "允許",
reject: "拒絕",
rejected: "已拒絕存取",
rejectedDetail: "此小工具在移除或替換之前將保持停用。",
appLoading: "正在還原應用程式…",
appStaleTitle: "此釘選的應用程式已過時",
appStaleDetail: "其伺服器、資源或原始記錄已不再可用。",
retry: "重試",
frameResolverMissing: "小工具內容無法使用。",
frameAuthorizationFailed: "多次重新整理後,小工具授權仍失敗。",
errorTitle: "無法載入此小工具",
errorDetail: "問題僅限於此卡片。",
actionErrorTitle: "小工具變更失敗",
actionErrorDetail: "儀表板保留了先前的小工具狀態。",
errorShow: "顯示詳細資訊",
kindMcp: "MCP",
kindHtml: "HTML",
},
},
workboard: {
@@ -2768,7 +2888,6 @@ export const zh_TW: TranslationMap = {
cronFailed: "{count} 個 cron 工作失敗",
cronOverdue: "{count} 個 cron 工作逾期",
modelAuthExpired: "模型驗證已過期:{providers}",
modelAuthExpiring: "模型驗證即將過期:{providers}",
pendingApproval: "{count} 項待核准",
pendingApprovals: "{count} 項待核准",
},
@@ -2827,6 +2946,7 @@ export const zh_TW: TranslationMap = {
skills: "Skills",
},
items: {
apps: "應用程式",
sessions: "工作階段",
scheduled: "排程",
skills: "Skills",
@@ -3465,6 +3585,7 @@ export const zh_TW: TranslationMap = {
},
chat: {
disconnected: "已斷開與網關的連接。",
waitingForApproval: "等待核准…",
archivedSessionDisabled: "還原此工作階段以傳送訊息。",
loadOlder: "載入較早內容",
sessionHeader: {
@@ -3479,6 +3600,34 @@ export const zh_TW: TranslationMap = {
copyPath: "複製路徑",
copyBranch: "複製分支名稱",
copied: "已複製",
branches: "討論串分支",
branchSwitchUnavailable: "代理程式運作期間無法切換分支。",
branchSwitchRequiresAdmin: "切換分支需要操作員管理員存取權限。",
untitledBranch: "未命名分支",
oneMessage: "{count} 則訊息",
messages: "{count} 則訊息",
activeBranch: "使用中分支",
},
board: {
faceLabel: "討論串面板",
chatFace: "聊天",
dashboardFace: "儀表板",
dockMenu: "聊天停靠:{dock}",
dockLeft: "停靠聊天於左側",
dockRight: "停靠聊天於右側",
dockBottom: "停靠聊天於底部",
dockHidden: "隱藏聊天",
resizeDock: "調整聊天停駐區大小",
reopenChat: "顯示聊天",
defaultTab: "主要",
mockPlaceholder: "看板檢視接縫 · {tabs} 個分頁 · {widgets} 個小工具",
mockOverview: "總覽",
mockResearch: "研究",
mockSessionStatus: "討論串狀態",
mockRecentFindings: "近期發現",
mockSourceMap: "來源地圖",
resetTitle: "重設對話?",
resetDescription: "對話情境將重設。您的儀表板會保留。",
},
catalog: {
remoteViewOnly: "此工作階段位於已配對節點上,僅供檢視。",
@@ -3616,7 +3765,9 @@ export const zh_TW: TranslationMap = {
updateMacAndGateway: "更新 Mac App + Gateway",
updateGateway: "更新 Gateway",
allSessions: "所有工作階段",
chats: "聊天",
threads: "討論串",
groups: "群組",
coding: "編碼",
groupCatalogSessionsByProject: "依專案分組",
openSessionMenu: "Open session menu",
sortBy: "排序依據",
@@ -3625,7 +3776,7 @@ export const zh_TW: TranslationMap = {
sortUpdated: "最近更新",
sessionMenu: "Actions for {session}",
sessionMenuMany: "{count} 個工作階段的動作",
workSessions: "工作",
toolActivity: "使用 {tool}",
},
welcome: {
hintBeforeShortcut: "Type a message below ·",
@@ -3670,11 +3821,40 @@ export const zh_TW: TranslationMap = {
title: "Codex 需要輸入內容",
other: "輸入其他答案",
submit: "提交答案",
next: "下一步",
back: "返回",
skip: "略過",
skipping: "略過中…",
skipped: "已略過",
collapse: "收合問題",
expand: "展開問題",
eyebrow: "問題",
cardLabel: "來自助理的問題",
summaryLabel: "問題結果",
timeRemaining: "剩餘時間",
ownAnswer: "您自己的答案…",
ownAnswerFor: "您對 {header} 的回答",
submitting: "正在提交…",
submitFailed: "無法提交:{error}",
answered: "已回覆",
answeredElsewhere: "已在其他地方回答",
unavailable: "無法使用",
expired: "已過期",
cancelled: "已取消",
},
messages: {
activity: "活動",
deleteMessage: "刪除訊息",
forkFromHere: "從此處分支",
hide: "隱藏",
hideConfirm: "在此瀏覽器中隱藏這則訊息嗎?代理程式仍會看到它。",
hideMessage: "隱藏訊息",
hideTooltip: "僅在此瀏覽器中隱藏",
openInCanvas: "在畫布中開啟",
rewind: "倒回",
rewindConfirm: "倒回到這則訊息之前嗎?",
rewindToHere: "倒回到此處",
rewindUnavailable: "代理程式運作時無法倒回",
forkUnavailable: "代理程式運作時無法分支",
unknownDate: "未知日期",
voiceNote: "語音留言",
},
@@ -3682,6 +3862,9 @@ export const zh_TW: TranslationMap = {
default: "預設",
reasoning: "推理",
speed: "速度",
sessionOverride: "討論串覆寫",
usingDefault: "使用「設定」中的預設值",
resetToDefault: "重設為預設值({model}",
},
sideChat: {
title: "側邊聊天",
@@ -3758,8 +3941,13 @@ export const zh_TW: TranslationMap = {
limitHours: "{hours} 小時限制",
},
takePhoto: "拍照",
cameraAccessFailed: "無法存取相機。",
cameraBusy: "相機忙碌中或瀏覽器無法使用。",
cameraFallback: "相機 {number}",
cameraInput: "相機",
cameraListUnsupported: "此瀏覽器無法列出相機。",
cameraNoneFound: "找不到相機。",
cameraPageInactive: "此頁面未啟用時無法使用相機。",
cameraPermissionBlocked: "相機存取已封鎖。請在瀏覽器網站設定中允許相機與麥克風存取。",
cameraPreview: "相機預覽",
dismissVoiceInputError: "關閉語音輸入錯誤",
@@ -3767,18 +3955,36 @@ export const zh_TW: TranslationMap = {
microphoneBusy: "麥克風輸入正忙碌或無法供瀏覽器使用。",
microphoneFallback: "麥克風 {number}",
microphoneInput: "麥克風輸入",
microphoneAppliesNextSession: "變更將在您開始下一次 Talk 工作階段時生效。",
microphoneListUnsupported: "此瀏覽器無法列出麥克風輸入。",
noCameras: "找不到其他相機",
noMicrophones: "找不到其他麥克風",
microphoneNoneFound: "找不到麥克風輸入。",
microphonePageInactive: "此頁面處於非使用中狀態時,麥克風輸入無法使用。",
microphonePermissionBlocked: "麥克風存取已遭封鎖。請在瀏覽器網站設定中允許,以列出輸入裝置。",
holdToRecordSetting: "按住麥克風按鈕以口述",
holdToRecordSettingDescription: "按住輸入區的麥克風按鈕,說話後放開即可插入文字而不傳送。",
dictationAudioUnsupported: "Gateway 傳回了不支援的口述音訊格式。",
dictationBrowserAudioUnsupported: "此瀏覽器無法以 8 kHz 擷取口述音訊。",
dictationConnecting: "正在啟動口述…",
dictationDisconnected: "口述已停止,因為 Gateway 已中斷連線。",
dictationFailed: "口述失敗。",
dictationFinalizing: "正在完成口述…",
dictationFinalizationTimedOut: "口述在最後的部分轉錄完成前已停止。",
dictationProviderUnavailable: "尚未為口述設定任何轉錄提供者。",
dictationRecording: "錄製中 {elapsed}",
dictationReleaseToInsert: "放開以插入口述內容",
realtimeTalkRequiresMicrophone: "即時語音輸入需要瀏覽器麥克風存取權限。",
selectedMicrophoneUnavailable: "所選的麥克風無法使用。請選擇其他輸入或系統預設值。",
selectedCameraUnavailable: "所選相機無法使用。請選擇其他相機或系統預設值。",
startVoiceInput: "開始語音輸入",
startVideoTalk: "開始視訊通話",
stillListening: "仍在聆聽",
stopVoiceInput: "停止語音輸入",
systemDefaultMicrophone: "系統預設",
systemDefaultCamera: "系統預設",
switchCamera: "切換相機",
turnCameraOff: "關閉相機",
turnCameraOn: "開啟相機",
voiceTranscript: "語音轉錄",
},
selectors: {
@@ -3804,6 +4010,14 @@ export const zh_TW: TranslationMap = {
rawDetails: "原始詳細資料",
openFile: "開啟檔案",
openDetails: "在側面板開啟工具詳細資料",
widgetActions: "小工具操作",
copyToClipboard: "複製到剪貼簿",
downloadFile: "下載檔案",
widgetExportRerender: "此小工具需要重新算繪才能匯出為圖片。",
widgetExportFailed: "小工具匯出失敗,請再試一次。",
pinToDashboard: "釘選至儀表板",
pinToDashboardPending: "釘選中…",
pinnedToDashboard: "已釘選",
fileChanges: "檔案變更",
attemptedChanges: "嘗試的變更",
failed: "失敗",
@@ -3899,6 +4113,18 @@ export const zh_TW: TranslationMap = {
statusRenamed: "已重新命名",
statusModified: "已修改",
},
sessionDiscussion: {
title: "討論",
show: "顯示討論",
disconnected: "Gateway 已中斷連線。",
loading: "正在載入討論…",
opening: "正在開啟討論…",
requiresWriteAccess: "需要操作員寫入權限才能開啟此討論。",
opened: "工作階段討論",
openExternal: "在新分頁中開啟討論",
frameTitle: "工作階段討論",
unavailable: "此討論無法嵌入。",
},
workspaceFiles: {
label: "工作階段工作區",
expand: "展開工作階段工作區",
@@ -4130,9 +4356,11 @@ export const zh_TW: TranslationMap = {
expression: "運算式",
expressionPlaceholder: "0 7 * * *",
everyAmountPlaceholder: "30",
summaryEverySecondOne: "每秒執行",
summaryEveryMinuteOne: "每分鐘執行一次",
summaryEveryHourOne: "每小時執行一次",
summaryEveryDayOne: "每天執行一次",
summaryEverySeconds: "每 {amount} 秒執行",
summaryEveryMinutes: "每 {amount} 分鐘執行一次",
summaryEveryHours: "每 {amount} 小時執行一次",
summaryEveryDays: "每 {amount} 天執行一次",