Skip to content

Commit bfed966

Browse files
Feature/arabic translation (#4916) (#5006)
Co-authored-by: arab-future-academy <[email protected]>
1 parent d903891 commit bfed966

File tree

8 files changed

+11022
-4
lines changed

8 files changed

+11022
-4
lines changed

.i18nrc.cjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ module.exports = defineConfig({
99
entry: 'src/locales/en',
1010
entryLocale: 'en',
1111
output: 'src/locales',
12-
outputLocales: ['zh', 'zh-TW', 'ru', 'ja', 'ko', 'fr', 'es'],
12+
outputLocales: ['zh', 'zh-TW', 'ru', 'ja', 'ko', 'fr', 'es', 'ar'],
1313
reference: `Special names to keep untranslated: flux, photomaker, clip, vae, cfg, stable audio, stable cascade, stable zero, controlnet, lora, HiDream.
1414
'latent' is the short form of 'latent space'.
1515
'mask' is in the context of image processing.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ The development of successive minor versions overlaps. For example, while versio
7575
<summary>v1.5: Native translation (i18n)</summary>
7676

7777
ComfyUI now includes built-in translation support, replacing the need for third-party translation extensions. Select your language
78-
in `Comfy > Locale > Language` to translate the interface into English, Chinese (Simplified), Russian, Japanese, or Korean. This native
78+
in `Comfy > Locale > Language` to translate the interface into English, Chinese (Simplified), Russian, Japanese, Korean, or Arabic. This native
7979
implementation offers better performance, reliability, and maintainability compared to previous solutions.<br>
8080

8181
More details available here: https://blog.comfy.org/p/native-localization-support-i18n

src/constants/coreSettings.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,8 @@ export const CORE_SETTINGS: SettingParams[] = [
300300
{ value: 'ja', text: '日本語' },
301301
{ value: 'ko', text: '한국어' },
302302
{ value: 'fr', text: 'Français' },
303-
{ value: 'es', text: 'Español' }
303+
{ value: 'es', text: 'Español' },
304+
{ value: 'ar', text: 'عربي' }
304305
],
305306
defaultValue: () => navigator.language.split('-')[0] || 'en'
306307
},

src/i18n.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
import { createI18n } from 'vue-i18n'
22

3+
import arCommands from './locales/ar/commands.json'
4+
import ar from './locales/ar/main.json'
5+
import arNodes from './locales/ar/nodeDefs.json'
6+
import arSettings from './locales/ar/settings.json'
37
import enCommands from './locales/en/commands.json'
48
import en from './locales/en/main.json'
59
import enNodes from './locales/en/nodeDefs.json'
@@ -50,7 +54,8 @@ const messages = {
5054
ja: buildLocale(ja, jaNodes, jaCommands, jaSettings),
5155
ko: buildLocale(ko, koNodes, koCommands, koSettings),
5256
fr: buildLocale(fr, frNodes, frCommands, frSettings),
53-
es: buildLocale(es, esNodes, esCommands, esSettings)
57+
es: buildLocale(es, esNodes, esCommands, esSettings),
58+
ar: buildLocale(ar, arNodes, arCommands, arSettings)
5459
}
5560

5661
export const i18n = createI18n({

src/locales/ar/commands.json

Lines changed: 270 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,270 @@
1+
{
2+
"Comfy-Desktop_CheckForUpdates": {
3+
"label": "التحقق من التحديثات"
4+
},
5+
"Comfy-Desktop_Folders_OpenCustomNodesFolder": {
6+
"label": "فتح مجلد العقد المخصصة"
7+
},
8+
"Comfy-Desktop_Folders_OpenInputsFolder": {
9+
"label": "فتح مجلد المدخلات"
10+
},
11+
"Comfy-Desktop_Folders_OpenLogsFolder": {
12+
"label": "فتح مجلد السجلات"
13+
},
14+
"Comfy-Desktop_Folders_OpenModelConfig": {
15+
"label": "فتح extra_model_paths.yaml"
16+
},
17+
"Comfy-Desktop_Folders_OpenModelsFolder": {
18+
"label": "فتح مجلد النماذج"
19+
},
20+
"Comfy-Desktop_Folders_OpenOutputsFolder": {
21+
"label": "فتح مجلد المخرجات"
22+
},
23+
"Comfy-Desktop_OpenDevTools": {
24+
"label": "فتح أدوات المطور"
25+
},
26+
"Comfy-Desktop_OpenUserGuide": {
27+
"label": "دليل المستخدم لسطح المكتب"
28+
},
29+
"Comfy-Desktop_Quit": {
30+
"label": "خروج"
31+
},
32+
"Comfy-Desktop_Reinstall": {
33+
"label": "إعادة التثبيت"
34+
},
35+
"Comfy-Desktop_Restart": {
36+
"label": "إعادة التشغيل"
37+
},
38+
"Comfy_3DViewer_Open3DViewer": {
39+
"label": "فتح عارض ثلاثي الأبعاد (بيتا) للعقدة المحددة"
40+
},
41+
"Comfy_BrowseTemplates": {
42+
"label": "تصفح القوالب"
43+
},
44+
"Comfy_Canvas_AddEditModelStep": {
45+
"label": "إضافة خطوة تحرير النموذج"
46+
},
47+
"Comfy_Canvas_DeleteSelectedItems": {
48+
"label": "حذف العناصر المحددة"
49+
},
50+
"Comfy_Canvas_FitView": {
51+
"label": "تعديل العرض ليناسب العقد المحددة"
52+
},
53+
"Comfy_Canvas_MoveSelectedNodes_Down": {
54+
"label": "تحريك العقد المحددة للأسفل"
55+
},
56+
"Comfy_Canvas_MoveSelectedNodes_Left": {
57+
"label": "تحريك العقد المحددة لليسار"
58+
},
59+
"Comfy_Canvas_MoveSelectedNodes_Right": {
60+
"label": "تحريك العقد المحددة لليمين"
61+
},
62+
"Comfy_Canvas_MoveSelectedNodes_Up": {
63+
"label": "تحريك العقد المحددة للأعلى"
64+
},
65+
"Comfy_Canvas_ResetView": {
66+
"label": "إعادة تعيين العرض"
67+
},
68+
"Comfy_Canvas_Resize": {
69+
"label": "تغيير حجم العقد المحددة"
70+
},
71+
"Comfy_Canvas_ToggleLinkVisibility": {
72+
"label": "تبديل رؤية الروابط في اللوحة"
73+
},
74+
"Comfy_Canvas_ToggleLock": {
75+
"label": "تبديل القفل في اللوحة"
76+
},
77+
"Comfy_Canvas_ToggleMinimap": {
78+
"label": "تبديل الخريطة المصغرة في اللوحة"
79+
},
80+
"Comfy_Canvas_ToggleSelected_Pin": {
81+
"label": "تثبيت/إلغاء تثبيت العناصر المحددة"
82+
},
83+
"Comfy_Canvas_ToggleSelectedNodes_Bypass": {
84+
"label": "تجاوز/إلغاء تجاوز العقد المحددة"
85+
},
86+
"Comfy_Canvas_ToggleSelectedNodes_Collapse": {
87+
"label": "طي/توسيع العقد المحددة"
88+
},
89+
"Comfy_Canvas_ToggleSelectedNodes_Mute": {
90+
"label": "كتم/إلغاء كتم العقد المحددة"
91+
},
92+
"Comfy_Canvas_ToggleSelectedNodes_Pin": {
93+
"label": "تثبيت/إلغاء تثبيت العقد المحددة"
94+
},
95+
"Comfy_Canvas_ZoomIn": {
96+
"label": "تكبير"
97+
},
98+
"Comfy_Canvas_ZoomOut": {
99+
"label": "تصغير"
100+
},
101+
"Comfy_ClearPendingTasks": {
102+
"label": "مسح المهام المعلقة"
103+
},
104+
"Comfy_ClearWorkflow": {
105+
"label": "مسح سير العمل"
106+
},
107+
"Comfy_ContactSupport": {
108+
"label": "الاتصال بالدعم"
109+
},
110+
"Comfy_DuplicateWorkflow": {
111+
"label": "تكرار سير العمل الحالي"
112+
},
113+
"Comfy_ExportWorkflow": {
114+
"label": "تصدير سير العمل"
115+
},
116+
"Comfy_ExportWorkflowAPI": {
117+
"label": "تصدير سير العمل (تنسيق API)"
118+
},
119+
"Comfy_Feedback": {
120+
"label": "إرسال ملاحظات"
121+
},
122+
"Comfy_Graph_ConvertToSubgraph": {
123+
"label": "تحويل التحديد إلى رسم فرعي"
124+
},
125+
"Comfy_Graph_FitGroupToContents": {
126+
"label": "ضبط المجموعة على المحتويات"
127+
},
128+
"Comfy_Graph_GroupSelectedNodes": {
129+
"label": "تجميع العقد المحددة"
130+
},
131+
"Comfy_GroupNode_ConvertSelectedNodesToGroupNode": {
132+
"label": "تحويل العقد المحددة إلى عقدة مجموعة"
133+
},
134+
"Comfy_GroupNode_ManageGroupNodes": {
135+
"label": "إدارة عقد المجموعات"
136+
},
137+
"Comfy_GroupNode_UngroupSelectedGroupNodes": {
138+
"label": "إلغاء تجميع عقد المجموعات المحددة"
139+
},
140+
"Comfy_Help_AboutComfyUI": {
141+
"label": "حول ComfyUI"
142+
},
143+
"Comfy_Help_OpenComfyOrgDiscord": {
144+
"label": "فتح خادم Comfy-Org على Discord"
145+
},
146+
"Comfy_Help_OpenComfyUIDocs": {
147+
"label": "فتح مستندات ComfyUI"
148+
},
149+
"Comfy_Help_OpenComfyUIForum": {
150+
"label": "فتح منتدى ComfyUI"
151+
},
152+
"Comfy_Help_OpenComfyUIIssues": {
153+
"label": "فتح مشكلات ComfyUI"
154+
},
155+
"Comfy_Interrupt": {
156+
"label": "إيقاف مؤقت"
157+
},
158+
"Comfy_LoadDefaultWorkflow": {
159+
"label": "تحميل سير العمل الافتراضي"
160+
},
161+
"Comfy_Manager_CustomNodesManager": {
162+
"label": "تبديل مدير العقد المخصصة"
163+
},
164+
"Comfy_Manager_ToggleManagerProgressDialog": {
165+
"label": "تبديل شريط تقدم مدير العقد المخصصة"
166+
},
167+
"Comfy_MaskEditor_BrushSize_Decrease": {
168+
"label": "تقليل حجم الفرشاة في محرر القناع"
169+
},
170+
"Comfy_MaskEditor_BrushSize_Increase": {
171+
"label": "زيادة حجم الفرشاة في محرر القناع"
172+
},
173+
"Comfy_MaskEditor_OpenMaskEditor": {
174+
"label": "فتح محرر القناع للعقدة المحددة"
175+
},
176+
"Comfy_NewBlankWorkflow": {
177+
"label": "سير عمل جديد فارغ"
178+
},
179+
"Comfy_OpenClipspace": {
180+
"label": "Clipspace"
181+
},
182+
"Comfy_OpenWorkflow": {
183+
"label": "فتح سير عمل"
184+
},
185+
"Comfy_QueuePrompt": {
186+
"label": "إضافة الأمر إلى قائمة الانتظار"
187+
},
188+
"Comfy_QueuePromptFront": {
189+
"label": "إضافة الأمر إلى مقدمة قائمة الانتظار"
190+
},
191+
"Comfy_QueueSelectedOutputNodes": {
192+
"label": "إدراج عقد الإخراج المحددة في قائمة الانتظار"
193+
},
194+
"Comfy_Redo": {
195+
"label": "إعادة"
196+
},
197+
"Comfy_RefreshNodeDefinitions": {
198+
"label": "تحديث تعريفات العقد"
199+
},
200+
"Comfy_SaveWorkflow": {
201+
"label": "حفظ سير العمل"
202+
},
203+
"Comfy_SaveWorkflowAs": {
204+
"label": "حفظ سير العمل باسم"
205+
},
206+
"Comfy_ShowSettingsDialog": {
207+
"label": "عرض نافذة الإعدادات"
208+
},
209+
"Comfy_ToggleTheme": {
210+
"label": "تبديل النمط (فاتح/داكن)"
211+
},
212+
"Comfy_Undo": {
213+
"label": "تراجع"
214+
},
215+
"Comfy_User_OpenSignInDialog": {
216+
"label": "فتح نافذة تسجيل الدخول"
217+
},
218+
"Comfy_User_SignOut": {
219+
"label": "تسجيل الخروج"
220+
},
221+
"Workspace_CloseWorkflow": {
222+
"label": "إغلاق سير العمل الحالي"
223+
},
224+
"Workspace_NextOpenedWorkflow": {
225+
"label": "سير العمل التالي المفتوح"
226+
},
227+
"Workspace_PreviousOpenedWorkflow": {
228+
"label": "سير العمل السابق المفتوح"
229+
},
230+
"Workspace_SearchBox_Toggle": {
231+
"label": "تبديل مربع البحث"
232+
},
233+
"Workspace_ToggleBottomPanel": {
234+
"label": "تبديل اللوحة السفلية"
235+
},
236+
"Workspace_ToggleBottomPanel_Shortcuts": {
237+
"label": "عرض مربع حوار اختصارات لوحة المفاتيح"
238+
},
239+
"Workspace_ToggleBottomPanelTab_command-terminal": {
240+
"label": "تبديل لوحة الطرفية السفلية"
241+
},
242+
"Workspace_ToggleBottomPanelTab_logs-terminal": {
243+
"label": "تبديل لوحة السجلات السفلية"
244+
},
245+
"Workspace_ToggleBottomPanelTab_shortcuts-essentials": {
246+
"label": "تبديل اللوحة السفلية الأساسية"
247+
},
248+
"Workspace_ToggleBottomPanelTab_shortcuts-view-controls": {
249+
"label": "تبديل لوحة تحكم العرض السفلية"
250+
},
251+
"Workspace_ToggleFocusMode": {
252+
"label": "تبديل وضع التركيز"
253+
},
254+
"Workspace_ToggleSidebarTab_model-library": {
255+
"label": "تبديل الشريط الجانبي لمكتبة النماذج",
256+
"tooltip": "مكتبة النماذج"
257+
},
258+
"Workspace_ToggleSidebarTab_node-library": {
259+
"label": "تبديل الشريط الجانبي لمكتبة العقد",
260+
"tooltip": "مكتبة العقد"
261+
},
262+
"Workspace_ToggleSidebarTab_queue": {
263+
"label": "تبديل الشريط الجانبي لقائمة الانتظار",
264+
"tooltip": "قائمة الانتظار"
265+
},
266+
"Workspace_ToggleSidebarTab_workflows": {
267+
"label": "تبديل الشريط الجانبي لسير العمل",
268+
"tooltip": "سير العمل"
269+
}
270+
}

0 commit comments

Comments
 (0)