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