@jonsoc/app 1.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/AGENTS.md +30 -0
  2. package/README.md +51 -0
  3. package/bunfig.toml +2 -0
  4. package/e2e/context.spec.ts +45 -0
  5. package/e2e/file-open.spec.ts +23 -0
  6. package/e2e/file-viewer.spec.ts +35 -0
  7. package/e2e/fixtures.ts +40 -0
  8. package/e2e/home.spec.ts +21 -0
  9. package/e2e/model-picker.spec.ts +43 -0
  10. package/e2e/navigation.spec.ts +9 -0
  11. package/e2e/palette.spec.ts +15 -0
  12. package/e2e/prompt-mention.spec.ts +26 -0
  13. package/e2e/prompt-slash-open.spec.ts +22 -0
  14. package/e2e/prompt.spec.ts +62 -0
  15. package/e2e/session.spec.ts +21 -0
  16. package/e2e/settings.spec.ts +44 -0
  17. package/e2e/sidebar.spec.ts +21 -0
  18. package/e2e/terminal-init.spec.ts +25 -0
  19. package/e2e/terminal.spec.ts +16 -0
  20. package/e2e/tsconfig.json +8 -0
  21. package/e2e/utils.ts +38 -0
  22. package/happydom.ts +75 -0
  23. package/index.html +23 -0
  24. package/package.json +72 -0
  25. package/playwright.config.ts +43 -0
  26. package/public/_headers +17 -0
  27. package/public/apple-touch-icon-v3.png +1 -0
  28. package/public/apple-touch-icon.png +1 -0
  29. package/public/favicon-96x96-v3.png +1 -0
  30. package/public/favicon-96x96.png +1 -0
  31. package/public/favicon-v3.ico +1 -0
  32. package/public/favicon-v3.svg +1 -0
  33. package/public/favicon.ico +1 -0
  34. package/public/favicon.svg +1 -0
  35. package/public/oc-theme-preload.js +28 -0
  36. package/public/site.webmanifest +1 -0
  37. package/public/social-share-zen.png +1 -0
  38. package/public/social-share.png +1 -0
  39. package/public/web-app-manifest-192x192.png +1 -0
  40. package/public/web-app-manifest-512x512.png +1 -0
  41. package/script/e2e-local.ts +143 -0
  42. package/src/addons/serialize.test.ts +319 -0
  43. package/src/addons/serialize.ts +591 -0
  44. package/src/app.tsx +150 -0
  45. package/src/components/dialog-connect-provider.tsx +428 -0
  46. package/src/components/dialog-edit-project.tsx +259 -0
  47. package/src/components/dialog-fork.tsx +104 -0
  48. package/src/components/dialog-manage-models.tsx +59 -0
  49. package/src/components/dialog-select-directory.tsx +208 -0
  50. package/src/components/dialog-select-file.tsx +196 -0
  51. package/src/components/dialog-select-mcp.tsx +96 -0
  52. package/src/components/dialog-select-model-unpaid.tsx +130 -0
  53. package/src/components/dialog-select-model.tsx +162 -0
  54. package/src/components/dialog-select-provider.tsx +70 -0
  55. package/src/components/dialog-select-server.tsx +249 -0
  56. package/src/components/dialog-settings.tsx +112 -0
  57. package/src/components/file-tree.tsx +112 -0
  58. package/src/components/link.tsx +17 -0
  59. package/src/components/model-tooltip.tsx +91 -0
  60. package/src/components/prompt-input.tsx +2076 -0
  61. package/src/components/session/index.ts +5 -0
  62. package/src/components/session/session-context-tab.tsx +428 -0
  63. package/src/components/session/session-header.tsx +343 -0
  64. package/src/components/session/session-new-view.tsx +93 -0
  65. package/src/components/session/session-sortable-tab.tsx +56 -0
  66. package/src/components/session/session-sortable-terminal-tab.tsx +187 -0
  67. package/src/components/session-context-usage.tsx +113 -0
  68. package/src/components/session-lsp-indicator.tsx +42 -0
  69. package/src/components/session-mcp-indicator.tsx +34 -0
  70. package/src/components/settings-agents.tsx +15 -0
  71. package/src/components/settings-commands.tsx +15 -0
  72. package/src/components/settings-general.tsx +306 -0
  73. package/src/components/settings-keybinds.tsx +437 -0
  74. package/src/components/settings-mcp.tsx +15 -0
  75. package/src/components/settings-models.tsx +15 -0
  76. package/src/components/settings-permissions.tsx +234 -0
  77. package/src/components/settings-providers.tsx +15 -0
  78. package/src/components/terminal.tsx +315 -0
  79. package/src/components/titlebar.tsx +156 -0
  80. package/src/context/command.tsx +308 -0
  81. package/src/context/comments.tsx +140 -0
  82. package/src/context/file.tsx +409 -0
  83. package/src/context/global-sdk.tsx +106 -0
  84. package/src/context/global-sync.tsx +898 -0
  85. package/src/context/language.tsx +161 -0
  86. package/src/context/layout-scroll.test.ts +73 -0
  87. package/src/context/layout-scroll.ts +118 -0
  88. package/src/context/layout.tsx +648 -0
  89. package/src/context/local.tsx +578 -0
  90. package/src/context/notification.tsx +173 -0
  91. package/src/context/permission.tsx +167 -0
  92. package/src/context/platform.tsx +59 -0
  93. package/src/context/prompt.tsx +245 -0
  94. package/src/context/sdk.tsx +48 -0
  95. package/src/context/server.tsx +214 -0
  96. package/src/context/settings.tsx +166 -0
  97. package/src/context/sync.tsx +320 -0
  98. package/src/context/terminal.tsx +267 -0
  99. package/src/custom-elements.d.ts +17 -0
  100. package/src/entry.tsx +76 -0
  101. package/src/env.d.ts +8 -0
  102. package/src/hooks/use-providers.ts +31 -0
  103. package/src/i18n/ar.ts +656 -0
  104. package/src/i18n/br.ts +667 -0
  105. package/src/i18n/da.ts +582 -0
  106. package/src/i18n/de.ts +591 -0
  107. package/src/i18n/en.ts +665 -0
  108. package/src/i18n/es.ts +585 -0
  109. package/src/i18n/fr.ts +592 -0
  110. package/src/i18n/ja.ts +579 -0
  111. package/src/i18n/ko.ts +580 -0
  112. package/src/i18n/no.ts +602 -0
  113. package/src/i18n/pl.ts +661 -0
  114. package/src/i18n/ru.ts +664 -0
  115. package/src/i18n/zh.ts +574 -0
  116. package/src/i18n/zht.ts +570 -0
  117. package/src/index.css +57 -0
  118. package/src/index.ts +2 -0
  119. package/src/pages/directory-layout.tsx +57 -0
  120. package/src/pages/error.tsx +290 -0
  121. package/src/pages/home.tsx +125 -0
  122. package/src/pages/layout.tsx +2599 -0
  123. package/src/pages/session.tsx +2505 -0
  124. package/src/sst-env.d.ts +10 -0
  125. package/src/utils/dom.ts +51 -0
  126. package/src/utils/id.ts +99 -0
  127. package/src/utils/index.ts +1 -0
  128. package/src/utils/perf.ts +135 -0
  129. package/src/utils/persist.ts +377 -0
  130. package/src/utils/prompt.ts +203 -0
  131. package/src/utils/same.ts +6 -0
  132. package/src/utils/solid-dnd.tsx +55 -0
  133. package/src/utils/sound.ts +110 -0
  134. package/src/utils/speech.ts +302 -0
  135. package/src/utils/worktree.ts +58 -0
  136. package/sst-env.d.ts +9 -0
  137. package/tsconfig.json +26 -0
  138. package/vite.config.ts +15 -0
  139. package/vite.js +26 -0
package/src/i18n/ar.ts ADDED
@@ -0,0 +1,656 @@
1
+ export const dict = {
2
+ "command.category.suggested": "مقترح",
3
+ "command.category.view": "عرض",
4
+ "command.category.project": "مشروع",
5
+ "command.category.provider": "موفر",
6
+ "command.category.server": "خادم",
7
+ "command.category.session": "جلسة",
8
+ "command.category.theme": "سمة",
9
+ "command.category.language": "لغة",
10
+ "command.category.file": "ملف",
11
+ "command.category.terminal": "محطة طرفية",
12
+ "command.category.model": "نموذج",
13
+ "command.category.mcp": "MCP",
14
+ "command.category.agent": "وكيل",
15
+ "command.category.permissions": "أذونات",
16
+ "command.category.workspace": "مساحة عمل",
17
+ "command.category.settings": "إعدادات",
18
+
19
+ "theme.scheme.system": "نظام",
20
+ "theme.scheme.light": "فاتح",
21
+ "theme.scheme.dark": "داكن",
22
+
23
+ "command.sidebar.toggle": "تبديل الشريط الجانبي",
24
+ "command.project.open": "فتح مشروع",
25
+ "command.provider.connect": "اتصال بموفر",
26
+ "command.server.switch": "تبديل الخادم",
27
+ "command.settings.open": "فتح الإعدادات",
28
+ "command.session.previous": "الجلسة السابقة",
29
+ "command.session.next": "الجلسة التالية",
30
+ "command.session.archive": "أرشفة الجلسة",
31
+
32
+ "command.palette": "لوحة الأوامر",
33
+
34
+ "command.theme.cycle": "تغيير السمة",
35
+ "command.theme.set": "استخدام السمة: {{theme}}",
36
+ "command.theme.scheme.cycle": "تغيير مخطط الألوان",
37
+ "command.theme.scheme.set": "استخدام مخطط الألوان: {{scheme}}",
38
+
39
+ "command.language.cycle": "تغيير اللغة",
40
+ "command.language.set": "استخدام اللغة: {{language}}",
41
+
42
+ "command.session.new": "جلسة جديدة",
43
+ "command.file.open": "فتح ملف",
44
+ "command.file.open.description": "البحث في الملفات والأوامر",
45
+ "command.terminal.toggle": "تبديل المحطة الطرفية",
46
+ "command.review.toggle": "تبديل المراجعة",
47
+ "command.terminal.new": "محطة طرفية جديدة",
48
+ "command.terminal.new.description": "إنشاء علامة تبويب جديدة للمحطة الطرفية",
49
+ "command.steps.toggle": "تبديل الخطوات",
50
+ "command.steps.toggle.description": "إظهار أو إخفاء خطوات الرسالة الحالية",
51
+ "command.message.previous": "الرسالة السابقة",
52
+ "command.message.previous.description": "انتقل إلى رسالة المستخدم السابقة",
53
+ "command.message.next": "الرسالة التالية",
54
+ "command.message.next.description": "انتقل إلى رسالة المستخدم التالية",
55
+ "command.model.choose": "اختيار نموذج",
56
+ "command.model.choose.description": "حدد نموذجًا مختلفًا",
57
+ "command.mcp.toggle": "تبديل MCPs",
58
+ "command.mcp.toggle.description": "تبديل MCPs",
59
+ "command.agent.cycle": "تغيير الوكيل",
60
+ "command.agent.cycle.description": "التبديل إلى الوكيل التالي",
61
+ "command.agent.cycle.reverse": "تغيير الوكيل للخلف",
62
+ "command.agent.cycle.reverse.description": "التبديل إلى الوكيل السابق",
63
+ "command.model.variant.cycle": "تغيير جهد التفكير",
64
+ "command.model.variant.cycle.description": "التبديل إلى مستوى الجهد التالي",
65
+ "command.permissions.autoaccept.enable": "قبول التعديلات تلقائيًا",
66
+ "command.permissions.autoaccept.disable": "إيقاف قبول التعديلات تلقائيًا",
67
+ "command.session.undo": "تراجع",
68
+ "command.session.undo.description": "تراجع عن الرسالة الأخيرة",
69
+ "command.session.redo": "إعادة",
70
+ "command.session.redo.description": "إعادة الرسالة التي تم التراجع عنها",
71
+ "command.session.compact": "ضغط الجلسة",
72
+ "command.session.compact.description": "تلخيص الجلسة لتقليل حجم السياق",
73
+ "command.session.fork": "تشعب من الرسالة",
74
+ "command.session.fork.description": "إنشاء جلسة جديدة من رسالة سابقة",
75
+ "command.session.share": "مشاركة الجلسة",
76
+ "command.session.share.description": "مشاركة هذه الجلسة ونسخ الرابط إلى الحافظة",
77
+ "command.session.unshare": "إلغاء مشاركة الجلسة",
78
+ "command.session.unshare.description": "إيقاف مشاركة هذه الجلسة",
79
+
80
+ "palette.search.placeholder": "البحث في الملفات والأوامر",
81
+ "palette.empty": "لا توجد نتائج",
82
+ "palette.group.commands": "الأوامر",
83
+ "palette.group.files": "الملفات",
84
+
85
+ "dialog.provider.search.placeholder": "البحث عن موفرين",
86
+ "dialog.provider.empty": "لم يتم العثور على موفرين",
87
+ "dialog.provider.group.popular": "شائع",
88
+ "dialog.provider.group.other": "آخر",
89
+ "dialog.provider.tag.recommended": "موصى به",
90
+ "dialog.provider.anthropic.note": "اتصل باستخدام Claude Pro/Max أو مفتاح API",
91
+ "dialog.provider.openai.note": "اتصل باستخدام ChatGPT Pro/Plus أو مفتاح API",
92
+ "dialog.provider.copilot.note": "اتصل باستخدام Copilot أو مفتاح API",
93
+
94
+ "dialog.model.select.title": "تحديد نموذج",
95
+ "dialog.model.search.placeholder": "البحث عن نماذج",
96
+ "dialog.model.empty": "لا توجد نتائج للنماذج",
97
+ "dialog.model.manage": "إدارة النماذج",
98
+ "dialog.model.manage.description": "تخصيص النماذج التي تظهر في محدد النماذج.",
99
+
100
+ "dialog.model.unpaid.freeModels.title": "نماذج مجانية مقدمة من JonsOC",
101
+ "dialog.model.unpaid.addMore.title": "إضافة المزيد من النماذج من موفرين مشهورين",
102
+
103
+ "dialog.provider.viewAll": "عرض جميع الموفرين",
104
+
105
+ "provider.connect.title": "اتصال {{provider}}",
106
+ "provider.connect.title.anthropicProMax": "تسجيل الدخول باستخدام Claude Pro/Max",
107
+ "provider.connect.selectMethod": "حدد طريقة تسجيل الدخول لـ {{provider}}.",
108
+ "provider.connect.method.apiKey": "مفتاح API",
109
+ "provider.connect.status.inProgress": "جارٍ التفويض...",
110
+ "provider.connect.status.waiting": "في انتظار التفويض...",
111
+ "provider.connect.status.failed": "فشل التفويض: {{error}}",
112
+ "provider.connect.apiKey.description":
113
+ "أدخل مفتاح واجهة برمجة تطبيقات {{provider}} الخاص بك لتوصيل حسابك واستخدام نماذج {{provider}} في JonsOC.",
114
+ "provider.connect.apiKey.label": "مفتاح واجهة برمجة تطبيقات {{provider}}",
115
+ "provider.connect.apiKey.placeholder": "مفتاح API",
116
+ "provider.connect.apiKey.required": "مفتاح API مطلوب",
117
+ "provider.connect.jonsocZen.line1":
118
+ "يمنحك JonsOC Zen الوصول إلى مجموعة مختارة من النماذج الموثوقة والمحسنة لوكلاء البرمجة.",
119
+ "provider.connect.jonsocZen.line2":
120
+ "باستخدام مفتاح API واحد، ستحصل على إمكانية الوصول إلى نماذج مثل Claude و GPT و Gemini و GLM والمزيد.",
121
+ "provider.connect.jonsocZen.visit.prefix": "قم بزيارة ",
122
+ "provider.connect.jonsocZen.visit.link": "jonsoc.com/zen",
123
+ "provider.connect.jonsocZen.visit.suffix": " للحصول على مفتاح API الخاص بك.",
124
+ "provider.connect.oauth.code.visit.prefix": "قم بزيارة ",
125
+ "provider.connect.oauth.code.visit.link": "هذا الرابط",
126
+ "provider.connect.oauth.code.visit.suffix":
127
+ " للحصول على رمز التفويض الخاص بك لتوصيل حسابك واستخدام نماذج {{provider}} في JonsOC.",
128
+ "provider.connect.oauth.code.label": "رمز تفويض {{method}}",
129
+ "provider.connect.oauth.code.placeholder": "رمز التفويض",
130
+ "provider.connect.oauth.code.required": "رمز التفويض مطلوب",
131
+ "provider.connect.oauth.code.invalid": "رمز التفويض غير صالح",
132
+ "provider.connect.oauth.auto.visit.prefix": "قم بزيارة ",
133
+ "provider.connect.oauth.auto.visit.link": "هذا الرابط",
134
+ "provider.connect.oauth.auto.visit.suffix":
135
+ " وأدخل الرمز أدناه لتوصيل حسابك واستخدام نماذج {{provider}} في JonsOC.",
136
+ "provider.connect.oauth.auto.confirmationCode": "رمز التأكيد",
137
+ "provider.connect.toast.connected.title": "تم توصيل {{provider}}",
138
+ "provider.connect.toast.connected.description": "نماذج {{provider}} متاحة الآن للاستخدام.",
139
+
140
+ "model.tag.free": "مجاني",
141
+ "model.tag.latest": "الأحدث",
142
+ "model.provider.anthropic": "Anthropic",
143
+ "model.provider.openai": "OpenAI",
144
+ "model.provider.google": "Google",
145
+ "model.provider.xai": "xAI",
146
+ "model.provider.meta": "Meta",
147
+ "model.input.text": "نص",
148
+ "model.input.image": "صورة",
149
+ "model.input.audio": "صوت",
150
+ "model.input.video": "فيديو",
151
+ "model.input.pdf": "pdf",
152
+ "model.tooltip.allows": "يسمح: {{inputs}}",
153
+ "model.tooltip.reasoning.allowed": "يسمح بالاستنتاج",
154
+ "model.tooltip.reasoning.none": "بدون استنتاج",
155
+ "model.tooltip.context": "حد السياق {{limit}}",
156
+
157
+ "common.search.placeholder": "بحث",
158
+ "common.goBack": "رجوع",
159
+ "common.loading": "جارٍ التحميل",
160
+ "common.loading.ellipsis": "...",
161
+ "common.cancel": "إلغاء",
162
+ "common.submit": "إرسال",
163
+ "common.save": "حفظ",
164
+ "common.saving": "جارٍ الحفظ...",
165
+ "common.default": "افتراضي",
166
+ "common.attachment": "مرفق",
167
+
168
+ "prompt.placeholder.shell": "أدخل أمر shell...",
169
+ "prompt.placeholder.normal": 'اسأل أي شيء... "{{example}}"',
170
+ "prompt.mode.shell": "Shell",
171
+ "prompt.mode.shell.exit": "esc للخروج",
172
+
173
+ "prompt.example.1": "إصلاح TODO في قاعدة التعليمات البرمجية",
174
+ "prompt.example.2": "ما هو المكدس التقني لهذا المشروع؟",
175
+ "prompt.example.3": "إصلاح الاختبارات المعطلة",
176
+ "prompt.example.4": "اشرح كيف تعمل المصادقة",
177
+ "prompt.example.5": "البحث عن وإصلاح الثغرات الأمنية",
178
+ "prompt.example.6": "إضافة اختبارات وحدة لخدمة المستخدم",
179
+ "prompt.example.7": "إعادة هيكلة هذه الدالة لتكون أكثر قابلية للقراءة",
180
+ "prompt.example.8": "ماذا يعني هذا الخطأ؟",
181
+ "prompt.example.9": "ساعدني في تصحيح هذه المشكلة",
182
+ "prompt.example.10": "توليد وثائق API",
183
+ "prompt.example.11": "تحسين استعلامات قاعدة البيانات",
184
+ "prompt.example.12": "إضافة التحقق من صحة الإدخال",
185
+ "prompt.example.13": "إنشاء مكون جديد لـ...",
186
+ "prompt.example.14": "كيف أقوم بنشر هذا المشروع؟",
187
+ "prompt.example.15": "مراجعة الكود الخاص بي لأفضل الممارسات",
188
+ "prompt.example.16": "إضافة معالجة الأخطاء لهذه الدالة",
189
+ "prompt.example.17": "اشرح نمط regex هذا",
190
+ "prompt.example.18": "تحويل هذا إلى TypeScript",
191
+ "prompt.example.19": "إضافة تسجيل الدخول (logging) في جميع أنحاء قاعدة التعليمات البرمجية",
192
+ "prompt.example.20": "ما هي التبعيات القديمة؟",
193
+ "prompt.example.21": "ساعدني في كتابة برنامج نصي للهجرة",
194
+ "prompt.example.22": "تنفيذ التخزين المؤقت لهذه النقطة النهائية",
195
+ "prompt.example.23": "إضافة ترقيم الصفحات إلى هذه القائمة",
196
+ "prompt.example.24": "إنشاء أمر CLI لـ...",
197
+ "prompt.example.25": "كيف تعمل متغيرات البيئة هنا؟",
198
+
199
+ "prompt.popover.emptyResults": "لا توجد نتائج مطابقة",
200
+ "prompt.popover.emptyCommands": "لا توجد أوامر مطابقة",
201
+ "prompt.dropzone.label": "أفلت الصور أو ملفات PDF هنا",
202
+ "prompt.slash.badge.custom": "مخصص",
203
+ "prompt.context.active": "نشط",
204
+ "prompt.context.includeActiveFile": "تضمين الملف النشط",
205
+ "prompt.context.removeActiveFile": "إزالة الملف النشط من السياق",
206
+ "prompt.context.removeFile": "إزالة الملف من السياق",
207
+ "prompt.action.attachFile": "إرفاق ملف",
208
+ "prompt.attachment.remove": "إزالة المرفق",
209
+ "prompt.action.send": "إرسال",
210
+ "prompt.action.stop": "توقف",
211
+
212
+ "prompt.toast.pasteUnsupported.title": "لصق غير مدعوم",
213
+ "prompt.toast.pasteUnsupported.description": "يمكن لصق الصور أو ملفات PDF فقط هنا.",
214
+ "prompt.toast.modelAgentRequired.title": "حدد وكيلاً ونموذجاً",
215
+ "prompt.toast.modelAgentRequired.description": "اختر وكيلاً ونموذجاً قبل إرسال الموجه.",
216
+ "prompt.toast.worktreeCreateFailed.title": "فشل إنشاء شجرة العمل",
217
+ "prompt.toast.sessionCreateFailed.title": "فشل إنشاء الجلسة",
218
+ "prompt.toast.shellSendFailed.title": "فشل إرسال أمر shell",
219
+ "prompt.toast.commandSendFailed.title": "فشل إرسال الأمر",
220
+ "prompt.toast.promptSendFailed.title": "فشل إرسال الموجه",
221
+
222
+ "dialog.mcp.title": "MCPs",
223
+ "dialog.mcp.description": "{{enabled}} من {{total}} مفعل",
224
+ "dialog.mcp.empty": "لم يتم تكوين MCPs",
225
+
226
+ "mcp.status.connected": "متصل",
227
+ "mcp.status.failed": "فشل",
228
+ "mcp.status.needs_auth": "يحتاج إلى مصادقة",
229
+ "mcp.status.disabled": "معطل",
230
+
231
+ "dialog.fork.empty": "لا توجد رسائل للتفرع منها",
232
+
233
+ "dialog.directory.search.placeholder": "البحث في المجلدات",
234
+ "dialog.directory.empty": "لم يتم العثور على مجلدات",
235
+
236
+ "dialog.server.title": "الخوادم",
237
+ "dialog.server.description": "تبديل خادم JonsOC الذي يتصل به هذا التطبيق.",
238
+ "dialog.server.search.placeholder": "البحث في الخوادم",
239
+ "dialog.server.empty": "لا توجد خوادم بعد",
240
+ "dialog.server.add.title": "إضافة خادم",
241
+ "dialog.server.add.url": "عنوان URL للخادم",
242
+ "dialog.server.add.placeholder": "http://localhost:4096",
243
+ "dialog.server.add.error": "تعذر الاتصال بالخادم",
244
+ "dialog.server.add.checking": "جارٍ التحقق...",
245
+ "dialog.server.add.button": "إضافة",
246
+ "dialog.server.default.title": "الخادم الافتراضي",
247
+ "dialog.server.default.description":
248
+ "الاتصال بهذا الخادم عند بدء تشغيل التطبيق بدلاً من بدء خادم محلي. يتطلب إعادة التشغيل.",
249
+ "dialog.server.default.none": "لم يتم تحديد خادم",
250
+ "dialog.server.default.set": "تعيين الخادم الحالي كافتراضي",
251
+ "dialog.server.default.clear": "مسح",
252
+ "dialog.server.action.remove": "إزالة الخادم",
253
+
254
+ "dialog.project.edit.title": "تحرير المشروع",
255
+ "dialog.project.edit.name": "الاسم",
256
+ "dialog.project.edit.icon": "أيقونة",
257
+ "dialog.project.edit.icon.alt": "أيقونة المشروع",
258
+ "dialog.project.edit.icon.hint": "انقر أو اسحب صورة",
259
+ "dialog.project.edit.icon.recommended": "موصى به: 128x128px",
260
+ "dialog.project.edit.color": "لون",
261
+ "dialog.project.edit.color.select": "اختر لون {{color}}",
262
+
263
+ "context.breakdown.title": "تفصيل السياق",
264
+ "context.breakdown.note": 'تفصيل تقريبي لرموز الإدخال. يشمل "أخرى" تعريفات الأدوات والنفقات العامة.',
265
+ "context.breakdown.system": "النظام",
266
+ "context.breakdown.user": "المستخدم",
267
+ "context.breakdown.assistant": "المساعد",
268
+ "context.breakdown.tool": "استدعاءات الأداة",
269
+ "context.breakdown.other": "أخرى",
270
+
271
+ "context.systemPrompt.title": "موجه النظام",
272
+ "context.rawMessages.title": "الرسائل الخام",
273
+
274
+ "context.stats.session": "جلسة",
275
+ "context.stats.messages": "رسائل",
276
+ "context.stats.provider": "موفر",
277
+ "context.stats.model": "نموذج",
278
+ "context.stats.limit": "حد السياق",
279
+ "context.stats.totalTokens": "إجمالي الرموز",
280
+ "context.stats.usage": "استخدام",
281
+ "context.stats.inputTokens": "رموز الإدخال",
282
+ "context.stats.outputTokens": "رموز الإخراج",
283
+ "context.stats.reasoningTokens": "رموز الاستنتاج",
284
+ "context.stats.cacheTokens": "رموز التخزين المؤقت (قراءة/كتابة)",
285
+ "context.stats.userMessages": "رسائل المستخدم",
286
+ "context.stats.assistantMessages": "رسائل المساعد",
287
+ "context.stats.totalCost": "التكلفة الإجمالية",
288
+ "context.stats.sessionCreated": "تم إنشاء الجلسة",
289
+ "context.stats.lastActivity": "آخر نشاط",
290
+
291
+ "context.usage.tokens": "رموز",
292
+ "context.usage.usage": "استخدام",
293
+ "context.usage.cost": "تكلفة",
294
+ "context.usage.clickToView": "انقر لعرض السياق",
295
+ "context.usage.view": "عرض استخدام السياق",
296
+
297
+ "language.en": "الإنجليزية",
298
+ "language.zh": "الصينية (المبسطة)",
299
+ "language.zht": "الصينية (التقليدية)",
300
+ "language.ko": "الكورية",
301
+ "language.de": "الألمانية",
302
+ "language.es": "الإسبانية",
303
+ "language.fr": "الفرنسية",
304
+ "language.ja": "اليابانية",
305
+ "language.da": "الدانماركية",
306
+ "language.ru": "الروسية",
307
+ "language.pl": "البولندية",
308
+ "language.ar": "العربية",
309
+ "language.no": "النرويجية",
310
+ "language.br": "البرتغالية (البرازيل)",
311
+
312
+ "toast.language.title": "لغة",
313
+ "toast.language.description": "تم التبديل إلى {{language}}",
314
+
315
+ "toast.theme.title": "تم تبديل السمة",
316
+ "toast.scheme.title": "مخطط الألوان",
317
+
318
+ "toast.permissions.autoaccept.on.title": "قبول التعديلات تلقائيًا",
319
+ "toast.permissions.autoaccept.on.description": "سيتم الموافقة تلقائيًا على أذونات التحرير والكتابة",
320
+ "toast.permissions.autoaccept.off.title": "توقف قبول التعديلات تلقائيًا",
321
+ "toast.permissions.autoaccept.off.description": "ستتطلب أذونات التحرير والكتابة موافقة",
322
+
323
+ "toast.model.none.title": "لم يتم تحديد نموذج",
324
+ "toast.model.none.description": "قم بتوصيل موفر لتلخيص هذه الجلسة",
325
+
326
+ "toast.file.loadFailed.title": "فشل تحميل الملف",
327
+
328
+ "toast.session.share.copyFailed.title": "فشل نسخ عنوان URL إلى الحافظة",
329
+ "toast.session.share.success.title": "تمت مشاركة الجلسة",
330
+ "toast.session.share.success.description": "تم نسخ عنوان URL للمشاركة إلى الحافظة!",
331
+ "toast.session.share.failed.title": "فشل مشاركة الجلسة",
332
+ "toast.session.share.failed.description": "حدث خطأ أثناء مشاركة الجلسة",
333
+
334
+ "toast.session.unshare.success.title": "تم إلغاء مشاركة الجلسة",
335
+ "toast.session.unshare.success.description": "تم إلغاء مشاركة الجلسة بنجاح!",
336
+ "toast.session.unshare.failed.title": "فشل إلغاء مشاركة الجلسة",
337
+ "toast.session.unshare.failed.description": "حدث خطأ أثناء إلغاء مشاركة الجلسة",
338
+
339
+ "toast.session.listFailed.title": "فشل تحميل الجلسات لـ {{project}}",
340
+
341
+ "toast.update.title": "تحديث متاح",
342
+ "toast.update.description": "نسخة جديدة من JonsOC ({{version}}) متاحة الآن للتثبيت.",
343
+ "toast.update.action.installRestart": "تثبيت وإعادة تشغيل",
344
+ "toast.update.action.notYet": "ليس الآن",
345
+
346
+ "error.page.title": "حدث خطأ ما",
347
+ "error.page.description": "حدث خطأ أثناء تحميل التطبيق.",
348
+ "error.page.details.label": "تفاصيل الخطأ",
349
+ "error.page.action.restart": "إعادة تشغيل",
350
+ "error.page.action.checking": "جارٍ التحقق...",
351
+ "error.page.action.checkUpdates": "التحقق من وجود تحديثات",
352
+ "error.page.action.updateTo": "تحديث إلى {{version}}",
353
+ "error.page.report.prefix": "يرجى الإبلاغ عن هذا الخطأ لفريق JonsOC",
354
+ "error.page.report.discord": "على Discord",
355
+ "error.page.version": "الإصدار: {{version}}",
356
+
357
+ "error.dev.rootNotFound":
358
+ "لم يتم العثور على العنصر الجذري. هل نسيت إضافته إلى index.html؟ أو ربما تمت كتابة سمة id بشكل خاطئ؟",
359
+
360
+ "error.globalSync.connectFailed": "تعذر الاتصال بالخادم. هل هناك خادم يعمل في `{{url}}`؟",
361
+
362
+ "error.chain.unknown": "خطأ غير معروف",
363
+ "error.chain.causedBy": "بسبب:",
364
+ "error.chain.apiError": "خطأ API",
365
+ "error.chain.status": "الحالة: {{status}}",
366
+ "error.chain.retryable": "قابل لإعادة المحاولة: {{retryable}}",
367
+ "error.chain.responseBody": "نص الاستجابة:\n{{body}}",
368
+ "error.chain.didYouMean": "هل كنت تعني: {{suggestions}}",
369
+ "error.chain.modelNotFound": "النموذج غير موجود: {{provider}}/{{model}}",
370
+ "error.chain.checkConfig": "تحقق من أسماء الموفر/النموذج في التكوين (jonsoc.json)",
371
+ "error.chain.mcpFailed": 'فشل خادم MCP "{{name}}". لاحظ أن JonsOC لا يدعم مصادقة MCP بعد.',
372
+ "error.chain.providerAuthFailed": "فشلت مصادقة الموفر ({{provider}}): {{message}}",
373
+ "error.chain.providerInitFailed": 'فشل تهيئة الموفر "{{provider}}". تحقق من بيانات الاعتماد والتكوين.',
374
+ "error.chain.configJsonInvalid": "ملف التكوين في {{path}} ليس JSON(C) صالحًا",
375
+ "error.chain.configJsonInvalidWithMessage": "ملف التكوين في {{path}} ليس JSON(C) صالحًا: {{message}}",
376
+ "error.chain.configDirectoryTypo":
377
+ 'الدليل "{{dir}}" في {{path}} غير صالح. أعد تسمية الدليل إلى "{{suggestion}}" أو قم بإزالته. هذا خطأ مطبعي شائع.',
378
+ "error.chain.configFrontmatterError": "فشل تحليل frontmatter في {{path}}:\n{{message}}",
379
+ "error.chain.configInvalid": "ملف التكوين في {{path}} غير صالح",
380
+ "error.chain.configInvalidWithMessage": "ملف التكوين في {{path}} غير صالح: {{message}}",
381
+
382
+ "notification.permission.title": "مطلوب إذن",
383
+ "notification.permission.description": "{{sessionTitle}} في {{projectName}} يحتاج إلى إذن",
384
+ "notification.question.title": "سؤال",
385
+ "notification.question.description": "{{sessionTitle}} في {{projectName}} لديه سؤال",
386
+ "notification.action.goToSession": "انتقل إلى الجلسة",
387
+
388
+ "notification.session.responseReady.title": "الاستجابة جاهزة",
389
+ "notification.session.error.title": "خطأ في الجلسة",
390
+ "notification.session.error.fallbackDescription": "حدث خطأ",
391
+
392
+ "home.recentProjects": "المشاريع الحديثة",
393
+ "home.empty.title": "لا توجد مشاريع حديثة",
394
+ "home.empty.description": "ابدأ بفتح مشروع محلي",
395
+
396
+ "session.tab.session": "جلسة",
397
+ "session.tab.review": "مراجعة",
398
+ "session.tab.context": "سياق",
399
+ "session.panel.reviewAndFiles": "المراجعة والملفات",
400
+ "session.review.filesChanged": "تم تغيير {{count}} ملفات",
401
+ "session.review.loadingChanges": "جارٍ تحميل التغييرات...",
402
+ "session.review.empty": "لا توجد تغييرات في هذه الجلسة بعد",
403
+ "session.messages.renderEarlier": "عرض الرسائل السابقة",
404
+ "session.messages.loadingEarlier": "جارٍ تحميل الرسائل السابقة...",
405
+ "session.messages.loadEarlier": "تحميل الرسائل السابقة",
406
+ "session.messages.loading": "جارٍ تحميل الرسائل...",
407
+ "session.messages.jumpToLatest": "الانتقال إلى الأحدث",
408
+
409
+ "session.context.addToContext": "إضافة {{selection}} إلى السياق",
410
+
411
+ "session.new.worktree.main": "الفرع الرئيسي",
412
+ "session.new.worktree.mainWithBranch": "الفرع الرئيسي ({{branch}})",
413
+ "session.new.worktree.create": "إنشاء شجرة عمل جديدة",
414
+ "session.new.lastModified": "آخر تعديل",
415
+
416
+ "session.header.search.placeholder": "بحث {{project}}",
417
+ "session.header.searchFiles": "بحث عن الملفات",
418
+
419
+ "session.share.popover.title": "نشر على الويب",
420
+ "session.share.popover.description.shared": "هذه الجلسة عامة على الويب. يمكن لأي شخص لديه الرابط الوصول إليها.",
421
+ "session.share.popover.description.unshared": "شارك الجلسة علنًا على الويب. ستكون متاحة لأي شخص لديه الرابط.",
422
+ "session.share.action.share": "مشاركة",
423
+ "session.share.action.publish": "نشر",
424
+ "session.share.action.publishing": "جارٍ النشر...",
425
+ "session.share.action.unpublish": "إلغاء النشر",
426
+ "session.share.action.unpublishing": "جارٍ إلغاء النشر...",
427
+ "session.share.action.view": "عرض",
428
+ "session.share.copy.copied": "تم النسخ",
429
+ "session.share.copy.copyLink": "نسخ الرابط",
430
+
431
+ "lsp.tooltip.none": "لا توجد خوادم LSP",
432
+ "lsp.label.connected": "{{count}} LSP",
433
+
434
+ "prompt.loading": "جارٍ تحميل الموجه...",
435
+ "terminal.loading": "جارٍ تحميل المحطة الطرفية...",
436
+ "terminal.title": "محطة طرفية",
437
+ "terminal.title.numbered": "محطة طرفية {{number}}",
438
+ "terminal.close": "إغلاق المحطة الطرفية",
439
+ "terminal.connectionLost.title": "فقد الاتصال",
440
+ "terminal.connectionLost.description": "انقطع اتصال المحطة الطرفية. يمكن أن يحدث هذا عند إعادة تشغيل الخادم.",
441
+
442
+ "common.closeTab": "إغلاق علامة التبويب",
443
+ "common.dismiss": "رفض",
444
+ "common.requestFailed": "فشل الطلب",
445
+ "common.moreOptions": "مزيد من الخيارات",
446
+ "common.learnMore": "اعرف المزيد",
447
+ "common.rename": "إعادة تسمية",
448
+ "common.reset": "إعادة تعيين",
449
+ "common.archive": "أرشفة",
450
+ "common.delete": "حذف",
451
+ "common.close": "إغلاق",
452
+ "common.edit": "تحرير",
453
+ "common.loadMore": "تحميل المزيد",
454
+ "common.key.esc": "ESC",
455
+
456
+ "sidebar.menu.toggle": "تبديل القائمة",
457
+ "sidebar.nav.projectsAndSessions": "المشاريع والجلسات",
458
+ "sidebar.settings": "الإعدادات",
459
+ "sidebar.help": "مساعدة",
460
+ "sidebar.workspaces.enable": "تمكين مساحات العمل",
461
+ "sidebar.workspaces.disable": "تعطيل مساحات العمل",
462
+ "sidebar.gettingStarted.title": "البدء",
463
+ "sidebar.gettingStarted.line1": "يتضمن JonsOC نماذج مجانية حتى تتمكن من البدء فورًا.",
464
+ "sidebar.gettingStarted.line2": "قم بتوصيل أي موفر لاستخدام النماذج، بما في ذلك Claude و GPT و Gemini وما إلى ذلك.",
465
+ "sidebar.project.recentSessions": "الجلسات الحديثة",
466
+ "sidebar.project.viewAllSessions": "عرض جميع الجلسات",
467
+
468
+ "settings.section.desktop": "سطح المكتب",
469
+ "settings.tab.general": "عام",
470
+ "settings.tab.shortcuts": "اختصارات",
471
+
472
+ "settings.general.section.appearance": "المظهر",
473
+ "settings.general.section.notifications": "إشعارات النظام",
474
+ "settings.general.section.sounds": "المؤثرات الصوتية",
475
+
476
+ "settings.general.row.language.title": "اللغة",
477
+ "settings.general.row.language.description": "تغيير لغة العرض لـ JonsOC",
478
+ "settings.general.row.appearance.title": "المظهر",
479
+ "settings.general.row.appearance.description": "تخصيص كيفية ظهور JonsOC على جهازك",
480
+ "settings.general.row.theme.title": "السمة",
481
+ "settings.general.row.theme.description": "تخصيص سمة JonsOC.",
482
+ "settings.general.row.font.title": "الخط",
483
+ "settings.general.row.font.description": "تخصيص الخط الأحادي المستخدم في كتل التعليمات البرمجية",
484
+ "font.option.ibmPlexMono": "IBM Plex Mono",
485
+ "font.option.cascadiaCode": "Cascadia Code",
486
+ "font.option.firaCode": "Fira Code",
487
+ "font.option.hack": "Hack",
488
+ "font.option.inconsolata": "Inconsolata",
489
+ "font.option.intelOneMono": "Intel One Mono",
490
+ "font.option.jetbrainsMono": "JetBrains Mono",
491
+ "font.option.mesloLgs": "Meslo LGS",
492
+ "font.option.robotoMono": "Roboto Mono",
493
+ "font.option.sourceCodePro": "Source Code Pro",
494
+ "font.option.ubuntuMono": "Ubuntu Mono",
495
+ "sound.option.alert01": "تنبيه 01",
496
+ "sound.option.alert02": "تنبيه 02",
497
+ "sound.option.alert03": "تنبيه 03",
498
+ "sound.option.alert04": "تنبيه 04",
499
+ "sound.option.alert05": "تنبيه 05",
500
+ "sound.option.alert06": "تنبيه 06",
501
+ "sound.option.alert07": "تنبيه 07",
502
+ "sound.option.alert08": "تنبيه 08",
503
+ "sound.option.alert09": "تنبيه 09",
504
+ "sound.option.alert10": "تنبيه 10",
505
+ "sound.option.bipbop01": "بيب بوب 01",
506
+ "sound.option.bipbop02": "بيب بوب 02",
507
+ "sound.option.bipbop03": "بيب بوب 03",
508
+ "sound.option.bipbop04": "بيب بوب 04",
509
+ "sound.option.bipbop05": "بيب بوب 05",
510
+ "sound.option.bipbop06": "بيب بوب 06",
511
+ "sound.option.bipbop07": "بيب بوب 07",
512
+ "sound.option.bipbop08": "بيب بوب 08",
513
+ "sound.option.bipbop09": "بيب بوب 09",
514
+ "sound.option.bipbop10": "بيب بوب 10",
515
+ "sound.option.staplebops01": "ستابل بوبس 01",
516
+ "sound.option.staplebops02": "ستابل بوبس 02",
517
+ "sound.option.staplebops03": "ستابل بوبس 03",
518
+ "sound.option.staplebops04": "ستابل بوبس 04",
519
+ "sound.option.staplebops05": "ستابل بوبس 05",
520
+ "sound.option.staplebops06": "ستابل بوبس 06",
521
+ "sound.option.staplebops07": "ستابل بوبس 07",
522
+ "sound.option.nope01": "كلا 01",
523
+ "sound.option.nope02": "كلا 02",
524
+ "sound.option.nope03": "كلا 03",
525
+ "sound.option.nope04": "كلا 04",
526
+ "sound.option.nope05": "كلا 05",
527
+ "sound.option.nope06": "كلا 06",
528
+ "sound.option.nope07": "كلا 07",
529
+ "sound.option.nope08": "كلا 08",
530
+ "sound.option.nope09": "كلا 09",
531
+ "sound.option.nope10": "كلا 10",
532
+ "sound.option.nope11": "كلا 11",
533
+ "sound.option.nope12": "كلا 12",
534
+ "sound.option.yup01": "نعم 01",
535
+ "sound.option.yup02": "نعم 02",
536
+ "sound.option.yup03": "نعم 03",
537
+ "sound.option.yup04": "نعم 04",
538
+ "sound.option.yup05": "نعم 05",
539
+ "sound.option.yup06": "نعم 06",
540
+
541
+ "settings.general.notifications.agent.title": "وكيل",
542
+ "settings.general.notifications.agent.description": "عرض إشعار النظام عندما يكتمل الوكيل أو يحتاج إلى اهتمام",
543
+ "settings.general.notifications.permissions.title": "أذونات",
544
+ "settings.general.notifications.permissions.description": "عرض إشعار النظام عند الحاجة إلى إذن",
545
+ "settings.general.notifications.errors.title": "أخطاء",
546
+ "settings.general.notifications.errors.description": "عرض إشعار النظام عند حدوث خطأ",
547
+
548
+ "settings.general.sounds.agent.title": "وكيل",
549
+ "settings.general.sounds.agent.description": "تشغيل صوت عندما يكتمل الوكيل أو يحتاج إلى اهتمام",
550
+ "settings.general.sounds.permissions.title": "أذونات",
551
+ "settings.general.sounds.permissions.description": "تشغيل صوت عند الحاجة إلى إذن",
552
+ "settings.general.sounds.errors.title": "أخطاء",
553
+ "settings.general.sounds.errors.description": "تشغيل صوت عند حدوث خطأ",
554
+
555
+ "settings.shortcuts.title": "اختصارات لوحة المفاتيح",
556
+ "settings.shortcuts.reset.button": "إعادة التعيين إلى الافتراضيات",
557
+ "settings.shortcuts.reset.toast.title": "تم إعادة تعيين الاختصارات",
558
+ "settings.shortcuts.reset.toast.description": "تم إعادة تعيين اختصارات لوحة المفاتيح إلى الافتراضيات.",
559
+ "settings.shortcuts.conflict.title": "الاختصار قيد الاستخدام بالفعل",
560
+ "settings.shortcuts.conflict.description": "{{keybind}} معين بالفعل لـ {{titles}}.",
561
+ "settings.shortcuts.unassigned": "غير معين",
562
+ "settings.shortcuts.pressKeys": "اضغط على المفاتيح",
563
+ "settings.shortcuts.search.placeholder": "البحث في الاختصارات",
564
+ "settings.shortcuts.search.empty": "لم يتم العثور على اختصارات",
565
+
566
+ "settings.shortcuts.group.general": "عام",
567
+ "settings.shortcuts.group.session": "جلسة",
568
+ "settings.shortcuts.group.navigation": "تصفح",
569
+ "settings.shortcuts.group.modelAndAgent": "النموذج والوكيل",
570
+ "settings.shortcuts.group.terminal": "المحطة الطرفية",
571
+ "settings.shortcuts.group.prompt": "موجه",
572
+
573
+ "settings.providers.title": "الموفرون",
574
+ "settings.providers.description": "ستكون إعدادات الموفر قابلة للتكوين هنا.",
575
+ "settings.models.title": "النماذج",
576
+ "settings.models.description": "ستكون إعدادات النموذج قابلة للتكوين هنا.",
577
+ "settings.agents.title": "الوكلاء",
578
+ "settings.agents.description": "ستكون إعدادات الوكيل قابلة للتكوين هنا.",
579
+ "settings.commands.title": "الأوامر",
580
+ "settings.commands.description": "ستكون إعدادات الأمر قابلة للتكوين هنا.",
581
+ "settings.mcp.title": "MCP",
582
+ "settings.mcp.description": "ستكون إعدادات MCP قابلة للتكوين هنا.",
583
+
584
+ "settings.permissions.title": "الأذونات",
585
+ "settings.permissions.description": "تحكم في الأدوات التي يمكن للخادم استخدامها بشكل افتراضي.",
586
+ "settings.permissions.section.tools": "الأدوات",
587
+ "settings.permissions.toast.updateFailed.title": "فشل تحديث الأذونات",
588
+
589
+ "settings.permissions.action.allow": "سماح",
590
+ "settings.permissions.action.ask": "سؤال",
591
+ "settings.permissions.action.deny": "رفض",
592
+
593
+ "settings.permissions.tool.read.title": "قراءة",
594
+ "settings.permissions.tool.read.description": "قراءة ملف (يطابق مسار الملف)",
595
+ "settings.permissions.tool.edit.title": "تحرير",
596
+ "settings.permissions.tool.edit.description":
597
+ "تعديل الملفات، بما في ذلك التحرير والكتابة والتصحيحات والتحرير المتعدد",
598
+ "settings.permissions.tool.glob.title": "Glob",
599
+ "settings.permissions.tool.glob.description": "مطابقة الملفات باستخدام أنماط glob",
600
+ "settings.permissions.tool.grep.title": "Grep",
601
+ "settings.permissions.tool.grep.description": "البحث في محتويات الملف باستخدام التعبيرات العادية",
602
+ "settings.permissions.tool.list.title": "قائمة",
603
+ "settings.permissions.tool.list.description": "سرد الملفات داخل دليل",
604
+ "settings.permissions.tool.bash.title": "Bash",
605
+ "settings.permissions.tool.bash.description": "تشغيل أوامر shell",
606
+ "settings.permissions.tool.task.title": "Task",
607
+ "settings.permissions.tool.task.description": "تشغيل الوكلاء الفرعيين",
608
+ "settings.permissions.tool.skill.title": "Skill",
609
+ "settings.permissions.tool.skill.description": "تحميل مهارة بالاسم",
610
+ "settings.permissions.tool.lsp.title": "LSP",
611
+ "settings.permissions.tool.lsp.description": "تشغيل استعلامات خادم اللغة",
612
+ "settings.permissions.tool.todoread.title": "قراءة المهام",
613
+ "settings.permissions.tool.todoread.description": "قراءة قائمة المهام",
614
+ "settings.permissions.tool.todowrite.title": "كتابة المهام",
615
+ "settings.permissions.tool.todowrite.description": "تحديث قائمة المهام",
616
+ "settings.permissions.tool.webfetch.title": "جلب الويب",
617
+ "settings.permissions.tool.webfetch.description": "جلب محتوى من عنوان URL",
618
+ "settings.permissions.tool.websearch.title": "بحث الويب",
619
+ "settings.permissions.tool.websearch.description": "البحث في الويب",
620
+ "settings.permissions.tool.codesearch.title": "بحث الكود",
621
+ "settings.permissions.tool.codesearch.description": "البحث عن كود على الويب",
622
+ "settings.permissions.tool.external_directory.title": "دليل خارجي",
623
+ "settings.permissions.tool.external_directory.description": "الوصول إلى الملفات خارج دليل المشروع",
624
+ "settings.permissions.tool.doom_loop.title": "حلقة الموت",
625
+ "settings.permissions.tool.doom_loop.description": "اكتشاف استدعاءات الأدوات المتكررة بمدخلات متطابقة",
626
+
627
+ "session.delete.failed.title": "فشل حذف الجلسة",
628
+ "session.delete.title": "حذف الجلسة",
629
+ "session.delete.confirm": 'حذف الجلسة "{{name}}"؟',
630
+ "session.delete.button": "حذف الجلسة",
631
+
632
+ "workspace.new": "مساحة عمل جديدة",
633
+ "workspace.type.local": "محلي",
634
+ "workspace.type.sandbox": "صندوق رمل",
635
+ "workspace.create.failed.title": "فشل إنشاء مساحة العمل",
636
+ "workspace.delete.failed.title": "فشل حذف مساحة العمل",
637
+ "workspace.resetting.title": "إعادة تعيين مساحة العمل",
638
+ "workspace.resetting.description": "قد يستغرق هذا دقيقة.",
639
+ "workspace.reset.failed.title": "فشل إعادة تعيين مساحة العمل",
640
+ "workspace.reset.success.title": "تمت إعادة تعيين مساحة العمل",
641
+ "workspace.reset.success.description": "مساحة العمل تطابق الآن الفرع الافتراضي.",
642
+ "workspace.status.checking": "التحقق من التغييرات غير المدمجة...",
643
+ "workspace.status.error": "تعذر التحقق من حالة git.",
644
+ "workspace.status.clean": "لم يتم اكتشاف تغييرات غير مدمجة.",
645
+ "workspace.status.dirty": "تم اكتشاف تغييرات غير مدمجة في مساحة العمل هذه.",
646
+ "workspace.delete.title": "حذف مساحة العمل",
647
+ "workspace.delete.confirm": 'حذف مساحة العمل "{{name}}"؟',
648
+ "workspace.delete.button": "حذف مساحة العمل",
649
+ "workspace.reset.title": "إعادة تعيين مساحة العمل",
650
+ "workspace.reset.confirm": 'إعادة تعيين مساحة العمل "{{name}}"؟',
651
+ "workspace.reset.button": "إعادة تعيين مساحة العمل",
652
+ "workspace.reset.archived.none": "لن تتم أرشفة أي جلسات نشطة.",
653
+ "workspace.reset.archived.one": "ستتم أرشفة جلسة واحدة.",
654
+ "workspace.reset.archived.many": "ستتم أرشفة {{count}} جلسات.",
655
+ "workspace.reset.note": "سيؤدي هذا إلى إعادة تعيين مساحة العمل لتتطابق مع الفرع الافتراضي.",
656
+ }