feat: Add i18n with 7 languages (DE, EN, ES, FR, AR, RU, PL)
- Added vue-i18n with language switcher in header - Flag icons with language codes dropdown - RTL support for Arabic - Translated all navigation, auth, and module labels - Language preference saved to localStorage
This commit is contained in:
434
src/locales/ar.ts
Normal file
434
src/locales/ar.ts
Normal file
@@ -0,0 +1,434 @@
|
||||
export default {
|
||||
// General
|
||||
app: {
|
||||
name: 'SeCu',
|
||||
title: 'إدارة الموظفين',
|
||||
loading: 'جاري التحميل...',
|
||||
save: 'حفظ',
|
||||
cancel: 'إلغاء',
|
||||
delete: 'حذف',
|
||||
edit: 'تعديل',
|
||||
add: 'إضافة',
|
||||
search: 'بحث',
|
||||
filter: 'تصفية',
|
||||
actions: 'إجراءات',
|
||||
close: 'إغلاق',
|
||||
confirm: 'تأكيد',
|
||||
yes: 'نعم',
|
||||
no: 'لا',
|
||||
back: 'رجوع',
|
||||
next: 'التالي',
|
||||
submit: 'إرسال',
|
||||
reset: 'إعادة تعيين',
|
||||
export: 'تصدير',
|
||||
import: 'استيراد',
|
||||
download: 'تحميل',
|
||||
upload: 'رفع',
|
||||
all: 'الكل',
|
||||
none: 'لا شيء',
|
||||
status: 'الحالة',
|
||||
date: 'التاريخ',
|
||||
time: 'الوقت',
|
||||
from: 'من',
|
||||
to: 'إلى',
|
||||
total: 'المجموع',
|
||||
details: 'التفاصيل',
|
||||
description: 'الوصف',
|
||||
notes: 'ملاحظات',
|
||||
created: 'تم الإنشاء',
|
||||
updated: 'تم التحديث',
|
||||
},
|
||||
|
||||
// Auth
|
||||
auth: {
|
||||
login: 'تسجيل الدخول',
|
||||
logout: 'تسجيل الخروج',
|
||||
register: 'التسجيل',
|
||||
email: 'البريد الإلكتروني',
|
||||
password: 'كلمة المرور',
|
||||
confirmPassword: 'تأكيد كلمة المرور',
|
||||
forgotPassword: 'نسيت كلمة المرور؟',
|
||||
rememberMe: 'تذكرني',
|
||||
welcomeBack: 'مرحباً بعودتك',
|
||||
loginToContinue: 'سجل الدخول للمتابعة',
|
||||
noAccount: 'ليس لديك حساب؟',
|
||||
hasAccount: 'لديك حساب بالفعل؟',
|
||||
createOrg: 'إنشاء منظمة',
|
||||
orgName: 'اسم الشركة',
|
||||
firstName: 'الاسم الأول',
|
||||
lastName: 'اسم العائلة',
|
||||
},
|
||||
|
||||
// Navigation
|
||||
nav: {
|
||||
dashboard: 'لوحة التحكم',
|
||||
orders: 'الطلبات',
|
||||
users: 'الموظفون',
|
||||
shifts: 'جدولة المناوبات',
|
||||
availability: 'التوفر',
|
||||
timesheets: 'جداول الدوام',
|
||||
qualifications: 'المؤهلات',
|
||||
objects: 'المواقع',
|
||||
patrols: 'الدوريات',
|
||||
incidents: 'الحوادث',
|
||||
documents: 'المستندات',
|
||||
vehicles: 'المركبات',
|
||||
customers: 'العملاء',
|
||||
billing: 'الفواتير',
|
||||
modules: 'الوحدات',
|
||||
settings: 'الإعدادات',
|
||||
help: 'المساعدة',
|
||||
partnerships: 'الشراكات',
|
||||
},
|
||||
|
||||
// Dashboard
|
||||
dashboard: {
|
||||
welcome: 'مرحباً',
|
||||
overview: 'نظرة عامة',
|
||||
todayOrders: 'طلبات اليوم',
|
||||
activeEmployees: 'الموظفون النشطون',
|
||||
openIncidents: 'الحوادث المفتوحة',
|
||||
pendingTimesheets: 'جداول الدوام المعلقة',
|
||||
recentActivity: 'النشاط الأخير',
|
||||
upcomingShifts: 'المناوبات القادمة',
|
||||
expiringQualifications: 'المؤهلات المنتهية قريباً',
|
||||
quickActions: 'إجراءات سريعة',
|
||||
},
|
||||
|
||||
// Orders
|
||||
orders: {
|
||||
title: 'الطلبات',
|
||||
new: 'طلب جديد',
|
||||
orderNumber: 'رقم الطلب',
|
||||
client: 'العميل',
|
||||
location: 'الموقع',
|
||||
startDate: 'تاريخ البدء',
|
||||
endDate: 'تاريخ الانتهاء',
|
||||
assignedTo: 'مُعين إلى',
|
||||
priority: 'الأولوية',
|
||||
priorities: {
|
||||
low: 'منخفضة',
|
||||
medium: 'متوسطة',
|
||||
high: 'عالية',
|
||||
urgent: 'عاجلة',
|
||||
},
|
||||
statuses: {
|
||||
draft: 'مسودة',
|
||||
scheduled: 'مجدول',
|
||||
active: 'نشط',
|
||||
completed: 'مكتمل',
|
||||
cancelled: 'ملغي',
|
||||
},
|
||||
},
|
||||
|
||||
// Users
|
||||
users: {
|
||||
title: 'الموظفون',
|
||||
new: 'موظف جديد',
|
||||
employee: 'موظف',
|
||||
employees: 'الموظفون',
|
||||
role: 'الدور',
|
||||
roles: {
|
||||
chef: 'مدير',
|
||||
disponent: 'منسق',
|
||||
mitarbeiter: 'موظف',
|
||||
},
|
||||
phone: 'الهاتف',
|
||||
address: 'العنوان',
|
||||
hireDate: 'تاريخ التوظيف',
|
||||
active: 'نشط',
|
||||
inactive: 'غير نشط',
|
||||
},
|
||||
|
||||
// Shifts
|
||||
shifts: {
|
||||
title: 'جدولة المناوبات',
|
||||
new: 'مناوبة جديدة',
|
||||
shift: 'مناوبة',
|
||||
shiftPlan: 'خطة المناوبات',
|
||||
morning: 'مناوبة صباحية',
|
||||
afternoon: 'مناوبة مسائية',
|
||||
night: 'مناوبة ليلية',
|
||||
startTime: 'وقت البدء',
|
||||
endTime: 'وقت الانتهاء',
|
||||
break: 'استراحة',
|
||||
assigned: 'مُعين',
|
||||
unassigned: 'غير مُعين',
|
||||
swapRequest: 'طلب تبديل',
|
||||
approve: 'موافقة',
|
||||
reject: 'رفض',
|
||||
},
|
||||
|
||||
// Availability
|
||||
availability: {
|
||||
title: 'التوفر',
|
||||
available: 'متاح',
|
||||
unavailable: 'غير متاح',
|
||||
partiallyAvailable: 'متاح جزئياً',
|
||||
setAvailability: 'تحديد التوفر',
|
||||
reason: 'السبب',
|
||||
vacation: 'إجازة',
|
||||
sick: 'مرض',
|
||||
training: 'تدريب',
|
||||
other: 'أخرى',
|
||||
},
|
||||
|
||||
// Timesheets
|
||||
timesheets: {
|
||||
title: 'جداول الدوام',
|
||||
new: 'إدخال جديد',
|
||||
hours: 'ساعات',
|
||||
totalHours: 'إجمالي الساعات',
|
||||
workDate: 'يوم العمل',
|
||||
checkIn: 'تسجيل الحضور',
|
||||
checkOut: 'تسجيل الانصراف',
|
||||
breakTime: 'وقت الاستراحة',
|
||||
overtime: 'ساعات إضافية',
|
||||
upload: 'رفع جدول الدوام',
|
||||
statuses: {
|
||||
pending: 'معلق',
|
||||
approved: 'مُوافق عليه',
|
||||
rejected: 'مرفوض',
|
||||
},
|
||||
},
|
||||
|
||||
// Qualifications
|
||||
qualifications: {
|
||||
title: 'المؤهلات',
|
||||
new: 'مؤهل جديد',
|
||||
type: 'النوع',
|
||||
types: {
|
||||
'34a': 'شهادة الأمن §34a',
|
||||
'first_aid': 'دورة الإسعافات الأولية',
|
||||
'fire_safety': 'السلامة من الحريق',
|
||||
'security_check': 'التصريح الأمني',
|
||||
'drivers_license': 'رخصة القيادة',
|
||||
'other': 'أخرى',
|
||||
},
|
||||
issueDate: 'تاريخ الإصدار',
|
||||
expiryDate: 'تاريخ الانتهاء',
|
||||
issuedBy: 'صادر من',
|
||||
valid: 'صالح',
|
||||
expired: 'منتهي',
|
||||
expiringSoon: 'ينتهي قريباً',
|
||||
daysUntilExpiry: 'أيام حتى الانتهاء',
|
||||
reminder: 'تذكير',
|
||||
},
|
||||
|
||||
// Objects
|
||||
objects: {
|
||||
title: 'المواقع',
|
||||
new: 'موقع جديد',
|
||||
object: 'موقع',
|
||||
name: 'الاسم',
|
||||
address: 'العنوان',
|
||||
contact: 'جهة الاتصال',
|
||||
phone: 'الهاتف',
|
||||
instructions: 'التعليمات',
|
||||
documents: 'المستندات',
|
||||
accessInfo: 'معلومات الدخول',
|
||||
},
|
||||
|
||||
// Patrols
|
||||
patrols: {
|
||||
title: 'الدوريات',
|
||||
new: 'دورية جديدة',
|
||||
checkpoint: 'نقطة تفتيش',
|
||||
checkpoints: 'نقاط التفتيش',
|
||||
route: 'المسار',
|
||||
routes: 'المسارات',
|
||||
log: 'سجل',
|
||||
logs: 'السجلات',
|
||||
scanned: 'تم المسح',
|
||||
missed: 'فائت',
|
||||
scanTime: 'وقت المسح',
|
||||
expectedTime: 'الوقت المتوقع',
|
||||
deviation: 'الانحراف',
|
||||
},
|
||||
|
||||
// Incidents
|
||||
incidents: {
|
||||
title: 'الحوادث',
|
||||
new: 'حادثة جديدة',
|
||||
incident: 'حادثة',
|
||||
category: 'الفئة',
|
||||
categories: {
|
||||
theft: 'سرقة',
|
||||
vandalism: 'تخريب',
|
||||
trespassing: 'تعدي',
|
||||
fire: 'حريق',
|
||||
medical: 'طوارئ طبية',
|
||||
technical: 'مشكلة تقنية',
|
||||
other: 'أخرى',
|
||||
},
|
||||
severity: 'الشدة',
|
||||
severities: {
|
||||
low: 'منخفضة',
|
||||
medium: 'متوسطة',
|
||||
high: 'عالية',
|
||||
critical: 'حرجة',
|
||||
},
|
||||
reporter: 'أبلغ عنها',
|
||||
location: 'الموقع',
|
||||
witnesses: 'الشهود',
|
||||
attachments: 'المرفقات',
|
||||
resolved: 'محلولة',
|
||||
unresolved: 'غير محلولة',
|
||||
},
|
||||
|
||||
// Documents
|
||||
documents: {
|
||||
title: 'المستندات',
|
||||
new: 'مستند جديد',
|
||||
document: 'مستند',
|
||||
category: 'الفئة',
|
||||
categories: {
|
||||
contract: 'عقد',
|
||||
certificate: 'شهادة',
|
||||
policy: 'سياسة',
|
||||
manual: 'دليل',
|
||||
form: 'نموذج',
|
||||
other: 'أخرى',
|
||||
},
|
||||
uploadDate: 'تاريخ الرفع',
|
||||
fileType: 'نوع الملف',
|
||||
fileSize: 'حجم الملف',
|
||||
mandatory: 'إلزامي',
|
||||
acknowledged: 'تم الإقرار',
|
||||
acknowledgement: 'إقرار',
|
||||
},
|
||||
|
||||
// Vehicles
|
||||
vehicles: {
|
||||
title: 'المركبات',
|
||||
new: 'مركبة جديدة',
|
||||
vehicle: 'مركبة',
|
||||
licensePlate: 'لوحة الترخيص',
|
||||
make: 'الشركة المصنعة',
|
||||
model: 'الطراز',
|
||||
year: 'السنة',
|
||||
mileage: 'عداد المسافات',
|
||||
fuelLevel: 'مستوى الوقود',
|
||||
status: 'الحالة',
|
||||
statuses: {
|
||||
available: 'متاحة',
|
||||
inUse: 'قيد الاستخدام',
|
||||
maintenance: 'صيانة',
|
||||
outOfService: 'خارج الخدمة',
|
||||
},
|
||||
booking: 'حجز',
|
||||
bookings: 'الحجوزات',
|
||||
maintenance: 'الصيانة',
|
||||
nextService: 'الخدمة التالية',
|
||||
},
|
||||
|
||||
// Customers
|
||||
customers: {
|
||||
title: 'العملاء',
|
||||
new: 'عميل جديد',
|
||||
customer: 'عميل',
|
||||
company: 'الشركة',
|
||||
contact: 'جهة الاتصال',
|
||||
email: 'البريد الإلكتروني',
|
||||
phone: 'الهاتف',
|
||||
address: 'العنوان',
|
||||
contracts: 'العقود',
|
||||
communication: 'التواصل',
|
||||
notes: 'ملاحظات',
|
||||
},
|
||||
|
||||
// Billing
|
||||
billing: {
|
||||
title: 'الفواتير',
|
||||
invoices: 'الفواتير',
|
||||
newInvoice: 'فاتورة جديدة',
|
||||
invoice: 'فاتورة',
|
||||
invoiceNumber: 'رقم الفاتورة',
|
||||
amount: 'المبلغ',
|
||||
tax: 'الضريبة',
|
||||
subtotal: 'المجموع الفرعي',
|
||||
total: 'المجموع',
|
||||
dueDate: 'تاريخ الاستحقاق',
|
||||
paidDate: 'تاريخ الدفع',
|
||||
statuses: {
|
||||
draft: 'مسودة',
|
||||
sent: 'مُرسلة',
|
||||
paid: 'مدفوعة',
|
||||
overdue: 'متأخرة',
|
||||
cancelled: 'ملغاة',
|
||||
},
|
||||
hourlyRates: 'أسعار الساعة',
|
||||
rate: 'السعر',
|
||||
reminders: 'التذكيرات',
|
||||
},
|
||||
|
||||
// Modules
|
||||
modules: {
|
||||
title: 'الوحدات',
|
||||
enabled: 'مُفعّل',
|
||||
disabled: 'معطّل',
|
||||
enable: 'تفعيل',
|
||||
disable: 'تعطيل',
|
||||
configure: 'تكوين',
|
||||
},
|
||||
|
||||
// Settings
|
||||
settings: {
|
||||
title: 'الإعدادات',
|
||||
profile: 'الملف الشخصي',
|
||||
account: 'الحساب',
|
||||
notifications: 'الإشعارات',
|
||||
security: 'الأمان',
|
||||
language: 'اللغة',
|
||||
theme: 'المظهر',
|
||||
darkMode: 'الوضع الداكن',
|
||||
lightMode: 'الوضع الفاتح',
|
||||
changePassword: 'تغيير كلمة المرور',
|
||||
twoFactor: 'المصادقة الثنائية',
|
||||
lockScreen: 'قفل الشاشة',
|
||||
lockMethod: 'طريقة القفل',
|
||||
pin: 'رمز PIN',
|
||||
pattern: 'نمط',
|
||||
},
|
||||
|
||||
// Help
|
||||
help: {
|
||||
title: 'المساعدة والدعم',
|
||||
faq: 'الأسئلة الشائعة',
|
||||
contact: 'اتصل بنا',
|
||||
documentation: 'التوثيق',
|
||||
tutorials: 'الدروس',
|
||||
feedback: 'ملاحظات',
|
||||
},
|
||||
|
||||
// Messages
|
||||
messages: {
|
||||
success: 'نجاح',
|
||||
error: 'خطأ',
|
||||
warning: 'تحذير',
|
||||
info: 'معلومات',
|
||||
saved: 'تم الحفظ',
|
||||
deleted: 'تم الحذف',
|
||||
updated: 'تم التحديث',
|
||||
created: 'تم الإنشاء',
|
||||
confirmDelete: 'هل أنت متأكد من أنك تريد حذف هذا؟',
|
||||
noData: 'لا توجد بيانات متاحة',
|
||||
loading: 'جاري التحميل...',
|
||||
required: 'حقل مطلوب',
|
||||
invalid: 'إدخال غير صالح',
|
||||
},
|
||||
|
||||
// Time
|
||||
time: {
|
||||
today: 'اليوم',
|
||||
yesterday: 'أمس',
|
||||
tomorrow: 'غداً',
|
||||
thisWeek: 'هذا الأسبوع',
|
||||
lastWeek: 'الأسبوع الماضي',
|
||||
thisMonth: 'هذا الشهر',
|
||||
lastMonth: 'الشهر الماضي',
|
||||
days: 'أيام',
|
||||
hours: 'ساعات',
|
||||
minutes: 'دقائق',
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user