fix(i18n): localize API error messages by code (no more raw English)
Error toasts surfaced the raw English backend message. Added an errors namespace (fa/ar/en) keyed by error code + a useApiError() resolver that maps ApiClientError.code to the localized message (fallback to a localized generic). Wired into menu, tables, demo banner, and subscription checkout; hardened getErrorMessage so it never returns the raw backend message. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -20,6 +20,33 @@
|
||||
"saved": "تم الحفظ",
|
||||
"errorGeneric": "حدث خطأ. حاول مرة أخرى."
|
||||
},
|
||||
"errors": {
|
||||
"generic": "حدث خطأ. حاول مرة أخرى.",
|
||||
"REQUEST_FAILED": "فشل الطلب. حاول مرة أخرى.",
|
||||
"VALIDATION_ERROR": "البيانات المدخلة غير صالحة.",
|
||||
"FORBIDDEN": "ليس لديك إذن للقيام بذلك.",
|
||||
"OWNER_REQUIRED": "يمكن لمالك المقهى فقط القيام بذلك.",
|
||||
"MANAGER_REQUIRED": "يتطلب هذا الإجراء صلاحية المدير.",
|
||||
"PLAN_LIMIT_REACHED": "لقد بلغت حد باقتك. قم بالترقية للمتابعة.",
|
||||
"PLAN_FEATURE_DISABLED": "هذه الميزة غير متاحة في باقتك الحالية.",
|
||||
"NOT_FOUND": "غير موجود.",
|
||||
"ORDER_NOT_FOUND": "الطلب غير موجود.",
|
||||
"ITEM_NOT_FOUND": "العنصر غير موجود.",
|
||||
"ITEM_ALREADY_VOIDED": "تم إلغاء هذا العنصر بالفعل.",
|
||||
"ORDER_ALREADY_CLOSED": "هذا الطلب مغلق بالفعل.",
|
||||
"TABLE_OCCUPIED": "هذه الطاولة مشغولة حاليًا.",
|
||||
"TABLE_CLEANING": "هذه الطاولة قيد التنظيف.",
|
||||
"TABLE_NOT_FOUND": "الطاولة غير موجودة.",
|
||||
"TABLE_HAS_OPEN_ORDER": "هذه الطاولة لديها طلب مفتوح ولا يمكن حذفها.",
|
||||
"TABLE_SECTION_HAS_TABLES": "يحتوي هذا القسم على طاولات ولا يمكن حذفه.",
|
||||
"BRANCH_NOT_FOUND": "الفرع غير موجود.",
|
||||
"SECTION_NOT_FOUND": "القسم غير موجود.",
|
||||
"RATE_LIMITED": "طلبات كثيرة جدًا. يرجى الانتظار قليلاً.",
|
||||
"SMS_FAILED": "تعذّر إرسال الرسالة القصيرة. حاول مرة أخرى.",
|
||||
"INVALID_OTP": "رمز التحقق غير صالح أو منتهي الصلاحية.",
|
||||
"TICKET_CLOSED": "هذه التذكرة مغلقة ولا يمكنها استقبال الرسائل.",
|
||||
"ALREADY_REGISTERED": "يوجد حساب بالفعل لهذا الرقم. يرجى تسجيل الدخول."
|
||||
},
|
||||
"brand": {
|
||||
"name": "ميزي"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user