Localize admin cluster and billing-plan pages.
Move the cluster management page (resource panel, tools install/uninstall flow, statuses/health) and the billing-plans page (pricing matrices, deploy defaults, add-ons, data-retention settings) onto the dictionaries with locale-aware dates and RTL-aware tables. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -580,6 +580,153 @@ const fa = {
|
||||
clusterStatus: { active: 'فعال', inactive: 'غیرفعال', error: 'خطا' },
|
||||
clusterHealth: { healthy: 'سالم', degraded: 'نزولیافته', unhealthy: 'ناسالم', unknown: 'نامشخص' },
|
||||
},
|
||||
clusters: {
|
||||
title: 'مدیریت کلاسترها',
|
||||
count: '{n} کلاستر ثبتشده',
|
||||
addCluster: 'افزودن کلاستر',
|
||||
registerNew: 'ثبت کلاستر جدید',
|
||||
verifyNote: 'سیستم پیش از ثبت، اتصال کوبرنتیز را بررسی میکند.',
|
||||
name: 'نام',
|
||||
apiServer: 'آدرس API Server',
|
||||
region: 'منطقه',
|
||||
provider: 'ارائهدهنده',
|
||||
selectProvider: 'انتخاب ارائهدهنده',
|
||||
weight: 'وزن',
|
||||
tags: 'برچسبها',
|
||||
tagsPlaceholder: 'ssd, production, iran',
|
||||
description: 'توضیحات',
|
||||
kubeconfig: 'Kubeconfig (YAML)',
|
||||
kubeconfigPlaceholder: 'kubeconfig خود را اینجا بچسبان…',
|
||||
setDefault: 'تنظیم بهعنوان کلاستر پیشفرض',
|
||||
verifying: 'در حال بررسی اتصال و افزودن…',
|
||||
added: 'کلاستر افزوده و اتصال تأیید شد ✓',
|
||||
addFailed: 'افزودن کلاستر ناموفق بود',
|
||||
connectionOk: 'اتصال موفق — کوبرنتیز {version}',
|
||||
connectionFailed: 'اتصال ناموفق: {error}',
|
||||
testFailed: 'تست اتصال ناموفق بود',
|
||||
removed: 'کلاستر حذف شد',
|
||||
noClusters: 'هنوز کلاستری ثبت نشده.',
|
||||
noClustersHint: 'برای شروع انتشار اپها، یک کلاستر کوبرنتیز اضافه کن.',
|
||||
defaultBadge: 'پیشفرض',
|
||||
healthBadge: 'سلامت: {status}',
|
||||
weightBadge: 'وزن {n}',
|
||||
resources: 'منابع',
|
||||
testing: 'در حال تست…',
|
||||
test: 'تست',
|
||||
remove: 'حذف',
|
||||
removeTitle: 'حذف کلاستر',
|
||||
removeMessage: 'مطمئنی میخواهی «{name}» را حذف کنی؟',
|
||||
loadingResources: 'در حال بارگذاری منابع…',
|
||||
resourcesFailed: 'بارگذاری منابع ناموفق بود',
|
||||
nodes: 'نودها',
|
||||
pods: 'پادها',
|
||||
apps: 'اپها',
|
||||
totalCpu: 'کل CPU',
|
||||
cpuReserved: 'CPU رزروشده',
|
||||
memReserved: 'حافظهٔ رزروشده',
|
||||
memory: 'حافظه',
|
||||
capacity: 'ظرفیت',
|
||||
allocatable: 'قابلتخصیص',
|
||||
colName: 'نام',
|
||||
colStatus: 'وضعیت',
|
||||
colRoles: 'نقشها',
|
||||
colCpu: 'CPU (ظرفیت / تخصیص)',
|
||||
colMemory: 'حافظه (ظرفیت / تخصیص)',
|
||||
toolsTitle: 'مدیریت ابزارها',
|
||||
toolsSubtitle: 'ابزارهای زیرساخت را برای هر کلاستر نصب و مدیریت کن. هیچچیز بهصورت خودکار نصب نمیشود — فقط آنچه هر کلاستر نیاز دارد را اضافه کن.',
|
||||
defaultSuffix: ' (پیشفرض)',
|
||||
loadingTools: 'در حال بارگذاری ابزارها…',
|
||||
toolsFailed: 'بارگذاری ابزارهای این کلاستر ناموفق بود.',
|
||||
toolStatus: {
|
||||
installed: 'نصبشده',
|
||||
installing: 'در حال نصب…',
|
||||
failed: 'ناموفق',
|
||||
not_installed: 'نصبنشده',
|
||||
unknown: 'نامشخص',
|
||||
},
|
||||
requires: 'نیازمند:',
|
||||
uninstall: 'حذف نصب',
|
||||
uninstalling: 'در حال حذف…',
|
||||
install: 'نصب',
|
||||
installing: 'در حال نصب…',
|
||||
repair: 'تعمیر',
|
||||
confirmInstall: 'تأیید نصب',
|
||||
installRequiredFirst: 'اول ابزارهای موردنیاز را نصب کن',
|
||||
removeToolTitle: 'حذف {name}',
|
||||
removeToolMessage: '«{name}» از این کلاستر حذف شود؟',
|
||||
uninstallConfirm: 'حذف نصب',
|
||||
installStarted: '{name} نصب آغاز شد',
|
||||
installToolFailed: 'نصب {name} ناموفق بود',
|
||||
toolRemoved: '{name} حذف شد',
|
||||
removeToolFailed: 'حذف {name} ناموفق بود',
|
||||
fieldRequired: '{field} الزامی است',
|
||||
clusterStatus: { active: 'فعال', maintenance: 'تعمیر', inactive: 'غیرفعال', error: 'خطا' },
|
||||
clusterHealth: { healthy: 'سالم', degraded: 'نزولیافته', unhealthy: 'ناسالم', unknown: 'نامشخص' },
|
||||
na: 'نامشخص',
|
||||
},
|
||||
billing: {
|
||||
cycles: { hourly: 'ساعتی', monthly: 'ماهانه', yearly: 'سالانه' },
|
||||
resources: {
|
||||
base_fee: 'هزینهٔ پایه',
|
||||
cpu_per_core: 'CPU (هر هسته)',
|
||||
memory_per_gb: 'حافظه (هر GB)',
|
||||
storage_per_gb: 'فضای ذخیره (هر GB)',
|
||||
database_addon: 'افزونهٔ دیتابیس',
|
||||
redis_addon: 'Redis',
|
||||
rabbitmq_addon: 'RabbitMQ',
|
||||
elasticsearch_addon: 'Elasticsearch',
|
||||
custom_domain_addon: 'دامنهٔ اختصاصی + SSL',
|
||||
},
|
||||
resourceCol: 'منبع',
|
||||
title: 'پلنهای صورتحساب',
|
||||
subtitle: 'قیمت واحد هر منبع را تعیین کن. کاربران هنگام انتشار CPU، حافظه و فضای ذخیره را انتخاب میکنند؛ هزینه = مصرف آنها × این نرخها.',
|
||||
editPlans: 'ویرایش پلنها',
|
||||
saving: 'در حال ذخیره…',
|
||||
save: 'ذخیره',
|
||||
saved: 'پلنهای صورتحساب ذخیره شد',
|
||||
saveFailed: 'ذخیرهٔ پلنهای صورتحساب ناموفق بود',
|
||||
howTitle: 'صورتحساب چطور کار میکند',
|
||||
howApps: 'اپلیکیشنها — کاربر منابع رانتایم را در انتشار انتخاب میکند؛ تو قیمت هر هسته، GB، هزینهٔ پایه و افزونهٔ دیتابیس را تعیین میکنی. CPU و RAM در برآوردها بهتناسب صورتحساب میشوند (مثلاً نیمِ نرخِ هر GB برای نیم گیگابایت حافظه).',
|
||||
howOptional: 'سرویسهای اختیاری (Redis، RabbitMQ) — همان ماتریس واحد هر سرویس مثل رانتایمها؛ پیشفرضهای ویزارد انتشار جداگانه ویرایش میشوند. CPU/RAM در محاسبهگر هزینه بهتناسب محدودیتهای واقعی صورتحساب میشوند (مثلاً 500Mi معادل ۰٫۵× نرخِ حافظهٔ هر GB).',
|
||||
howDefaults: 'پیشفرضهای انتشار — فقط پیشپرکردنِ اختیاری؛ تغییر آنها هزینهٔ اپهای موجود را عوض نمیکند مگر کاربر همان مقادیر را هنگام انتشار انتخاب کرده باشد.',
|
||||
noPricing: 'دادهی قیمتی وجود ندارد',
|
||||
appRuntimes: 'رانتایمهای اپلیکیشن',
|
||||
appRuntimesSub: 'قیمتگذاری واحد هر رانتایم (ساعتی / ماهانه / سالانه)',
|
||||
unitPricesSuffix: '— قیمتهای واحد',
|
||||
fillYearly: 'پر کردن سالانه از ماهانه ×۱۲',
|
||||
optionalServices: 'سرویسهای اختیاری',
|
||||
optionalServicesSub: 'قیمتگذاری واحد هر سرویس (ساعتی / ماهانه / سالانه)',
|
||||
deployDefaults: 'سرویسهای اختیاری — پیشفرضهای انتشار',
|
||||
deployDefaultsSub: 'پیشپرکردن CPU، حافظه و فضای ذخیره هنگام فعالسازی هر سرویس در ویزارد انتشار',
|
||||
addons: 'افزونهها',
|
||||
addonsSub: 'هزینههای ثابت بدون وابستگی به رانتایم',
|
||||
customDomainTitle: 'دامنهٔ اختصاصی + SSL',
|
||||
customDomainSub: 'هزینهٔ ثابت در هر دورهٔ صورتحساب (نه بر اساس منابع)',
|
||||
loggingNote: 'محدودیتهای پیشپرشده برای ارسالکنندههای لاگ Fluent Bit (بهازای هر workload فعال هنگام روشنبودن لاگینگ صورتحساب میشود).',
|
||||
logShipperCpuLimit: 'محدودیت CPU ارسالکنندهٔ لاگ',
|
||||
logShipperMemoryLimit: 'محدودیت حافظهٔ ارسالکنندهٔ لاگ',
|
||||
defaultsNote: 'هنگامی که کاربر این سرویس را در انتشار فعال میکند نمایش داده میشود. او میتواند CPU، حافظه و فضای ذخیره را در «منابع و پیکربندی» تغییر دهد؛ صورتحساب واقعی از انتخابهای او × قیمتهای واحد زیر استفاده میکند.',
|
||||
cpuRequest: 'درخواست CPU',
|
||||
cpuLimit: 'محدودیت CPU',
|
||||
memoryRequest: 'درخواست حافظه',
|
||||
memoryLimit: 'محدودیت حافظه',
|
||||
storageGi: 'فضای ذخیره (Gi)',
|
||||
oneCore: '۱ هسته',
|
||||
twoCores: '۲ هسته',
|
||||
retentionTitle: 'سیاست نگهداری و حذف داده',
|
||||
edit: 'ویرایش',
|
||||
retentionSub: 'تنظیم کن دادههای کاربر پس از انقضای پلن چه مدت پیش از حذف دائمی نگه داشته شود.',
|
||||
hourlyPlans: 'پلنهای ساعتی',
|
||||
monthlyPlans: 'پلنهای ماهانه',
|
||||
yearlyPlans: 'پلنهای سالانه',
|
||||
deleteAfterHours: 'حذف پس از (ساعت):',
|
||||
deleteAfterDays: 'حذف پس از (روز):',
|
||||
saveSettings: 'ذخیرهٔ تنظیمات',
|
||||
lifecycleSaved: 'تنظیمات چرخهٔ عمر بهروزرسانی شد',
|
||||
saveFailedShort: 'ذخیره ناموفق بود',
|
||||
hours: 'ساعت',
|
||||
days: 'روز',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user