Introduce Caddy-based reverse proxy with decoy site and DPI masking, plus automatic Let's Encrypt certificate issuance for the panel through Cloudflare API without binding port 443. Co-authored-by: Cursor <cursoragent@cursor.com>
370 lines
22 KiB
JSON
370 lines
22 KiB
JSON
{
|
|
"nav_servers": "سرورها",
|
|
"nav_users": "کاربران",
|
|
"nav_settings": "تنظیمات",
|
|
"nav_connections": "اتصالها",
|
|
"nav_logout": "خروج",
|
|
"theme_dark": "تاریک",
|
|
"theme_light": "روشن",
|
|
"back_to_servers": "← بازگشت به سرورها",
|
|
"server_check": "بررسی",
|
|
"server_checking": "در حال بررسی...",
|
|
"protocols": "پروتکلها",
|
|
"install": "نصب",
|
|
"uninstall": "حذف نصب",
|
|
"run": "در حال اجرا",
|
|
"stop": "متوقف شده",
|
|
"not_installed": "نصب نشده",
|
|
"installed": "نصب شده",
|
|
"add_server": "افزودن سرور",
|
|
"no_servers": "هیچ سروری اضافه نشده است",
|
|
"name": "نام",
|
|
"host": "میزبان",
|
|
"port": "پورت",
|
|
"status": "وضعیت",
|
|
"actions": "عملکردها",
|
|
"edit": "ویرایش",
|
|
"delete": "حذف",
|
|
"save": "ذخیره",
|
|
"cancel": "لغو",
|
|
"loading": "در حال بارگذاری...",
|
|
"copy": "کپی",
|
|
"download": "دانلود",
|
|
"config": "پیکربندی",
|
|
"qr_code": "کد QR",
|
|
"vpn_key": "کلید VPN",
|
|
"clients": "کلاینتها",
|
|
"traffic": "ترافیک",
|
|
"limit": "محدودیت",
|
|
"manage": "مدیریت",
|
|
"no_protocols": "بدون پروتکل",
|
|
"add_server_desc": "اولین سرور VPN خود را اضافه کنید. برای اتصال به اطلاعات SSH نیاز دارید.",
|
|
"ssh_host": "میزبان / IP",
|
|
"ssh_port": "پورت SSH",
|
|
"ssh_user": "نام کاربری",
|
|
"ssh_password": "رمز عبور",
|
|
"ssh_key": "کلید SSH",
|
|
"ssh_key_placeholder": "کلید خصوصی SSH",
|
|
"ssh_key_hint": "محتوای فایل id_rsa یا id_ed25519 خود را اینجا قرار دهید",
|
|
"connect": "اتصال",
|
|
"connecting": "در حال اتصال...",
|
|
"server_added": "سرور با موفقیت اضافه شد",
|
|
"server_deleted": "سرور حذف شد",
|
|
"delete_confirm": "آیا از حذف این سرور مطمئن هستید؟",
|
|
"success": "موفقیت",
|
|
"error": "خطا",
|
|
"info": "اطلاعات",
|
|
"login_title": "ورود به پنل",
|
|
"username": "نام کاربری",
|
|
"password": "رمز عبور",
|
|
"captcha": "کد امنیتی",
|
|
"captcha_placeholder": "کاراکترهای تصویر را وارد کنید",
|
|
"captcha_hint": "برای نوسازی تصویر کلیک کنید",
|
|
"login": "ورود",
|
|
"logging_in": "در حال ورود...",
|
|
"login_error": "ورود ناموفق بود",
|
|
"check_done": "بررسی کامل شد",
|
|
"check_error": "خطای اتصال",
|
|
"ssh_ok": "اتصال SSH برقرار است",
|
|
"docker_ok": "داکر نصب است",
|
|
"docker_not_installed": "داکر نصب نیست",
|
|
"awg_desc": "نسخه جدید پروتکل بر پایه awg-go. پشتیبانی از مبهمسازی پیشرفته (S3, S4).",
|
|
"awg_legacy_desc": "نسخه اصلی AWG. سازگار با نسخههای قدیمی کلاینت.",
|
|
"xray_desc": "تغییر ظاهر ترافیک به ترافیک معمولی وب (XTLS-Reality). مقاوم در برابر فیلترینگ شدید.",
|
|
"not_checked": "بررسی نشده",
|
|
"connections": "اتصالها",
|
|
"add": "افزودن",
|
|
"loading_connections": "در حال بارگذاری اتصالها...",
|
|
"no_connections": "بدون اتصال",
|
|
"no_connections_desc": "اولین اتصال خود را برای ایجاد پیکربندی VPN اضافه کنید",
|
|
"install_protocol": "نصب پروتکل",
|
|
"port_default_hint": "پورت پیشفرض: 55424. مطمئن شوید این پورت آزاد است.",
|
|
"port_xray_hint": "پورت پیشنهادی: 443. مطمئن شوید توسط وبسرور دیگری اشغال نشده باشد.",
|
|
"reinstall": "نصب مجدد",
|
|
"uninstall_confirm": "حذف نصب {}؟ تمام اتصالها و پیکربندیها از بین خواهند رفت.",
|
|
"stop_container_confirm": "توقف کانتینر {}؟",
|
|
"start_container_confirm": "شروع کانتینر {}؟",
|
|
"stopping": "در حال توقف",
|
|
"starting": "در حال شروع",
|
|
"stopped": "متوقف شد",
|
|
"started": "شروع شد",
|
|
"server_config": "پیکربندی سرور",
|
|
"add_connection": "افزودن اتصال",
|
|
"connection_name": "نام اتصال",
|
|
"connection_name_placeholder": "مثال: iPhone, Laptop",
|
|
"assign_to_user": "تخصیص به کاربر (اختیاری)",
|
|
"no_assign": "— بدون تخصیص —",
|
|
"create": "ایجاد",
|
|
"creating": "در حال ایجاد...",
|
|
"connection_created": "اتصال \"{}\" ایجاد شد",
|
|
"delete_connection_confirm": "این اتصال حذف شود؟ پیکربندی دیگر کار نخواهد کرد.",
|
|
"connection_deleted": "اتصال حذف شد",
|
|
"config_tab": "📄 فایل",
|
|
"vpn_key_tab": "🔑 کلید-VPN",
|
|
"qr_code_tab": "📱 کد-QR",
|
|
"copy_config": "📋 کپی",
|
|
"download_conf": "⬇ دانلود .conf",
|
|
"copy_key": "📋 کپی کلید",
|
|
"vpn_link_hint": "این لینک را برای تنظیم خودکار در برنامه AmneziaVPN وارد کنید",
|
|
"qr_hint": "کد QR را در برنامه AmneziaVPN اسکن کنید",
|
|
"no_data": "بدون داده",
|
|
"start_btn": "▶ شروع",
|
|
"stop_btn": "⏹ توقف",
|
|
"config_btn": "⚙️ تنظیم",
|
|
"done": "انجام شد",
|
|
"installing": "در حال نصب...",
|
|
"start_install": "شروع نصب...",
|
|
"check_docker": "بررسی داکر...",
|
|
"prepare_host": "آمادهسازی میزبان...",
|
|
"build_container": "ساخت کانتینر...",
|
|
"install_success": "پروتکل با موفقیت نصب شد!",
|
|
"install_error": "خطا در نصب: ",
|
|
"qr_error": "ایجاد کد QR ناموفق بود",
|
|
"users_title": "کاربران",
|
|
"search_placeholder": "جستجو با نام، ایمیل یا تلگرام...",
|
|
"add_user": "افزودن کاربر",
|
|
"prev_page": "← قبلی",
|
|
"next_page": "بعدی →",
|
|
"page_info": "صفحه {} از {}",
|
|
"loading_users": "در حال بارگذاری کاربران...",
|
|
"nothing_found": "چیزی یافت نشد",
|
|
"search_empty_desc": "جستجوی دیگری را امتحان کنید یا کاربر جدید بسازید",
|
|
"username_label": "نام کاربری",
|
|
"password_label": "رمز عبور",
|
|
"role_label": "نقش",
|
|
"role_user_desc": "User — فقط مشاهده اتصالهای خود",
|
|
"role_support_desc": "Support — مدیریت سرورها",
|
|
"role_admin_desc": "Admin — دسترسی کامل",
|
|
"tg_id_label": "آیدی تلگرام (اختیاری)",
|
|
"email_label": "ایمیل (اختیاری)",
|
|
"traffic_limit_label": "محدودیت ترافیک (گیگابایت) (0 = نامحدود)",
|
|
"description_label": "توضیحات (اختیاری)",
|
|
"auto_conn_title": "ایجاد خودکار اتصال (اختیاری)",
|
|
"server_label": "سرور",
|
|
"no_create_conn": "— عدم ایجاد اتصال —",
|
|
"protocol_label": "پروتکل",
|
|
"edit_user_title": "ویرایش کاربر: {}",
|
|
"edit_user_tg": "آیدی تلگرام (اختیاری)",
|
|
"edit_user_email": "ایمیل (اختیاری)",
|
|
"edit_user_limit": "محدودیت ترافیک (گیگابایت) (0 = نامحدود)",
|
|
"new_password_hint": "رمز عبور جدید (اگر تغییری نمیخواهید خالی بگذارید)",
|
|
"op_type_label": "نوع عملیات",
|
|
"create_new_conn": "ایجاد اتصال جدید",
|
|
"link_existing_conn": "اتصال به موجود",
|
|
"select_existing_conn": "انتخاب اتصال موجود",
|
|
"existing_conn_hint": "فقط اتصالهای بدون کاربر نمایش داده میشوند",
|
|
"conn_name_panel": "نام اتصال (در پنل)",
|
|
"user_conns_title": "اتصالهای کاربر",
|
|
"no_free_conns": "اتصال آزاد موجود نیست",
|
|
"linking": "در حال اتصال...",
|
|
"conn_linked": "اتصال برقرار شد",
|
|
"enabling": "در حال فعالسازی",
|
|
"disabling": "در حال غیرفعالسازی",
|
|
"user_enabled": "کاربر فعال شد",
|
|
"user_disabled": "کاربر غیرفعال شد",
|
|
"delete_user_confirm": "کاربر حذف شود؟ تمام اتصالهای او حذف خواهند شد.",
|
|
"share_access": "اشتراکگذاری دسترسی",
|
|
"enable_public_access": "فعالسازی دسترسی عمومی",
|
|
"share_password_label": "رمز عبور (اختیاری)",
|
|
"share_password_hint": "در صورت تنظیم، کاربر باید آن را وارد کند",
|
|
"public_link_label": "لینک عمومی",
|
|
"disabled": "غیرفعال",
|
|
"out_of": "از",
|
|
"settings_title": "تنظیمات پنل",
|
|
"appearance": "🎨 ظاهر",
|
|
"title_label": "عنوان (Title)",
|
|
"logo_label": "لوگو (ایموجی یا نماد)",
|
|
"subtitle_label": "زیرعنوان (Subtitle)",
|
|
"captcha_title": "🔐 کد امنیتی",
|
|
"enable_captcha": "فعالسازی کد امنیتی",
|
|
"telegram_bot_title": "🤖 ربات تلگرام",
|
|
"bot_token_label": "توکن ربات (از @BotFather)",
|
|
"bot_status": "وضعیت",
|
|
"bot_running": "✅ در حال اجرا",
|
|
"bot_stopped": "⏹ متوقف شده",
|
|
"bot_stop_btn": "⏹ توقف",
|
|
"bot_start_btn": "▶️ شروع",
|
|
"bot_hint": "پس از تغییر توکن تنظیمات را ذخیره کنید تا ربات بازراهاندازی شود.",
|
|
"api_docs_title": "🔌 مستندات API",
|
|
"api_docs_hint": "از این رابطها برای بررسی قابلیتهای API استفاده کنید",
|
|
"tunnels_title": "Tunnels",
|
|
"local_server": "سرور محلی",
|
|
"tunnel_install_enable": "نصب و فعالسازی",
|
|
"tunnel_enable": "فعالسازی تونل",
|
|
"tunnel_running": "تونل در حال اجرا است",
|
|
"tunnel_stop": "توقف",
|
|
"tunnel_stopping": "در حال توقف...",
|
|
"tunnel_stopped": "تونل متوقف شد",
|
|
"tunnel_delete": "حذف",
|
|
"tunnel_deleted": "تونل حذف شد",
|
|
"tunnel_delete_confirm": "این فایل اجرایی تونل مدیریتشده توسط پنل متوقف و حذف شود؟",
|
|
"tunnel_starting": "در حال شروع تونل...",
|
|
"tunnel_started": "تونل شروع شد",
|
|
"tunnel_waiting_url": "تونل شروع شد. در انتظار آدرس عمومی...",
|
|
"tunnel_no_public_url": "آدرس عمومی پس از شروع تونل اینجا نمایش داده میشود.",
|
|
"tunnels_hint": "تونلهای سریع این پنل محلی را در اینترنت منتشر میکنند. رمز مدیر را قوی نگه دارید و آدرسهای عمومی را فقط با کاربران مورد اعتماد به اشتراک بگذارید.",
|
|
"ngrok_authtoken_placeholder": "ngrok authtoken (برای برخی حسابها اختیاری است)",
|
|
"import_users_title": "📤 وارد کردن کاربران",
|
|
"import_source_label": "منبع وارد کردن / همگامسازی",
|
|
"remnawave_url_label": "آدرس Remnawave",
|
|
"api_key_label": "کلید API",
|
|
"enable_sync": "فعالسازی همگامسازی",
|
|
"sync_hint": "کاربران طبق دادههای Remnawave بهطور خودکار مدیریت میشوند",
|
|
"sync_now_btn": "🔄 همگامسازی اکنون",
|
|
"delete_sync_btn": "🗑 حذف همگامسازی",
|
|
"auto_create_conns": "ایجاد خودکار اتصالها",
|
|
"sync_server_label": "سرور برای اتصالهای جدید",
|
|
"save_changes": "💾 ذخیره تغییرات",
|
|
"sync_success": "همگامسازی انجام شد: {} کاربر",
|
|
"sync_deleted": "{} کاربر همگامسازی شده حذف شدند",
|
|
"delete_sync_confirm": "آیا از حذف تمام کاربران همگامسازی شده مطمئن هستید؟",
|
|
"settings_saved": "تنظیمات با موفقیت ذخیره شد",
|
|
"bot_started": "ربات شروع به کار کرد",
|
|
"bot_stopped_msg": "ربات متوقف شد",
|
|
"sync_running": "در حال همگامسازی...",
|
|
"deleting": "در حال حذف...",
|
|
"my_connections_title": "اتصالهای من",
|
|
"show_config": "📄 نمایش پیکربندی",
|
|
"no_connections_user_desc": "برای ایجاد اتصال VPN با مدیر تماس بگیرید",
|
|
"share_title": "دسترسی به اتصال",
|
|
"vpn_access": "دسترسی VPN",
|
|
"user_label_share": "کاربر",
|
|
"share_protected_desc": "این دسترسی با رمز عبور محافظت شده است.",
|
|
"auth_success": "ورود موفقیتآمیز",
|
|
"loading_share_conns": "در حال بارگذاری...",
|
|
"no_active_conns": "هنوز هیچ اتصال فعالی ندارید.",
|
|
"show_settings_btn": "🔑 نمایش تنظیمات",
|
|
"copied": "کپی شد!",
|
|
"active": "فعال",
|
|
"site_description": "پنل وب آمنزیا — مدیریت سرورها و پروتکلهای AmneziaWG",
|
|
"toggle_theme": "تغییر تم",
|
|
"copied_to_clipboard": "در حافظه کپی شد",
|
|
"share_not_found": "404 یافت نشد",
|
|
"share_not_found_desc": "لینک اشتباه است یا دسترسی غیرفعال شده است.",
|
|
"invalid_captcha": "کد امنیتی اشتباه است",
|
|
"account_disabled": "حساب کاربری غیرفعال است",
|
|
"invalid_login": "نام کاربری یا رمز عبور اشتباه است",
|
|
"user_exists": "کاربری با این نام قبلاً ثبت شده است",
|
|
"cannot_delete_self": "شما نمیتوانید خودتان را حذف کنید",
|
|
"wrong_share_password": "رمز عبور اشتباه است",
|
|
"saving": "در حال ذخیره...",
|
|
"select_lang": "انتخاب زبان",
|
|
"lang_ru": "Русский",
|
|
"lang_en": "English",
|
|
"lang_fr": "Français",
|
|
"lang_zh": "中文 (Chinese)",
|
|
"lang_fa": "فارسی (Persian)",
|
|
"backup_title": "پشتیبانگیری ساده",
|
|
"download_backup": "دانلود data.json",
|
|
"restore_backup": "بازیابی از فایل",
|
|
"restore_confirm": "آیا مطمئن هستید؟ دادههای فعلی بازنویسی میشوند و برنامه دوباره راهاندازی خواهد شد.",
|
|
"restore_success": "بازیابی موفقیتآمیز بود! در حال راهاندازی مجدد...",
|
|
"invalid_backup_file": "فایل پشتیبان یا ساختار نامعتبر است",
|
|
"config_unavailable": "پیکربندی در دسترس نیست",
|
|
"config_unavailable_desc": "این کلاینت از طریق اپلیکیشن اصلی Amnezia ایجاد شده است.\\nکلید خصوصی فقط در دستگاه کاربر ذخیره میشود و توسط سرور قابل بازیابی نیست.",
|
|
"client_public_key": "کلید عمومی کلاینت:",
|
|
"management": "مدیریت",
|
|
"server_management": "مدیریت سرور",
|
|
"server_management_desc": "انجام اقدامات در سطح سیستم روی دستگاه شما.",
|
|
"check_server_services": "بررسی سرویسهای سرور",
|
|
"reboot_server": "راهاندازی مجدد سرور",
|
|
"clear_server": "پاکسازی سرور",
|
|
"remove_server": "حذف سرور از پنل",
|
|
"telemt_desc": "پروکسی تلگرام بر پایهی MTProxy با پوششهای پیشرفته.",
|
|
"dns_desc": "سرور DNS شخصی برای مسدود کردن تبلیغات و حفظ حریم خصوصی.",
|
|
"dns_internal_hint": "The service runs on the internal network (172.29.172.254) without binding to host ports.",
|
|
"telemt_port_hint": "Port for the Telegram proxy (typically 443).",
|
|
"socks5_desc": "Single-account SOCKS5 proxy (3proxy) with username/password authentication.",
|
|
"socks5_username": "Username",
|
|
"socks5_password": "Password",
|
|
"socks5_password_placeholder": "Leave empty to auto-generate",
|
|
"socks5_password_hint": "If left empty, a random 16-character password will be generated.",
|
|
"socks5_port_hint": "TCP port the proxy will listen on. The default in the official Amnezia client is 38080.",
|
|
"socks5_change_settings": "Change settings",
|
|
"socks5_settings_title": "SOCKS5 — Connection settings",
|
|
"socks5_port_change_hint": "Changing the port recreates the container; existing sessions will be dropped.",
|
|
"socks5_settings_saved": "SOCKS5 settings saved",
|
|
"adguard_desc": "AdGuard Home — DNS-based ad blocker with a web admin UI.",
|
|
"adguard_mode": "Installation mode",
|
|
"adguard_mode_sidebyside": "Side-by-side",
|
|
"adguard_mode_sidebyside_hint": "runs alongside AmneziaDNS on a separate internal IP (172.29.172.253)",
|
|
"adguard_mode_replace": "Replace AmneziaDNS",
|
|
"adguard_mode_replace_hint": "removes amnezia-dns and takes its IP — VPN clients use AdGuard immediately",
|
|
"adguard_dns_port": "DNS port (53)",
|
|
"adguard_dns_port_hint": "Internal DNS port served to VPN clients via the docker network.",
|
|
"adguard_web_port": "Web UI port",
|
|
"adguard_dot_port": "DoT port",
|
|
"adguard_doh_port": "DoH port",
|
|
"adguard_expose_web": "Expose to internet",
|
|
"adguard_expose": "Expose to host",
|
|
"adguard_install_hint": "Initial AdGuard setup runs through its built-in wizard via the web UI after install.",
|
|
"adguard_internal_ip": "Internal IP",
|
|
"adguard_web_ui": "Admin URL",
|
|
"adguard_open_ui": "Open Web UI",
|
|
"edit_server_title": "Edit server",
|
|
"edit_keep_credential": "Leave empty to keep the current value",
|
|
"server_saved": "Server settings saved",
|
|
"servers_reordered": "Servers reordered",
|
|
"ping_checking": "Checking connectivity...",
|
|
"offline": "offline",
|
|
"api_tokens_title": "API tokens",
|
|
"api_tokens_hint": "Bearer tokens for external integrations. Send the token in the `Authorization: Bearer <token>` header. Tokens have admin-equivalent rights and stop working if their owner is disabled or demoted.",
|
|
"api_tokens_empty": "No API tokens yet. Create one to integrate the panel with an external service.",
|
|
"api_tokens_create": "Create token",
|
|
"api_tokens_create_title": "Create API token",
|
|
"api_tokens_name_label": "Name",
|
|
"api_tokens_name_placeholder": "e.g. Linear integration, CI bot, monitoring",
|
|
"api_tokens_name_hint": "Used to identify this token in the list. The token value itself is generated for you.",
|
|
"api_tokens_name_required": "Token name is required",
|
|
"api_tokens_created_title": "Token created",
|
|
"api_tokens_value_label": "Token value",
|
|
"api_tokens_warning_title": "This is the only time you'll see this token.",
|
|
"api_tokens_warning_body": "Copy it now and store it in your integration's secret manager. The panel keeps only a hash — if you lose this value you'll need to revoke and recreate the token.",
|
|
"api_tokens_revoke": "Revoke",
|
|
"api_tokens_revoke_confirm": "Revoke token \"{}\"? Any integration using it will stop working.",
|
|
"api_tokens_revoked": "Token revoked",
|
|
"api_tokens_created": "Created",
|
|
"api_tokens_last_used": "Last used",
|
|
"api_tokens_owner": "Owner",
|
|
"api_tokens_never": "never",
|
|
"coming_soon": "Coming soon",
|
|
"promo_star_cta": "Star us on GitHub",
|
|
"aivpn_subtitle": "AI-driven protocol selection that picks the right tunnel for the moment. Land it sooner — drop a star.",
|
|
"revproxy_title": "Reverse Proxy",
|
|
"revproxy_subtitle": "High-performance traffic obfuscation: hide your VPN endpoint behind a polished public-facing site, drop the DPI footprint.",
|
|
"revproxy_desc": "Caddy reverse proxy with a decoy website on ports 80/443. Masks VPN traffic behind a normal HTTPS site to reduce DPI detection.",
|
|
"revproxy_domain": "Domain name",
|
|
"revproxy_domain_hint": "Optional. Point DNS A-record to this server for Let's Encrypt TLS. Leave empty for a self-signed certificate.",
|
|
"revproxy_site_title": "Site title",
|
|
"revproxy_tls_email": "ACME email",
|
|
"revproxy_tls_email_hint": "Required for automatic Let's Encrypt certificates when a domain is set.",
|
|
"revproxy_backend": "VPN backend",
|
|
"revproxy_backend_none": "Decoy site only",
|
|
"revproxy_backend_port": "Backend port",
|
|
"revproxy_vpn_path": "Secret tunnel path",
|
|
"revproxy_vpn_path_hint": "Hidden path proxied to the VPN backend (e.g. /cdn-cgi/challenge).",
|
|
"revproxy_telemt_mask": "Enable Telemt site masking via Caddy",
|
|
"revproxy_install_hint": "Port 443 is used by the reverse proxy. Reinstall Xray/Telemt on an internal port (e.g. 8443) before enabling backend routing.",
|
|
"revproxy_port_hint": "Reverse proxy binds host ports 80 and 443 (HTTPS + HTTP/3).",
|
|
"revproxy_site": "Decoy site",
|
|
"revproxy_open_site": "Open site",
|
|
"revproxy_change_settings": "Settings",
|
|
"revproxy_settings_title": "Reverse Proxy Settings",
|
|
"ssl_provider_label": "Certificate source",
|
|
"ssl_provider_manual": "Manual (paths / paste)",
|
|
"ssl_provider_cloudflare": "Cloudflare (auto Let's Encrypt)",
|
|
"cf_token_label": "Cloudflare API Token",
|
|
"cf_token_hint": "Create a token with Zone:DNS:Edit and Zone:Zone:Read permissions. Used for DNS-01 validation only — port 80/443 stays free.",
|
|
"acme_email_label": "Email (Let's Encrypt notifications)",
|
|
"acme_staging_label": "Use staging (test certificates)",
|
|
"cf_issue_btn": "Issue / Renew certificate",
|
|
"cf_issue_hint": "Issues a real Let's Encrypt certificate via Cloudflare DNS without binding port 443. Restart the panel afterwards to apply.",
|
|
"cf_issuing": "Issuing...",
|
|
"cf_issued_ok": "Certificate issued successfully",
|
|
"cf_restart_required": "Restart the panel to apply the new certificate",
|
|
"cf_need_domain": "Enter a domain first",
|
|
"cf_cert_active": "Active",
|
|
"cf_cert_none": "No certificate yet",
|
|
"cf_days_left": "days left"
|
|
}
|