Localize shared modals/overlays, logs, users and cluster-pool pages.
Add a components dictionary (delete/deleting overlays, confirm-modal defaults, build-progress phases, deployment bar, resource-upgrade modal) and move the logs, admin users, and admin cluster-pools pages onto the dictionaries — filters, tables, forms, statuses, toasts and confirm dialogs — with locale-aware dates and RTL-aware layout. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -440,6 +440,146 @@ const fa = {
|
||||
statusUpdateFailed: 'بهروزرسانی وضعیت فاکتور ناموفق بود',
|
||||
reasonRequired: 'برای تغییر دستی وضعیت، ذکر دلیل الزامی است',
|
||||
},
|
||||
logs: {
|
||||
title: 'لاگها',
|
||||
subtitle: 'لاگ اپلیکیشن، Redis، RabbitMQ و دیتابیس در یکجا',
|
||||
levels: { all: 'همهٔ سطوح', error: 'خطا', warn: 'هشدار', info: 'اطلاع', debug: 'دیباگ' },
|
||||
sources: { all: 'همهٔ منابع', app: 'اپلیکیشن', redis: 'Redis', rabbitmq: 'RabbitMQ', database: 'دیتابیس' },
|
||||
ranges: { '1h': 'یک ساعت اخیر', '6h': '۶ ساعت اخیر', '24h': '۲۴ ساعت اخیر', '7d': '۷ روز اخیر' },
|
||||
resource: 'منبع',
|
||||
allResources: 'همهٔ منابع',
|
||||
applicationsGroup: 'اپلیکیشنها',
|
||||
servicesGroup: 'دیتابیسها و سرویسها',
|
||||
source: 'منبع',
|
||||
level: 'سطح',
|
||||
timeRange: 'بازهٔ زمانی',
|
||||
search: 'جستجو',
|
||||
searchPlaceholder: 'جستجوی پیام…',
|
||||
loading: 'در حال بارگذاری',
|
||||
refresh: 'تازهسازی',
|
||||
autoRefresh: 'تازهسازی خودکار (۵ث)',
|
||||
totalPeriod: 'مجموع ({period})',
|
||||
errors: 'خطاها',
|
||||
warnings: 'هشدارها',
|
||||
sourcesStat: 'منابع',
|
||||
loadFailed: 'بارگذاری لاگها ناموفق بود. مطمئن شو لاگینگ روی اپت فعال است و Elasticsearch در حال اجراست.',
|
||||
logEntries: 'ورودیهای لاگ',
|
||||
totalPage: '{total} مورد · صفحهٔ {page}/{pages}',
|
||||
loadingLogs: 'در حال بارگذاری لاگها…',
|
||||
noLogs: 'برای فیلترهای انتخابشده لاگی پیدا نشد.',
|
||||
noLogsHint: 'برای شروع جمعآوری لاگ، اپی با لاگینگ فعال منتشر کن.',
|
||||
colTime: 'زمان',
|
||||
colLevel: 'سطح',
|
||||
colApp: 'اپ',
|
||||
colSource: 'منبع',
|
||||
colMessage: 'پیام',
|
||||
prev: 'قبلی',
|
||||
next: 'بعدی',
|
||||
reconnecting: 'در حال اتصال مجدد به لاگینگ…',
|
||||
notAvailable: 'لاگینگ در دسترس نیست',
|
||||
notAvailableMessage: 'Elasticsearch مرکزی روی کلاستر مستقر نشده است. هنگام انتشار اپ، افزونهٔ لاگینگ را فعال کن و از مدیر بخواه استک لاگینگ را مستقر کند.',
|
||||
checkingConnection: 'در حال بررسی اتصال…',
|
||||
retryingAuto: 'هر چند ثانیه بهصورت خودکار تلاش میشود.',
|
||||
},
|
||||
users: {
|
||||
title: 'مدیریت کاربران',
|
||||
count: '{n} کاربر ثبتشده',
|
||||
addUser: 'افزودن کاربر',
|
||||
createNewUser: 'ساخت کاربر جدید',
|
||||
firstName: 'نام',
|
||||
lastName: 'نام خانوادگی',
|
||||
email: 'ایمیل',
|
||||
password: 'رمز عبور',
|
||||
firstNamePlaceholder: 'مثلاً علی',
|
||||
lastNamePlaceholder: 'مثلاً رضایی',
|
||||
emailPlaceholder: 'name@example.com',
|
||||
passwordMin: 'حداقل ۸ کاراکتر',
|
||||
role: 'نقش',
|
||||
roles: { user: 'کاربر', admin: 'مدیر', technical: 'فنی', sales: 'فروش' },
|
||||
creating: 'در حال ساخت…',
|
||||
createUser: 'ساخت کاربر',
|
||||
searchPlaceholder: 'جستجو بر اساس نام یا ایمیل…',
|
||||
noUsersSearch: 'کاربری مطابق جستجو پیدا نشد.',
|
||||
noUsers: 'هنوز کاربری نیست.',
|
||||
colUser: 'کاربر',
|
||||
colEmail: 'ایمیل',
|
||||
colRole: 'نقش',
|
||||
colStatus: 'وضعیت',
|
||||
colApps: 'اپها',
|
||||
colCreated: 'تاریخ ایجاد',
|
||||
colActions: 'عملیات',
|
||||
active: 'فعال',
|
||||
inactive: 'غیرفعال',
|
||||
appsCount: '{n} اپ',
|
||||
passwordBtn: 'رمز عبور',
|
||||
deactivate: 'غیرفعالسازی',
|
||||
activate: 'فعالسازی',
|
||||
setPassword: 'تنظیم رمز عبور',
|
||||
newPasswordFor: 'رمز عبور جدید برای',
|
||||
savePassword: 'ذخیرهٔ رمز',
|
||||
saving: 'در حال ذخیره…',
|
||||
createdSuccess: 'کاربر با موفقیت ساخته شد',
|
||||
createFailed: 'ساخت کاربر ناموفق بود',
|
||||
userUpdated: 'کاربر بهروزرسانی شد',
|
||||
roleUpdated: 'نقش بهروزرسانی شد',
|
||||
passwordUpdated: 'رمز عبور بهروزرسانی شد',
|
||||
passwordFailed: 'بهروزرسانی رمز ناموفق بود',
|
||||
},
|
||||
pools: {
|
||||
title: 'پولهای کلاستر',
|
||||
subtitle: 'گروههای متوازنشدهٔ کلاستر برای توزیع خودکار اپها',
|
||||
createPool: 'ساخت پول',
|
||||
editTitle: 'ویرایش «{name}»',
|
||||
createNewPool: 'ساخت پول کلاستر جدید',
|
||||
poolName: 'نام پول',
|
||||
strategy: 'استراتژی',
|
||||
strategyOptions: {
|
||||
'weighted-resource': 'منابع وزندار — اولویت با ظرفیت سالم و وزن بالاتر',
|
||||
'least-loaded': 'کمبارترین — اولویت با کمترین CPU، حافظه و فشار پاد',
|
||||
'weighted-round-robin': 'چرخشی وزندار — چرخش متناسب با وزن',
|
||||
'region-based': 'بر اساس منطقه — اولویت با منطقهٔ منطبق، سپس وزن و بار',
|
||||
'least-apps': 'کمترین اپ — انتشار روی کلاستر با کمترین اپ',
|
||||
'round-robin': 'چرخشی — چرخش یکنواخت بین کلاسترها',
|
||||
},
|
||||
strategyShort: {
|
||||
'weighted-resource': 'منابع وزندار',
|
||||
'least-loaded': 'کمبارترین',
|
||||
'weighted-round-robin': 'چرخشی وزندار',
|
||||
'region-based': 'بر اساس منطقه',
|
||||
'least-apps': 'کمترین اپ',
|
||||
'round-robin': 'چرخشی',
|
||||
},
|
||||
priority: 'اولویت',
|
||||
description: 'توضیحات',
|
||||
descriptionPlaceholder: 'پول متوازنشده برای بارهای کاری پروداکشن',
|
||||
useAsDefault: 'استفاده بهعنوان پول تخصیص پیشفرض',
|
||||
selectClusters: 'انتخاب کلاسترها ({n} انتخابشده)',
|
||||
noClustersRegistered: 'هیچ کلاستری ثبت نشده. اول کلاستر اضافه کن.',
|
||||
defaultBadge: 'پیشفرض',
|
||||
na: 'نامشخص',
|
||||
weight: 'وزن',
|
||||
saving: 'در حال ذخیره…',
|
||||
updatePool: 'بهروزرسانی پول',
|
||||
poolCreated: 'پول کلاستر ساخته شد!',
|
||||
createFailed: 'ساخت پول ناموفق بود',
|
||||
poolUpdated: 'پول کلاستر بهروزرسانی شد!',
|
||||
updateFailed: 'بهروزرسانی پول ناموفق بود',
|
||||
poolDeleted: 'پول کلاستر حذف شد',
|
||||
noPools: 'هنوز پول کلاستری ساخته نشده',
|
||||
noPoolsHint: 'برای فعالسازی انتشار متوازن روی چند کلاستر، یک پول بساز',
|
||||
active: 'فعال',
|
||||
inactive: 'غیرفعال',
|
||||
defaultPool: 'پول پیشفرض',
|
||||
priorityBadge: 'اولویت {n}',
|
||||
noClustersInPool: 'کلاستری در این پول نیست (شاید حذف شدهاند)',
|
||||
clustersActive: '{active}/{total} کلاستر فعال · ایجاد {date}',
|
||||
edit: 'ویرایش',
|
||||
remove: 'حذف',
|
||||
deletePoolTitle: 'حذف پول «{name}»',
|
||||
deletePoolMessage: 'اپهایی که از قبل به این پول اختصاص یافتهاند، کلاستر فعلیشان را حفظ میکنند.',
|
||||
clusterStatus: { active: 'فعال', inactive: 'غیرفعال', error: 'خطا' },
|
||||
clusterHealth: { healthy: 'سالم', degraded: 'نزولیافته', unhealthy: 'ناسالم', unknown: 'نامشخص' },
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user