From 789dd823b628893a5423eceb3af0d679947a015b Mon Sep 17 00:00:00 2001 From: efrilm Date: Mon, 8 Sep 2025 23:19:41 +0700 Subject: [PATCH] add indonesian lang --- .../layout/shared/LanguageDropdown.tsx | 8 +- src/configs/i18n.ts | 3 +- src/data/dictionaries/ar.json | 116 ------------------ src/data/dictionaries/fr.json | 116 ------------------ src/data/dictionaries/id.json | 116 ++++++++++++++++++ src/utils/getDictionary.ts | 3 +- 6 files changed, 121 insertions(+), 241 deletions(-) delete mode 100644 src/data/dictionaries/ar.json delete mode 100644 src/data/dictionaries/fr.json create mode 100644 src/data/dictionaries/id.json diff --git a/src/components/layout/shared/LanguageDropdown.tsx b/src/components/layout/shared/LanguageDropdown.tsx index ac7f343..9a01c13 100644 --- a/src/components/layout/shared/LanguageDropdown.tsx +++ b/src/components/layout/shared/LanguageDropdown.tsx @@ -43,12 +43,8 @@ const languageData: LanguageDataType[] = [ langName: 'English' }, { - langCode: 'fr', - langName: 'French' - }, - { - langCode: 'ar', - langName: 'Arabic' + langCode: 'id', + langName: 'Indonesian' } ] diff --git a/src/configs/i18n.ts b/src/configs/i18n.ts index 6dde940..7607f8a 100644 --- a/src/configs/i18n.ts +++ b/src/configs/i18n.ts @@ -1,9 +1,10 @@ export const i18n = { defaultLocale: 'en', - locales: ['en', 'fr', 'ar'], + locales: ['en', 'id'], langDirection: { en: 'ltr', fr: 'ltr', + id: 'ltr', ar: 'rtl' } } as const diff --git a/src/data/dictionaries/ar.json b/src/data/dictionaries/ar.json deleted file mode 100644 index 7e0b702..0000000 --- a/src/data/dictionaries/ar.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "navigation": { - "dashboards": "لوحات القيادة", - "analytics": "تحليلات", - "inventory": "تجزئة الكترونية", - "stock": "المخزون", - "academy": "أكاديمية", - "logistics": "اللوجستية", - "frontPages": "الصفحات الأولى", - "landing": "الهبوط", - "pricing": "التسعير", - "payment": "قسط", - "checkout": "الدفع", - "helpCenter": "مركز المساعدة", - "appsPages": "التطبيقات والصفحات", - "apps": "تطبيقات", - "dashboard": "لوحة القيادة", - "products": "منتجات", - "list": "قائمة", - "add": "يضيف", - "restock": "استرجاع", - "category": "فئة", - "overview": "نظرة عامة", - "profitloss": "الربح والخسارة", - "finance": "مالية", - "paymentMethods": "طرق الدفع", - "organization": "المنظمة", - "outlet": "مخزن", - "units": "وحدات", - "reports": "تقارير", - "ingredients": "مكونات", - "orders": "أوامر", - "details": "تفاصيل", - "customers": "العملاء", - "manageReviews": "إدارة المراجعات", - "referrals": "الإحالات", - "settings": "إعدادات", - "myCourses": "دوراتي", - "courseDetails": "تفاصيل الدورة", - "fleet": "أسطول", - "email": "البريد الإلكتروني", - "chat": "محادثة", - "calendar": "تقويم", - "kanban": "كانبان", - "invoice": "فاتورة", - "preview": "معاينة", - "edit": "يحرر", - "user": "المستعمل", - "view": "رأي", - "rolesPermissions": "الأدوار والأذونات", - "roles": "الأدوار", - "permissions": "أذونات", - "pages": "الصفحات", - "userProfile": "ملف تعريفي للمستخدم", - "accountSettings": "إعدادت الحساب", - "faq": "التعليمات", - "miscellaneous": "متفرقات", - "comingSoon": "قريبا", - "underMaintenance": "تحت الصيانة", - "pageNotFound404": "الصفحة غير موجودة - 404", - "notAuthorized401": "غير مصرح به - 401", - "authPages": "صفحات المصادقة", - "login": "تسجيل الدخول", - "loginV1": "تسجيل الدخول v1", - "loginV2": "تسجيل الدخول الإصدار 2", - "register": "يسجل", - "registerV1": "تسجيل الإصدار 1", - "registerV2": "تسجيل الإصدار 2", - "registerMultiSteps": "تسجيل متعدد الخطوات", - "verifyEmail": "التحقق من البريد الإلكتروني", - "verifyEmailV1": "التحقق من البريد الإلكتروني الإصدار 1", - "verifyEmailV2": "التحقق من البريد الإلكتروني الإصدار 2", - "forgotPassword": "هل نسيت كلمة السر", - "forgotPasswordV1": "نسيت كلمة المرور v1", - "forgotPasswordV2": "نسيت كلمة المرور v2", - "resetPassword": "إعادة تعيين كلمة المرور", - "resetPasswordV1": "إعادة تعيين كلمة المرور v1", - "resetPasswordV2": "إعادة تعيين كلمة المرور الإصدار 2", - "twoSteps": "خطوتين", - "twoStepsV1": "خطوتين v1", - "twoStepsV2": "خطوتان - الإصدار 2", - "wizardExamples": "أمثلة على المعالج", - "propertyListing": "قائمة الممتلكات", - "createDeal": "إنشاء صفقة", - "dialogExamples": "أمثلة الحوار", - "widgetExamples": "أمثلة القطعة", - "basic": "أساسي", - "advanced": "متقدم", - "statistics": "إحصائيات", - "actions": "أجراءات", - "formsAndTables": "النماذج والجداول", - "formLayouts": "تخطيطات النموذج", - "formValidation": "التحقق من صحة النموذج", - "formWizard": "معالج النماذج", - "reactTable": "جدول رد الفعل", - "formELements": "عناصر النماذج", - "muiTables": "جداول MUI", - "chartsMisc": "الرسوم البيانية ومتفرقات", - "charts": "الرسوم البيانية", - "recharts": "يعيد رسم الخرائط", - "apex": "ذروة", - "foundation": "مؤسسة", - "components": "عناصر", - "menuExamples": "أمثلة القائمة", - "raiseSupport": "رفع الدعم", - "documentation": "توثيق", - "others": "آحرون", - "itemWithBadge": "العنصر مع شارة", - "externalLink": "رابط خارجي", - "menuLevels": "مستويات القائمة", - "menuLevel2": "مستوى القائمة 2", - "menuLevel3": "مستوى القائمة 3", - "disabledMenu": "قائمة المعوقين", - "dailyReport": "تقرير يومي" - } -} diff --git a/src/data/dictionaries/fr.json b/src/data/dictionaries/fr.json deleted file mode 100644 index a0ab0a6..0000000 --- a/src/data/dictionaries/fr.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "navigation": { - "dashboards": "Tableaux de bord", - "analytics": "Analytique", - "inventory": "Inventaire", - "stock": "Stock", - "academy": "Académie", - "logistics": "Logistique", - "frontPages": "Premières pages", - "landing": "Atterrissage", - "pricing": "Tarifs", - "payment": "Paiement", - "checkout": "Vérifier", - "helpCenter": "Centre d'aide", - "appsPages": "Applications et pages", - "apps": "Apps", - "dashboard": "Tableau de bord", - "products": "Produits", - "list": "Liste", - "add": "Ajouter", - "restock": "Rapprocher", - "category": "Catégorie", - "overview": "Aperçu", - "profitloss": "Profit et perte", - "finance": "Finance", - "paymentMethods": "Méthodes de paiement", - "organization": "Organisation", - "outlet": "Point de vente", - "units": "Unites", - "reports": "Rapports", - "ingredients": "Ingrédients", - "orders": "Ordres", - "details": "Détails", - "customers": "Clientes", - "manageReviews": "Gérer les avis", - "referrals": "Références", - "settings": "Paramètres", - "myCourses": "Mes cours", - "courseDetails": "Détails du cours", - "fleet": "Flotte", - "email": "E-mail", - "chat": "chatte", - "calendar": "Calendrier", - "kanban": "Kanban", - "invoice": "Facture d'achat", - "preview": "Aperçu", - "edit": "Éditer", - "user": "Utilisateur", - "view": "Voir", - "rolesPermissions": "Rôles et autorisations", - "roles": "Les rôles", - "permissions": "Autorisations", - "pages": "Pages", - "userProfile": "Profil de l'utilisateur", - "accountSettings": "Paramètres du compte", - "faq": "FAQ", - "miscellaneous": "Divers", - "comingSoon": "À venir", - "underMaintenance": "En maintenance", - "pageNotFound404": "Page non trouvée - 404", - "notAuthorized401": "Non autorisé - 401", - "authPages": "Pages d'authentification", - "login": "Connexion", - "loginV1": "Connexion v1", - "loginV2": "Connexion v2", - "register": "S'inscrire", - "registerV1": "Enregistrer v1", - "registerV2": "Enregistrer v2", - "registerMultiSteps": "Enregistrer plusieurs étapes", - "verifyEmail": "Vérifier les courriels", - "verifyEmailV1": "Vérifier l'e-mail v1", - "verifyEmailV2": "Vérifier l'e-mail v2", - "forgotPassword": "Mot de passe oublié", - "forgotPasswordV1": "Mot de passe oublié v1", - "forgotPasswordV2": "Mot de passe oublié v2", - "resetPassword": "Réinitialiser le mot de passe", - "resetPasswordV1": "Réinitialiser le mot de passe v1", - "resetPasswordV2": "Réinitialiser le mot de passe v2", - "twoSteps": "Deux étapes", - "twoStepsV1": "Deux étapes v1", - "twoStepsV2": "Deux étapes v2", - "wizardExamples": "Exemples d'assistants", - "propertyListing": "Liste des biens", - "createDeal": "Créer un accord", - "dialogExamples": "Exemples de dialogue", - "widgetExamples": "Exemples de widgets", - "basic": "Basique", - "advanced": "Avancée", - "statistics": "Statistiques", - "actions": "Actions", - "formsAndTables": "Formulaires et tableaux", - "formLayouts": "Dispositions de formulaire", - "formValidation": "Validation du formulaire", - "formWizard": "Assistant de formulaire", - "reactTable": "Tableau de réaction", - "formELements": "Éléments de formulaire", - "muiTables": "Tableaux MUI", - "chartsMisc": "Graphiques & Divers", - "charts": "Graphiques", - "recharts": "Regraphiques", - "apex": "Sommet", - "foundation": "fondation", - "components": "Composants", - "menuExamples": "Exemples de menus", - "raiseSupport": "Augmenter le soutien", - "documentation": "Documentation", - "others": "Les autres", - "itemWithBadge": "Article avec badge", - "externalLink": "Lien Externe", - "menuLevels": "Niveaux de menus", - "menuLevel2": "Niveau menu 2", - "menuLevel3": "Niveau menu 3", - "disabledMenu": "Menu désactivé", - "dailyReport": "Rapport quotidien" - } -} diff --git a/src/data/dictionaries/id.json b/src/data/dictionaries/id.json new file mode 100644 index 0000000..e2fb3ff --- /dev/null +++ b/src/data/dictionaries/id.json @@ -0,0 +1,116 @@ +{ + "navigation": { + "dashboards": "Dasbor", + "analytics": "Analitik", + "inventory": "Inventaris", + "stock": "Stok", + "academy": "Akademi", + "logistics": "Logistik", + "frontPages": "Halaman Depan", + "landing": "Beranda", + "pricing": "Harga", + "payment": "Pembayaran", + "checkout": "Checkout", + "helpCenter": "Pusat Bantuan", + "appsPages": "Aplikasi & Halaman", + "apps": "Aplikasi", + "dashboard": "Dasbor", + "products": "Produk", + "list": "Daftar", + "add": "Tambah", + "restock": "Isi Ulang Stok", + "category": "Kategori", + "overview": "Ringkasan", + "profitloss": "Laba Rugi", + "units": "Unit", + "reports": "Laporan", + "finance": "Keuangan", + "paymentMethods": "Metode Pembayaran", + "organization": "Organisasi", + "outlet": "Outlet", + "ingredients": "Bahan", + "orders": "Pesanan", + "details": "Detail", + "customers": "Pelanggan", + "manageReviews": "Kelola Ulasan", + "referrals": "Rujukan", + "settings": "Pengaturan", + "myCourses": "Kursus Saya", + "courseDetails": "Detail Kursus", + "fleet": "Armada", + "email": "Email", + "chat": "Chat", + "calendar": "Kalender", + "kanban": "Kanban", + "invoice": "Faktur", + "preview": "Pratinjau", + "edit": "Edit", + "user": "Pengguna", + "view": "Lihat", + "rolesPermissions": "Peran & Izin", + "roles": "Peran", + "permissions": "Izin", + "pages": "Halaman", + "userProfile": "Profil Pengguna", + "accountSettings": "Pengaturan Akun", + "faq": "FAQ", + "miscellaneous": "Lain-lain", + "comingSoon": "Segera Hadir", + "underMaintenance": "Dalam Pemeliharaan", + "pageNotFound404": "Halaman Tidak Ditemukan - 404", + "notAuthorized401": "Tidak Diizinkan - 401", + "authPages": "Halaman Autentikasi", + "login": "Masuk", + "loginV1": "Masuk v1", + "loginV2": "Masuk v2", + "register": "Daftar", + "registerV1": "Daftar v1", + "registerV2": "Daftar v2", + "registerMultiSteps": "Daftar Multi-Langkah", + "verifyEmail": "Verifikasi Email", + "verifyEmailV1": "Verifikasi Email v1", + "verifyEmailV2": "Verifikasi Email v2", + "forgotPassword": "Lupa Kata Sandi", + "forgotPasswordV1": "Lupa Kata Sandi v1", + "forgotPasswordV2": "Lupa Kata Sandi v2", + "resetPassword": "Reset Kata Sandi", + "resetPasswordV1": "Reset Kata Sandi v1", + "resetPasswordV2": "Reset Kata Sandi v2", + "twoSteps": "Dua Langkah", + "twoStepsV1": "Dua Langkah v1", + "twoStepsV2": "Dua Langkah v2", + "wizardExamples": "Contoh Wizard", + "propertyListing": "Daftar Properti", + "createDeal": "Buat Penawaran", + "dialogExamples": "Contoh Dialog", + "widgetExamples": "Contoh Widget", + "basic": "Dasar", + "advanced": "Lanjutan", + "statistics": "Statistik", + "actions": "Aksi", + "formsAndTables": "Form & Tabel", + "formLayouts": "Layout Form", + "formValidation": "Validasi Form", + "formWizard": "Wizard Form", + "reactTable": "Tabel React", + "formELements": "Elemen Form", + "muiTables": "Tabel MUI", + "chartsMisc": "Grafik & Lain-lain", + "charts": "Grafik", + "recharts": "Recharts", + "apex": "Apex", + "foundation": "Fondasi", + "components": "Komponen", + "menuExamples": "Contoh Menu", + "raiseSupport": "Buat Tiket Dukungan", + "documentation": "Dokumentasi", + "others": "Lainnya", + "itemWithBadge": "Item dengan Badge", + "externalLink": "Link Eksternal", + "menuLevels": "Level Menu", + "menuLevel2": "Level Menu 2", + "menuLevel3": "Level Menu 3", + "disabledMenu": "Menu Nonaktif", + "dailyReport": "Laporan Harian" + } +} diff --git a/src/utils/getDictionary.ts b/src/utils/getDictionary.ts index caa8acd..6111d81 100644 --- a/src/utils/getDictionary.ts +++ b/src/utils/getDictionary.ts @@ -3,8 +3,7 @@ import type { Locale } from '@configs/i18n' const dictionaries = { en: () => import('@/data/dictionaries/en.json').then(module => module.default), - fr: () => import('@/data/dictionaries/fr.json').then(module => module.default), - ar: () => import('@/data/dictionaries/ar.json').then(module => module.default) + id: () => import('@/data/dictionaries/id.json').then(module => module.default) } export const getDictionary = async (locale: Locale) => dictionaries[locale]()