diff --git a/src/locales/en.json b/src/locales/en.json index d0758ab..1fe6329 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -2571,6 +2571,55 @@ "color": "Color", "presets": "Permission presets", "permissions": "Permissions", + "permissionSections": { + "users": "Users", + "tickets": "Tickets", + "stats": "Statistics", + "broadcasts": "Broadcasts", + "tariffs": "Tariffs", + "promocodes": "Promo codes", + "promo_groups": "Promo groups", + "promo_offers": "Promo offers", + "campaigns": "Campaigns", + "partners": "Partners", + "withdrawals": "Withdrawals", + "payments": "Payments", + "payment_methods": "Payment methods", + "servers": "Servers", + "remnawave": "Remnawave", + "traffic": "Traffic", + "settings": "Settings", + "roles": "Roles", + "audit_log": "Audit log", + "channels": "Channels", + "ban_system": "Ban system", + "wheel": "Lucky wheel", + "apps": "Apps", + "email_templates": "Email templates", + "pinned_messages": "Pinned messages", + "updates": "Updates" + }, + "permissionActions": { + "read": "Read", + "edit": "Edit", + "create": "Create", + "delete": "Delete", + "block": "Block", + "sync": "Sync", + "reply": "Reply", + "close": "Close", + "settings": "Settings", + "export": "Export", + "send": "Send", + "stats": "Stats", + "approve": "Approve", + "revoke": "Revoke", + "reject": "Reject", + "manage": "Manage", + "ban": "Ban", + "unban": "Unban", + "assign": "Assign" + }, "toggleSection": "Toggle all {{section}} permissions", "selectedPermissions_one": "{{count}} permission selected", "selectedPermissions_other": "{{count}} permissions selected", diff --git a/src/locales/fa.json b/src/locales/fa.json index b0cc09d..652584d 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -2360,6 +2360,55 @@ "color": "رنگ", "presets": "الگوهای مجوز", "permissions": "مجوزها", + "permissionSections": { + "users": "کاربران", + "tickets": "تیکت‌ها", + "stats": "آمار", + "broadcasts": "پیام‌های همگانی", + "tariffs": "تعرفه‌ها", + "promocodes": "کدهای تخفیف", + "promo_groups": "گروه‌های تبلیغاتی", + "promo_offers": "پیشنهادات تبلیغاتی", + "campaigns": "کمپین‌ها", + "partners": "شرکا", + "withdrawals": "برداشت‌ها", + "payments": "پرداخت‌ها", + "payment_methods": "روش‌های پرداخت", + "servers": "سرورها", + "remnawave": "Remnawave", + "traffic": "ترافیک", + "settings": "تنظیمات", + "roles": "نقش‌ها", + "audit_log": "گزارش حسابرسی", + "channels": "کانال‌ها", + "ban_system": "سیستم مسدودسازی", + "wheel": "چرخ شانس", + "apps": "برنامه‌ها", + "email_templates": "قالب‌های ایمیل", + "pinned_messages": "پیام‌های سنجاق‌شده", + "updates": "به‌روزرسانی‌ها" + }, + "permissionActions": { + "read": "خواندن", + "edit": "ویرایش", + "create": "ایجاد", + "delete": "حذف", + "block": "مسدودسازی", + "sync": "همگام‌سازی", + "reply": "پاسخ", + "close": "بستن", + "settings": "تنظیمات", + "export": "خروجی", + "send": "ارسال", + "stats": "آمار", + "approve": "تأیید", + "revoke": "لغو", + "reject": "رد", + "manage": "مدیریت", + "ban": "مسدود کردن", + "unban": "رفع مسدودیت", + "assign": "اختصاص" + }, "toggleSection": "تغییر وضعیت تمام مجوزهای {{section}}", "selectedPermissions_other": "{{count}} مجوز انتخاب شده", "cancel": "لغو", diff --git a/src/locales/ru.json b/src/locales/ru.json index d4f3a12..4c02a6a 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -3119,6 +3119,55 @@ "color": "Цвет", "presets": "Шаблоны прав", "permissions": "Разрешения", + "permissionSections": { + "users": "Пользователи", + "tickets": "Тикеты", + "stats": "Статистика", + "broadcasts": "Рассылки", + "tariffs": "Тарифы", + "promocodes": "Промокоды", + "promo_groups": "Промо-группы", + "promo_offers": "Промо-предложения", + "campaigns": "Кампании", + "partners": "Партнёры", + "withdrawals": "Выводы средств", + "payments": "Платежи", + "payment_methods": "Методы оплаты", + "servers": "Серверы", + "remnawave": "Remnawave", + "traffic": "Трафик", + "settings": "Настройки", + "roles": "Роли", + "audit_log": "Журнал аудита", + "channels": "Каналы", + "ban_system": "Система банов", + "wheel": "Колесо фортуны", + "apps": "Приложения", + "email_templates": "Шаблоны писем", + "pinned_messages": "Закреплённые сообщения", + "updates": "Обновления" + }, + "permissionActions": { + "read": "Чтение", + "edit": "Редактирование", + "create": "Создание", + "delete": "Удаление", + "block": "Блокировка", + "sync": "Синхронизация", + "reply": "Ответ", + "close": "Закрытие", + "settings": "Настройки", + "export": "Экспорт", + "send": "Отправка", + "stats": "Статистика", + "approve": "Одобрение", + "revoke": "Отзыв", + "reject": "Отклонение", + "manage": "Управление", + "ban": "Бан", + "unban": "Разбан", + "assign": "Назначение" + }, "toggleSection": "Переключить все права {{section}}", "selectedPermissions_one": "{{count}} разрешение выбрано", "selectedPermissions_few": "{{count}} разрешения выбрано", diff --git a/src/locales/zh.json b/src/locales/zh.json index a290ac6..b6b8d8a 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -2359,6 +2359,55 @@ "color": "颜色", "presets": "权限预设", "permissions": "权限", + "permissionSections": { + "users": "用户", + "tickets": "工单", + "stats": "统计", + "broadcasts": "广播", + "tariffs": "套餐", + "promocodes": "促销码", + "promo_groups": "促销组", + "promo_offers": "促销优惠", + "campaigns": "推广活动", + "partners": "合作伙伴", + "withdrawals": "提现", + "payments": "支付", + "payment_methods": "支付方式", + "servers": "服务器", + "remnawave": "Remnawave", + "traffic": "流量", + "settings": "设置", + "roles": "角色", + "audit_log": "审计日志", + "channels": "频道", + "ban_system": "封禁系统", + "wheel": "幸运转盘", + "apps": "应用", + "email_templates": "邮件模板", + "pinned_messages": "置顶消息", + "updates": "更新" + }, + "permissionActions": { + "read": "读取", + "edit": "编辑", + "create": "创建", + "delete": "删除", + "block": "封锁", + "sync": "同步", + "reply": "回复", + "close": "关闭", + "settings": "设置", + "export": "导出", + "send": "发送", + "stats": "统计", + "approve": "批准", + "revoke": "撤销", + "reject": "拒绝", + "manage": "管理", + "ban": "封禁", + "unban": "解封", + "assign": "分配" + }, "toggleSection": "切换所有 {{section}} 权限", "selectedPermissions_other": "已选择 {{count}} 个权限", "cancel": "取消", diff --git a/src/pages/AdminPolicies.tsx b/src/pages/AdminPolicies.tsx index 0743155..7d2b100 100644 --- a/src/pages/AdminPolicies.tsx +++ b/src/pages/AdminPolicies.tsx @@ -360,12 +360,17 @@ export default function AdminPolicies() { {/* Resource + actions */}
- - {policy.resource} + + {t( + `admin.roles.form.permissionSections.${policy.resource}`, + policy.resource, + )} : - - {(policy.actions ?? []).join(', ')} + + {(policy.actions ?? []) + .map((a) => t(`admin.roles.form.permissionActions.${a}`, a)) + .join(', ')}
diff --git a/src/pages/AdminPolicyEdit.tsx b/src/pages/AdminPolicyEdit.tsx index c0d6988..cb93b27 100644 --- a/src/pages/AdminPolicyEdit.tsx +++ b/src/pages/AdminPolicyEdit.tsx @@ -473,7 +473,7 @@ export default function AdminPolicyEdit() { {permissionRegistry?.map((section) => ( ))} @@ -500,7 +500,7 @@ export default function AdminPolicyEdit() { }`} aria-pressed={selected} > - {action} + {t(`admin.roles.form.permissionActions.${action}`, action)} ); })} diff --git a/src/pages/AdminRoleEdit.tsx b/src/pages/AdminRoleEdit.tsx index 001f1ad..159c9a7 100644 --- a/src/pages/AdminRoleEdit.tsx +++ b/src/pages/AdminRoleEdit.tsx @@ -174,7 +174,9 @@ function PermissionMatrix({ onClick={() => toggleExpand(section.section)} className="flex flex-1 items-center justify-between" > - {section.section} + + {t(`admin.roles.form.permissionSections.${section.section}`, section.section)} +
{section.actions.filter((a) => isPermSelected(section.section, a)).length}/ @@ -208,7 +210,7 @@ function PermissionMatrix({ }`} aria-pressed={selected} > - {action} + {t(`admin.roles.form.permissionActions.${action}`, action)} ); })}