diff --git a/README.md b/README.md index 2ae20825..c37539e9 100644 --- a/README.md +++ b/README.md @@ -443,6 +443,7 @@ Dashy supports multiple languages and locales. When available, you're language s - 🇩🇪 **German**: `de` - Contributed by **[@Niklashere](https://github.com/Niklashere)** - 🇪🇸 **Spanish**: `es` - Contributed by **[@lu4t](https://github.com/lu4t)** - 🇸🇮 **Slovenian**: `sl` - Contributed by **[@UrekD](https://github.com/UrekD)** +- 🇦🇪 **Arabic**: `ar` #### Add your Language I would love for Dashy to be available to everyone, without language being a barrier to entry for non-native English speakers. If you have a few minutes to sapir, you're help with translating it would be very much appreciated. diff --git a/src/assets/locales/ar.json b/src/assets/locales/ar.json new file mode 100644 index 00000000..78e623a9 --- /dev/null +++ b/src/assets/locales/ar.json @@ -0,0 +1,172 @@ +{ + "home": { + "no-results": "لا نتائج للبحث", + "no-data": "لم يتم تكوين بيانات" + }, + "search": { + "search-label": "بحث", + "search-placeholder": "ابدأ الكتابة للتصفية", + "clear-search-tooltip": "مسح البحث", + "enter-to-search-web": "اضغط على Enter للبحث في الويب" + }, + "login": { + "title": "داشي", + "username-label": "اسم المستخدم", + "password-label": "كلمه السر", + "login-button": "تسجيل الدخول", + "remember-me-label": "تذكرني ل", + "remember-me-never": "أبدا", + "remember-me-hour": "4 ساعات", + "remember-me-day": "يوم 1", + "remember-me-week": "أسبوع 1", + "error-missing-username": "اسم المستخدم مفقود", + "error-missing-password": "كلمة المرور مفقودة", + "error-incorrect-username": "لم يتم العثور على المستخدم", + "error-incorrect-password": "كلمة سر خاطئة", + "success-message": "تسجيل الدخول...", + "logout-message": "تسجيل الخروج", + "already-logged-in-title": "تم تسجيل الدخول بالفعل", + "already-logged-in-text": "لقد قمت بتسجيل الدخول باعتبارك", + "proceed-to-dashboard": "انتقل إلى لوحة القيادة", + "log-out-button": "تسجيل خروج", + "proceed-guest-button": "المضي قدما كضيف" + }, + "config": { + "main-tab": "القائمة الرئيسية", + "view-config-tab": "مشاهدة ملف Config", + "edit-config-tab": "تحرير التكوين", + "custom-css-tab": "الأنماط المخصصة", + "heading": "خيارات الإعداد", + "download-config-button": "تنزيل Config", + "edit-config-button": "تحرير التكوين", + "edit-css-button": "تحرير CSS مخصص", + "cloud-sync-button": "قم بتمكين Cloud Sync", + "edit-cloud-sync-button": "تحرير Cloud Sync", + "rebuild-app-button": "إعادة إنشاء التطبيق", + "change-language-button": "تغيير لغة التطبيق", + "reset-settings-button": "إعادة ضبط الإعدادات المحلية", + "app-info-button": "معلومات التطبيق", + "backup-note": "يوصى بعمل نسخة احتياطية من التكوين الخاص بك قبل إجراء التغييرات.", + "reset-config-msg-l1": "سيؤدي هذا إلى إزالة جميع إعدادات المستخدم من التخزين المحلي ، لكنه لن يؤثر على ملف \"conf.yml\" الخاص بك.", + "reset-config-msg-l2": "يجب عليك أولاً الاحتفاظ بنسخة احتياطية من أي تغييرات أجريتها محليًا ، إذا كنت ترغب في استخدامها في المستقبل.", + "reset-config-msg-l3": "هل انت متأكد انك تريد المتابعة؟", + "data-cleared-msg": "تم مسح البيانات بنجاح", + "actions-label": "أجراءات", + "copy-config-label": "نسخ التكوين", + "data-copied-msg": "تم نسخ التكوين إلى الحافظة", + "reset-config-label": "إعادة التهيئة", + "css-save-btn": "حفظ التغييرات", + "css-note-label": "ملحوظة", + "css-note-l1": "ستحتاج إلى تحديث الصفحة حتى تصبح التغييرات سارية المفعول.", + "css-note-l2": "يتم تخزين تجاوزات الأنماط محليًا فقط ، لذا يوصى بعمل نسخة من CSS الخاص بك.", + "css-note-l3": "لإزالة جميع الأنماط المخصصة ، احذف المحتويات واضغط على حفظ التغييرات" + }, + "alternate-views": { + "alternate-view-heading": "عرض التبديل", + "default": "تقصير", + "workspace": "مساحة العمل", + "minimal": "الحد الأدنى" + }, + "settings": { + "theme-label": "سمة", + "layout-label": "تخطيط", + "layout-auto": "آلي", + "layout-horizontal": "أفقي", + "layout-vertical": "عمودي", + "item-size-label": "حجم الصنف", + "item-size-small": "صغير", + "item-size-medium": "واسطة", + "item-size-large": "كبير", + "config-launcher-label": "التكوين", + "config-launcher-tooltip": "تحديث التكوين", + "sign-out-tooltip": "خروج", + "sign-in-tooltip": "تسجيل دخول", + "sign-in-welcome": "مرحبًا {username}!" + }, + "updates": { + "app-version-note": "نسخة متهورة", + "up-to-date": "حتى الآن", + "out-of-date": "التحديث متاح", + "unsupported-version-l1": "أنت تستخدم إصدارًا غير مدعوم من Dashy", + "unsupported-version-l2": "للحصول على أفضل تجربة وأحدث تصحيحات الأمان ، يرجى التحديث إلى" + }, + "language-switcher": { + "title": "تغيير لغة التطبيق", + "dropdown-label": "اختر لغة", + "save-button": "يحفظ", + "success-msg": "تم تحديث اللغة إلى" + }, + "theme-maker": { + "title": "مكون الموضوع", + "export-button": "تصدير المتغيرات المخصصة", + "reset-button": "إعادة تعيين الأنماط لـ", + "show-all-button": "إظهار كافة المتغيرات", + "save-button": "يحفظ", + "cancel-button": "يلغي", + "saved-toast": "{theme} تم التحديث بنجاح", + "copied-toast": "تم نسخ بيانات السمة لـ {theme} إلى الحافظة", + "reset-toast": "تمت إزالة الألوان المخصصة لـ {theme}" + }, + "config-editor": { + "save-location-label": "حفظ الموقع", + "location-local-label": "تطبيق محليا", + "location-disk-label": "اكتب التغييرات في ملف التكوين", + "save-button": "حفظ التغييرات", + "valid-label": "التكوين صالح", + "status-success-msg": "اكتملت المهمة", + "status-fail-msg": "فشلت المهمة", + "success-msg-disk": "تمت كتابة ملف التكوين على القرص بنجاح", + "success-msg-local": "تم حفظ التغييرات المحلية بنجاح", + "success-note-l1": "يجب إعادة إنشاء التطبيق تلقائيًا.", + "success-note-l2": "قد يستغرق هذا ما يصل إلى دقيقة.", + "success-note-l3": "ستحتاج إلى تحديث الصفحة لتصبح التغييرات سارية المفعول.", + "error-msg-save-mode": "الرجاء تحديد \"وضع الحفظ\": محلي أو ملف", + "error-msg-cannot-save": "حدث خطأ أثناء حفظ التكوين", + "error-msg-bad-json": "خطأ في JSON ، ربما يكون غير صحيح", + "warning-msg-validation": "تحذير التحقق", + "not-admin-note": "لا يمكنك الكتابة التغيير إلى القرص ، لأنك لم تقم بتسجيل الدخول كمسؤول" + }, + "app-rebuild": { + "title": "إعادة إنشاء التطبيق", + "rebuild-note-l1": "إعادة بناء مطلوب حتى تصبح التغييرات المكتوبة في ملف conf.yml سارية المفعول.", + "rebuild-note-l2": "يجب أن يحدث هذا تلقائيًا ، ولكن إذا لم يحدث ذلك ، فيمكنك تشغيله يدويًا هنا.", + "rebuild-note-l3": "هذا ليس مطلوبًا للتعديلات المخزنة محليًا.", + "rebuild-button": "ابدأ البناء", + "rebuilding-status-1": "بناء...", + "rebuilding-status-2": "قد يستغرق هذا بضع دقائق", + "error-permission": "ليس لديك إذن لبدء هذا الإجراء", + "success-msg": "اكتمل البناء بنجاح", + "fail-msg": "فشلت عملية البناء", + "reload-note": "يلزم الآن إعادة تحميل الصفحة حتى تدخل التغييرات حيز التنفيذ", + "reload-button": "إعادة تحميل الصفحة" + }, + "cloud-sync": { + "title": "النسخ الاحتياطي والاستعادة السحابية", + "intro-l1": "تعد ميزة النسخ الاحتياطي والاستعادة السحابية ميزة اختيارية ، تتيح لك تحميل التهيئة الخاصة بك على الإنترنت ، ثم استعادتها على أي جهاز أو مثيل آخر لـ Dashy.", + "intro-l2": "جميع البيانات مشفرة بالكامل من طرف إلى طرف باستخدام AES ، باستخدام كلمة مرورك كمفتاح.", + "intro-l3": "لمزيد من المعلومات ، يرجى الاطلاع على", + "backup-title-setup": "أصنع نسخة إحتياطية", + "backup-title-update": "تحديث النسخ الاحتياطي", + "password-label-setup": "اختر كلمة مرور", + "password-label-update": "ادخل رقمك السري", + "backup-button-setup": "دعم", + "backup-button-update": "تحديث النسخ الاحتياطي", + "backup-id-label": "معرف النسخ الاحتياطي الخاص بك", + "backup-id-note": "يستخدم هذا للاستعادة من النسخ الاحتياطية لاحقًا. لذا احتفظ بها ، جنبًا إلى جنب مع كلمة مرورك في مكان آمن.", + "restore-title": "استعادة نسخة احتياطية", + "restore-id-label": "استعادة الهوية", + "restore-password-label": "كلمه السر", + "restore-button": "يعيد", + "backup-missing-password": "كلمة المرور مفقودة", + "backup-error-unknown": "غير قادر على معالجة الطلب", + "backup-error-password": "كلمة سر خاطئة. الرجاء إدخال كلمة المرور الحالية الخاصة بك.", + "backup-success-msg": "تم بنجاح", + "restore-success-msg": "تمت استعادة التكوين بنجاح" + }, + "menu": { + "sametab": "فتح في علامة التبويب الحالية", + "newtab": "فتح في علامة تبويب جديدة", + "modal": "فتح في Pop-Up Modal", + "workspace": "فتح في عرض مساحة العمل" + } +} diff --git a/src/utils/languages.js b/src/utils/languages.js index d6d32c32..0716f0ff 100644 --- a/src/utils/languages.js +++ b/src/utils/languages.js @@ -6,6 +6,7 @@ import fr from '@/assets/locales/fr.json'; import sl from '@/assets/locales/sl.json'; import es from '@/assets/locales/es.json'; import zhCN from '@/assets/locales/zh-CN.json'; +import ar from '@/assets/locales/ar.json'; // Language data - Next register your language by adding it to this list export const languages = [ @@ -51,6 +52,12 @@ export const languages = [ locale: zhCN, flag: '🇨🇳', }, + { + name: 'العربية', + code: 'ar', + locale: ar, + flag: '🇦🇪', + }, ]; /**