From 0067e77219754530b7a51b9b7f8dd481fc09c2e4 Mon Sep 17 00:00:00 2001 From: ZG089 <159061718+ZG089@users.noreply.github.com> Date: Tue, 12 May 2026 00:35:15 +0300 Subject: [PATCH] add: Arabic translation along with initial RTL layout support --- src/webroot/js/pages/pageLoader.js | 1 + .../js/pages/settings/minipages/language.html | 4 + src/webroot/js/preloader.js | 3 + src/webroot/lang/ar_EG.json | 86 +++++++++++++++++++ 4 files changed, 94 insertions(+) create mode 100644 src/webroot/lang/ar_EG.json diff --git a/src/webroot/js/pages/pageLoader.js b/src/webroot/js/pages/pageLoader.js index 102509a..f6c2cdd 100644 --- a/src/webroot/js/pages/pageLoader.js +++ b/src/webroot/js/pages/pageLoader.js @@ -574,6 +574,7 @@ export function getStrings(pageId, forceDefault = false) { export function setLanguage(langId) { localStorage.setItem(`/${moduleName}/language`, langId) + document.documentElement.dir = langId === 'ar_EG' ? 'rtl' : 'ltr' sufferedUpdate.length = 0 } diff --git a/src/webroot/js/pages/settings/minipages/language.html b/src/webroot/js/pages/settings/minipages/language.html index be825ab..91e1769 100644 --- a/src/webroot/js/pages/settings/minipages/language.html +++ b/src/webroot/js/pages/settings/minipages/language.html @@ -1,3 +1,7 @@ +
+ Arabic (العربية) +
+
English (United States)
diff --git a/src/webroot/js/preloader.js b/src/webroot/js/preloader.js index 28cda6f..b26b798 100644 --- a/src/webroot/js/preloader.js +++ b/src/webroot/js/preloader.js @@ -1,4 +1,7 @@ import { exec, toast, fullScreen } from './kernelsu.js' +const initialLang = localStorage.getItem('/TreatWheel/language') || 'en_US' +document.documentElement.dir = initialLang === 'ar_EG' ? 'rtl' : 'ltr' + const WebUIConfig = JSON.parse(localStorage.getItem('/TreatWheel/webui_config') || '{}') if (!WebUIConfig.disableFullscreen) fullScreen(true) diff --git a/src/webroot/lang/ar_EG.json b/src/webroot/lang/ar_EG.json new file mode 100644 index 0000000..5878e86 --- /dev/null +++ b/src/webroot/lang/ar_EG.json @@ -0,0 +1,86 @@ +{ + "langName": "Arabic (العربية)", + "pages": { + "home": { + "title": "الرئيسية", + "workingModes": { + "working": "يعمل ويقوم بالإخفاء", + "crashed": "توقف عن العمل أثناء الإخفاء", + "ignoring": "في وضع التجاهل", + "unknown": "غير قادر على التحديد", + "disabled": "معطل", + "incompatibleModules": "تم اكتشاف إضافات غير متوافقة: %s", + "ciBuild": "تم اكتشاف إصدار تجريبي. قد لا تعمل بعض الميزات كما هو متوقع." + }, + "version": "الإصدار", + "rootImpl": "تطبيق الروت", + "rootImpls": { + "multiple": "متعدد" + } + }, + "actions": { + "title": "الإجراءات", + "flags": { + "experimental": "تجريبي", + "futile": "غير مجدي" + }, + "ignoreMode": { + "title": "تجاهل كل شيء والجميع", + "description": "هذا الخيار سيجعل Treat Wheel معطلاً مؤقتًا. يمكن إعادة تمكينه دون إعادة التشغيل، لكن تمكينه يجعل جميع خيارات الإخفاء غير مفيدة حتى يتم تعطيله." + }, + "propSpoofing": { + "title": "تعطيل تزييف الخصائص (prop spoofing)", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن تزييف الخصائص الحساسة والخصائص المتعلقة بالرومات المخصصة. تتطلب إعادة تشغيل لتطبيق هذا التبديل." + }, + "gsiTraceHiding": { + "title": "تعطيل إخفاء آثار GSI", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن إخفاء آثار GSI." + }, + "zygoteMountInfoLeakFixing": { + "title": "تعطيل إصلاح تسريب mountinfo في Zygote", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن إصلاح التسريب، أي جعله كما هو متوقع في الأنظمة غير المروّتة، تسريب mountinfo الذي ينشئه Zygote. يتطلب أندرويد 11 أو أعلى." + }, + "mapsHiding": { + "title": "تعطيل إخفاء maps", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن إخفاء عمليات التعيين المشبوهة. هذا النوع من الإخفاء غير مجدي، لكنه يساعد في تجاوز بعض الاكتشافات." + }, + "ReVancedModuleMountsHiding": { + "title": "تعطيل إخفاء نقاط تركيب إضافات ReVanced", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن إخفاء نقاط التركيب التي تنشئها إضافات ReVanced بشكل عام. يجب أن تدعم إضافات ReVanced إضافة Treat Wheel صراحةً ليتمكن من فك تركيبها." + }, + "customFontLoading": { + "title": "تعطيل تحميل الخطوط المخصصة", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن تحميل الخطوط المخصصة من النظام." + }, + "denylistLogicInversion": { + "title": "تعطيل عكس منطق DenyList", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن عكس قائمة الرفض (DenyList)، بحيث يتم إخفاء الروت عن التطبيقات الموجودة في قائمة الرفض، بينما لن يتم إخفاؤه عن التطبيقات غير الموجودة فيها. بشكل مشابه لـ SuList في Magisk Kitsune عندما يكون هذا الخيار معطلًا." + }, + "moduleLoadingTracesHiding": { + "title": "تعطيل إخفاء آثار تحميل الإضافات", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن إخفاء الآثار التي تولدها بعض الإضافات أثناء تحميلها." + }, + "fridaTracesHiding": { + "title": "تعطيل إخفاء آثار Frida", + "description": "هذا الخيار سيجعل Treat Wheel يتوقف عن إخفاء آثار الحقن التي تولدها Frida." + } + }, + "settings": { + "title": "الإعدادات", + "language": { + "title": "تغيير اللغة", + "description": "تغيير لغة واجهة المستخدم (WebUI) إلى اللغة المحددة." + }, + "fullscreen": { + "title": "تعطيل وضع ملء الشاشة في واجهة المستخدم", + "description": "هذا الخيار سيجعل واجهة المستخدم (WebUI) لا تملأ الشاشة بأكملها." + }, + "moduleDevelopers": "مطورو الإضافة", + "WebUIDevelopers": "مطورو واجهة المستخدم", + "moduleLicense": "ترخيص الإضافة" + } + }, + "globals": { + "unknown": "غير معروف" + } +}