diff --git a/frontend/src/i18n/locales/ar.ts b/frontend/src/i18n/locales/ar.ts index a575435..6052f92 100644 --- a/frontend/src/i18n/locales/ar.ts +++ b/frontend/src/i18n/locales/ar.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"لوحة 3m-ui"},"nav":{"dashboard":"لوحة المعلومات","listeners":"العقد","users":"المستخدمون","traffic":"المرور","cluster":"العنقود","routing":"التوجيه","core":"النواة","logs":"السجلات","config":"محرك الإعداد","share":"مشاركة","settings":"الإعدادات","logout":"خروج"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"حفظ","cancel":"إلغاء","delete":"حذف","edit":"تعديل","create":"إنشاء","confirm":"تأكيد","close":"إغلاق","copy":"نسخ","download":"Download","refresh":"تحديث","loading":"جاري التحميل…","empty":"لا بيانات","search":"بحث","actions":"إجراءات","status":"الحالة","enabled":"مفعّل","disabled":"معطّل","name":"الاسم","type":"Type","port":"المنفذ","protocol":"البروتوكول","address":"Address","password":"Password","username":"Username","submit":"إرسال","success":"نجاح","error":"خطأ","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"حسناً","yes":"نعم","no":"لا","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"تسجيل الدخول","subtitle":"لوحة Mihomo","username":"اسم المستخدم","password":"كلمة المرور","button":"دخول","welcomeBack":"مرحبًا بعودتك","failed":"فشل تسجيل الدخول", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"عيّن كلمة مرور جديدة قبل استخدام اللوحة.","title":"تغيير كلمة المرور","current":"الحالية","new":"الجديدة","confirm":"تأكيد","button":"تحديث","success":"تم التحديث","failed":"فشل","mismatch":"غير متطابق"},"dashboard":{"title":"لوحة المعلومات","subtitle":"System & Core Overview","status":"Core Status","running":"يعمل","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"المرور","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"متوقف","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"المستخدمون","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"العقد"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"العقد","create":"إنشاء","edit":"تعديل","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"الحالة","actions":"إجراءات","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"البروتوكول","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"الأمان","sectionTransport":"النقل","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"النواة","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"بدء","stop":"إيقاف","restart":"إعادة تشغيل","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"تحديثات Mihomo","description":"اختر إصدارًا رسميًا مستقرًا أو تجريبيًا (Pre). يكتمل التنزيل والتحقق من الإعداد قبل تبديل النواة؛ عند الفشل تُستعاد النواة السابقة. التحديث يدوي فقط.","source":"مصدر النواة","managed":"إصدار محدد (دائم)","bundled":"مرفق مع اللوحة","previous":"الإصدار السابق","noPrevious":"لا يوجد إصدار سابق","unavailable":"تحديثات النواة غير متاحة","check":"التحقق من التحديثات","select":"اختر الإصدار","latest":"الأحدث","current":"الحالي","install":"تثبيت الإصدار","rollback":"استعادة الإصدار السابق","releaseNotes":"ملاحظات الإصدار","noVersions":"لا تتوفر إصدارات مستقرة قابلة للتحقق لهذه المنصة.","running":"التحديث قيد التنفيذ","failed":"فشل التحديث","succeeded":"اكتمل التحديث","restored":"تمت استعادة النواة السابقة وحالة التشغيل.","confirm":"تبديل Mihomo إلى","interruption":"ستُقطع اتصالات الوكيل مؤقتًا أثناء التبديل. تُحفظ الإعدادات والحسابات.","staysStopped":"ستبقى النواة متوقفة بعد التثبيت. تُحفظ الإعدادات والحسابات.","steps":{"prepare":"تحضير","download":"تنزيل والتحقق","validate":"فحص الإعداد","activate":"تبديل وفحص"},"stage":{"interrupted":"توقف بسبب إعادة تشغيل اللوحة","preparing":"تحضير التحديث","resolving":"تحديد الإصدار الرسمي","downloading":"تنزيل النواة؛ النواة الحالية ما زالت تعمل","verifying":"التحقق من SHA-256","validating":"فحص الملف التنفيذي والإعداد الحالي","switching":"تبديل النواة","starting":"تشغيل النواة المحددة","checking":"فحص العملية والمنافذ","recovering":"استعادة النواة السابقة","complete":"اكتمل"},"stable":"مستقر","pre":"إصدار Pre","preNotice":"إصدارات Pre تجريبية وقد تواجه مشاكل توافق. التثبيت يتحقق من البناء المحدد؛ إذا تغيّر البناء الرسمي، تحقق من التحديثات مجددًا."}},"logs":{"title":"السجلات","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"تحديث"},"config":{"title":"محرك الإعداد","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"تحقق","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"تطبيق","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"معاينة"},"users":{"title":"المستخدمون","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"إنشاء","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"المرور","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"الانتهاء","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"رابط الاشتراك","group":"المجموعة","tags":"الوسوم","trafficResetDays":"دورة إعادة ضبط المرور (أيام)","expireRenewDays":"دورة تجديد الانتهاء (أيام)","trafficResetDaysHint":"0 = متوقف. كل N يومًا.","expireRenewDaysHint":"0 = متوقف. بعد الانتهاء +N يومًا.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"المرور","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"الإجمالي","used":"المستخدم","remaining":"المتبقي"},"cluster":{"title":"العنقود","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"الاسم","colProtocol":"البروتوكول","colPort":"المنفذ","operationOk":"OK"},"routing":{"title":"التوجيه","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"الإعدادات","subtitle":"Preferences & Account","language":"اللغة","theme":"السمة","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"رابط عام","warp":"Cloudflare WARP","warpHint":"تسجيل WARP لدى Cloudflare وإنشاء YAML لـ WireGuard في Mihomo.","warpRegister":"تسجيل WARP","warpDone":"تم تسجيل WARP — تم نسخ YAML", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"مشاركة","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"المستخدم","tabSub":"اشتراك","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"تصدير كل روابط الاشتراك","exported":"تم تصدير روابط الاشتراك"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"لوحة 3m-ui"},"nav":{"dashboard":"لوحة المعلومات","listeners":"العقد","users":"المستخدمون","traffic":"المرور","cluster":"العنقود","routing":"التوجيه","core":"النواة","logs":"السجلات","config":"محرك الإعداد","share":"مشاركة","settings":"الإعدادات","logout":"خروج"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"حفظ","cancel":"إلغاء","delete":"حذف","edit":"تعديل","create":"إنشاء","confirm":"تأكيد","close":"إغلاق","copy":"نسخ","download":"Download","refresh":"تحديث","loading":"جاري التحميل…","empty":"لا بيانات","search":"بحث","actions":"إجراءات","status":"الحالة","enabled":"مفعّل","disabled":"معطّل","name":"الاسم","type":"Type","port":"المنفذ","protocol":"البروتوكول","address":"Address","password":"Password","username":"Username","submit":"إرسال","success":"نجاح","error":"خطأ","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"حسناً","yes":"نعم","no":"لا","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"تسجيل الدخول","subtitle":"لوحة Mihomo","username":"اسم المستخدم","password":"كلمة المرور","button":"دخول","welcomeBack":"مرحبًا بعودتك","failed":"فشل تسجيل الدخول","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"عيّن كلمة مرور جديدة قبل استخدام اللوحة.","title":"تغيير كلمة المرور","current":"الحالية","new":"الجديدة","confirm":"تأكيد","button":"تحديث","success":"تم التحديث","failed":"فشل","mismatch":"غير متطابق"},"dashboard":{"title":"لوحة التحكم","subtitle":"نظرة عامة على النظام وحالة النواة","status":"حالة النواة","running":"يعمل","stoppedStatus":"متوقف","version":"الإصدار","pid":"PID","uptime":"وقت التشغيل","listeners":"إحصائيات العقد","total":"الإجمالي","enabled":"مفعّل","disabled":"معطّل","system":"موارد النظام","cpu":"CPU","memory":"الذاكرة","disk":"القرص","network":"الشبكة","upload":"رفع","download":"تنزيل","traffic":"إحصائيات المرور","uploadRate":"معدل الرفع","downloadRate":"معدل التنزيل","totalUpload":"إجمالي الرفع","totalDownload":"إجمالي التنزيل","onlineUsers":"المستخدمون المتصلون","activeConnections":"الاتصالات النشطة","start":"بدء","stop":"إيقاف","restart":"إعادة تشغيل","started":"تم بدء النواة","stopped":"تم إيقاف النواة","restarted":"تمت إعادة تشغيل النواة","operationFailed":"فشل العملية","unavailable":"الحالة غير متاحة","users":"المستخدمون","totalUsers":"إجمالي المستخدمين","enabledUsers":"المستخدمون النشطون"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"العقد","create":"إنشاء","edit":"تعديل","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"الحالة","actions":"إجراءات","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"البروتوكول","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"الأمان","sectionTransport":"النقل","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"النواة","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"بدء","stop":"إيقاف","restart":"إعادة تشغيل","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"تحديثات Mihomo","description":"اختر إصدارًا رسميًا مستقرًا أو تجريبيًا (Pre). يكتمل التنزيل والتحقق من الإعداد قبل تبديل النواة؛ عند الفشل تُستعاد النواة السابقة. التحديث يدوي فقط.","source":"مصدر النواة","managed":"إصدار محدد (دائم)","bundled":"مرفق مع اللوحة","previous":"الإصدار السابق","noPrevious":"لا يوجد إصدار سابق","unavailable":"تحديثات النواة غير متاحة","check":"التحقق من التحديثات","select":"اختر الإصدار","latest":"الأحدث","current":"الحالي","install":"تثبيت الإصدار","rollback":"استعادة الإصدار السابق","releaseNotes":"ملاحظات الإصدار","noVersions":"لا تتوفر إصدارات مستقرة قابلة للتحقق لهذه المنصة.","running":"التحديث قيد التنفيذ","failed":"فشل التحديث","succeeded":"اكتمل التحديث","restored":"تمت استعادة النواة السابقة وحالة التشغيل.","confirm":"تبديل Mihomo إلى","interruption":"ستُقطع اتصالات الوكيل مؤقتًا أثناء التبديل. تُحفظ الإعدادات والحسابات.","staysStopped":"ستبقى النواة متوقفة بعد التثبيت. تُحفظ الإعدادات والحسابات.","steps":{"prepare":"تحضير","download":"تنزيل والتحقق","validate":"فحص الإعداد","activate":"تبديل وفحص"},"stage":{"interrupted":"توقف بسبب إعادة تشغيل اللوحة","preparing":"تحضير التحديث","resolving":"تحديد الإصدار الرسمي","downloading":"تنزيل النواة؛ النواة الحالية ما زالت تعمل","verifying":"التحقق من SHA-256","validating":"فحص الملف التنفيذي والإعداد الحالي","switching":"تبديل النواة","starting":"تشغيل النواة المحددة","checking":"فحص العملية والمنافذ","recovering":"استعادة النواة السابقة","complete":"اكتمل"},"stable":"مستقر","pre":"إصدار Pre","preNotice":"إصدارات Pre تجريبية وقد تواجه مشاكل توافق. التثبيت يتحقق من البناء المحدد؛ إذا تغيّر البناء الرسمي، تحقق من التحديثات مجددًا."}},"logs":{"title":"السجلات","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"محرك الإعداد","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"تحقق","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"تطبيق","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"المستخدمون","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"إنشاء","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"المرور","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"الانتهاء","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"المجموعة","tags":"الوسوم","trafficResetDays":"دورة إعادة ضبط المرور (أيام)","expireRenewDays":"دورة تجديد الانتهاء (أيام)","trafficResetDaysHint":"0 = متوقف. كل N يومًا.","expireRenewDaysHint":"0 = متوقف. بعد الانتهاء +N يومًا.","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"المرور","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"العنقود","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"الاسم","colProtocol":"البروتوكول","colPort":"المنفذ","operationOk":"OK"},"routing":{"title":"التوجيه","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"اللوحة / الواجهة","navAccess":"ملف الوصول","navTelegram":"Telegram","navSecurity":"الأمان والنسخ الاحتياطي","navSubscription":"صفحة الاشتراك","navSSL":"الشهادات / SSL","navNetwork":"الوكيل و Geo","navTraffic":"إعادة تعيين المرور","navAbout":"حول","panelServer":"خادم اللوحة","panelPort":"منفذ اللوحة","panelPortHint":"منفذ واجهة الويب للوحة","panelListen":"عنوان الاستماع","panelListenHint":"مثال: 0.0.0.0 أو ::","panelPublicURL":"عنوان URL العام","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"إعدادات النظام","subtitle":"التفضيلات والحساب","language":"لغة الواجهة","theme":"السمة","light":"فاتح","dark":"داكن","system":"النظام","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"تغيير كلمة المرور","about":"حول 3M-UI","version":"الإصدار","backup":"النسخ الاحتياطي والاستعادة","backupHint":"نزّل ملف zip يحتوي SQLite وإعدادات Mihomo. أعد تشغيل اللوحة بعد استعادة قاعدة البيانات.","downloadBackup":"تنزيل النسخة الاحتياطية","restoreDb":"Restore database","backupDone":"تم تنزيل النسخة الاحتياطية","restoreDone":"Database restored — restart the panel","apiDocs":"وثائق API","apiDocsHint":"مواصفة OpenAPI 3 للأتمتة.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"تنبيهات Telegram","botToken":"Bot Token","chatIds":"معرّفات الدردشة","telegramSaved":"تم حفظ إعدادات Telegram","telegramTest":"إرسال رسالة اختبار","telegramTestOk":"تم إرسال رسالة الاختبار","chatIdsHint":"معرّفات الدردشة مفصولة بفواصل","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"النطاق","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"معالج الشهادات","email":"البريد","webroot":"Webroot path","generateAcme":"إنشاء أمر certbot","acmeGenerated":"تم إنشاء الأمر","acmeHint":"نفّذ الأمر على الخادم ثم ضع المسارات في Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"نزّل أحدث قواعد MetaCubeX GeoIP/GeoSite إلى مجلد بيانات Mihomo.","updateGeofiles":"تحديث ملفات Geo","geofilesDone":"تم تحديث ملفات Geo","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"تسجيل WARP WireGuard بنقرة واحدة (مقطع YAML لـ outbound Mihomo)","warpRegister":"تسجيل WARP","warpDone":"تم تسجيل WARP — تم نسخ YAML","totp":"المصادقة الثنائية (TOTP)","totpOn":"مفعّل","totpSetup":"امسح بتطبيق المصادقة أو أدخل المفتاح","totpSetupBtn":"إعداد المصادقة الثنائية","totpEnable":"تفعيل","totpDisable":"تعطيل المصادقة الثنائية","webPathHint":"مثال: /secret — نشر اللوحة تحت مسار (الاشتراكات دون تغيير)"},"share":{"title":"مشاركة","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"المستخدم","tabSub":"اشتراك","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"تصدير كل روابط الاشتراك","exported":"تم تصدير روابط الاشتراك"}} as const; diff --git a/frontend/src/i18n/locales/de.ts b/frontend/src/i18n/locales/de.ts index dd245b1..94da759 100644 --- a/frontend/src/i18n/locales/de.ts +++ b/frontend/src/i18n/locales/de.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"3m-ui Panel"},"nav":{"dashboard":"Übersicht","listeners":"Knoten","users":"Benutzer","traffic":"Traffic","cluster":"Cluster","routing":"Routing","core":"Core","logs":"Protokolle","config":"Config-Engine","share":"Teilen","settings":"Einstellungen","logout":"Abmelden"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Speichern","cancel":"Abbrechen","delete":"Löschen","edit":"Bearbeiten","create":"Erstellen","confirm":"Bestätigen","close":"Schließen","copy":"Kopieren","download":"Download","refresh":"Aktualisieren","loading":"Laden…","empty":"Keine Daten","search":"Suchen","actions":"Aktionen","status":"Status","enabled":"Aktiv","disabled":"Inaktiv","name":"Name","type":"Type","port":"Port","protocol":"Protokoll","address":"Address","password":"Password","username":"Username","submit":"Senden","success":"Erfolg","error":"Fehler","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Ja","no":"Nein","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Anmelden","subtitle":"Mihomo-Panel","username":"Benutzername","password":"Passwort","button":"Anmelden","welcomeBack":"Willkommen zurück","failed":"Anmeldung fehlgeschlagen", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Legen Sie vor der Nutzung ein neues Passwort fest.","title":"Passwort ändern","current":"Aktuell","new":"Neu","confirm":"Bestätigen","button":"Aktualisieren","success":"Aktualisiert","failed":"Fehlgeschlagen","mismatch":"Stimmt nicht überein"},"dashboard":{"title":"Übersicht","subtitle":"Zusammenfassung","status":"Core Status","running":"Läuft","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Speicher","disk":"Festplatte","network":"Network","upload":"Upload","download":"Download","traffic":"Traffic","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Gestoppt","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Benutzer","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Knoten"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Knoten","create":"Erstellen","edit":"Bearbeiten","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Aktionen","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protokoll","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Sicherheit","sectionTransport":"Transport","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Core","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stopp","restart":"Neustart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo-Updates","description":"Wählen Sie eine offizielle Stable- oder Pre-Version. Download und Konfigurationsprüfung erfolgen vor dem Wechsel; bei Fehler wird der vorherige Core wiederhergestellt. Updates nur manuell.","source":"Core-Quelle","managed":"Gewählte Version (dauerhaft)","bundled":"Mit dem Panel gebündelt","previous":"Vorherige Version","noPrevious":"Keine vorherige Version","unavailable":"Core-Updates nicht verfügbar","check":"Nach Updates suchen","select":"Version wählen","latest":"Neueste","current":"Aktuell","install":"Version installieren","rollback":"Vorherige Version wiederherstellen","releaseNotes":"Versionshinweise","noVersions":"Keine überprüfbaren Stable-Releases für diese Plattform.","running":"Update läuft","failed":"Update fehlgeschlagen","succeeded":"Update abgeschlossen","restored":"Vorheriger Core und Laufzustand wiederhergestellt.","confirm":"Mihomo wechseln zu","interruption":"Proxy-Verbindungen werden kurz unterbrochen. Konfiguration und Konten bleiben erhalten.","staysStopped":"Der Core bleibt nach der Installation gestoppt. Konfiguration und Konten bleiben erhalten.","steps":{"prepare":"Vorbereiten","download":"Herunterladen und prüfen","validate":"Konfiguration prüfen","activate":"Wechseln und prüfen"},"stage":{"interrupted":"Durch Panel-Neustart unterbrochen","preparing":"Update vorbereiten","resolving":"Offizielle Version ermitteln","downloading":"Core wird geladen; aktueller Core läuft weiter","verifying":"SHA-256 prüfen","validating":"Binärdatei und Konfiguration prüfen","switching":"Core wechseln","starting":"Gewählten Core starten","checking":"Prozess und Ports prüfen","recovering":"Vorherigen Core wiederherstellen","complete":"Abgeschlossen"},"stable":"Stable","pre":"Pre-Release","preNotice":"Pre-Builds sind Testversionen und können Kompatibilitätsprobleme haben. Die Installation prüft den Build; bei geändertem offiziellem Build erneut nach Updates suchen."}},"logs":{"title":"Protokolle","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Aktualisieren"},"config":{"title":"Config-Engine","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Prüfen","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Anwenden","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Vorschau"},"users":{"title":"Benutzer","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Erstellen","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Traffic","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Ablauf","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Abo-Link","group":"Gruppe","tags":"Tags","trafficResetDays":"Traffic-Reset-Zyklus (Tage)","expireRenewDays":"Ablauf-Verlängerung (Tage)","trafficResetDaysHint":"0 = aus. Traffic alle N Tage zurücksetzen.","expireRenewDaysHint":"0 = aus. Nach Ablauf um N Tage verlängern.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Traffic","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Gesamt","used":"Verbraucht","remaining":"Rest"},"cluster":{"title":"Cluster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Name","colProtocol":"Protokoll","colPort":"Port","operationOk":"OK"},"routing":{"title":"Routing","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Einstellungen","subtitle":"Preferences & Account","language":"Sprache","theme":"Design","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"Öffentliche URL","warp":"Cloudflare WARP","warpHint":"WARP bei Cloudflare registrieren und Mihomo-WireGuard-YAML erzeugen.","warpRegister":"WARP registrieren","warpDone":"WARP registriert — YAML kopiert", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Teilen","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Benutzer","tabSub":"Abo","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Alle Abonnement-Links exportieren","exported":"Abonnement-Links exportiert"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Mihomo-Kern-Verwaltungskonsole"},"nav":{"dashboard":"Dashboard","listeners":"Knotenverwaltung","users":"Benutzerverwaltung","traffic":"Traffic","cluster":"Cluster","routing":"Routing","core":"Kernverwaltung","logs":"Protokolle","config":"Konfigurations-Engine","share":"Share","settings":"Systemeinstellungen","logout":"Abmelden"},"common":{"advanced":"Erweitert","prev":"Previous","next":"Next","saved":"Saved","copied":"Kopiert","copyFailed":"Kopieren fehlgeschlagen — bitte manuell markieren und kopieren","save":"Speichern","cancel":"Abbrechen","delete":"Löschen","edit":"Bearbeiten","create":"Erstellen","confirm":"Bestätigen","close":"Schließen","copy":"Kopieren","download":"Herunterladen","refresh":"Aktualisieren","loading":"Laden…","empty":"Keine Daten","search":"Suchen","actions":"Aktionen","status":"Status","enabled":"Aktiviert","disabled":"Deaktiviert","name":"Name","type":"Type","port":"Port","protocol":"Protocol","address":"Adresse","password":"Password","username":"Username","submit":"Submit","success":"Erfolg","error":"Fehler","confirmDelete":"Wirklich löschen?","back":"Zurück","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Ja","no":"Nein","more":"Mehr","reset":"Zurücksetzen","id":"ID","network":"Network","bound":"Gebunden","missing":"Missing"},"login":{"title":"3M-UI","subtitle":"Mihomo-Kern-Verwaltungskonsole","username":"Benutzername","password":"Passwort","button":"Anmelden","welcomeBack":"Willkommen zurück","failed":"Anmeldung fehlgeschlagen","totpRequired":"Authenticator-Code eingeben","totpVerify":"Prüfen"},"password":{"requiredHint":"You must set a new password before using the panel.","title":"Passwort ändern","current":"Aktuelles Passwort","new":"Neues Passwort","confirm":"Neues Passwort bestätigen","button":"Change Password","success":"Passwort geändert","failed":"Änderung fehlgeschlagen","mismatch":"Neue Passwörter stimmen nicht überein"},"dashboard":{"title":"Dashboard","subtitle":"Systemübersicht und Kernstatus","status":"Kernstatus","running":"Läuft","stoppedStatus":"Gestoppt","version":"Version","pid":"PID","uptime":"Laufzeit","listeners":"Knotenstatistik","total":"Gesamt","enabled":"Aktiviert","disabled":"Deaktiviert","system":"Systemressourcen","cpu":"CPU","memory":"Arbeitsspeicher","disk":"Festplatte","network":"Netzwerk","upload":"Upload","download":"Download","traffic":"Traffic-Statistik","uploadRate":"Upload-Rate","downloadRate":"Download-Rate","totalUpload":"Gesamt-Upload","totalDownload":"Gesamt-Download","onlineUsers":"Benutzer online","activeConnections":"Aktive Verbindungen","start":"Starten","stop":"Stoppen","restart":"Neu starten","started":"Kern gestartet","stopped":"Kern gestoppt","restarted":"Kern neu gestartet","operationFailed":"Vorgang fehlgeschlagen","unavailable":"Status nicht verfügbar","users":"Benutzer","totalUsers":"Benutzer gesamt","enabledUsers":"Aktive Benutzer"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Knotenverwaltung","create":"Knoten erstellen","edit":"Knoten bearbeiten","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Actions","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocol options","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Security","sectionTransport":"Transport","sectionTLS":"TLS certificate","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Kernverwaltung","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stop","restart":"Restart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo updates","description":"Select an official stable or Pre release. Downloads and configuration checks finish before switching the running core; a failed switch restores the previous core. Updates are manual only.","source":"Core source","managed":"Selected version (persistent)","bundled":"Bundled with the panel","previous":"Previous version","noPrevious":"No previous version","unavailable":"Core updates unavailable","check":"Check for updates","select":"Select version","latest":"Latest","current":"Current","install":"Install version","rollback":"Restore previous version","releaseNotes":"Release notes","noVersions":"No verifiable stable releases are available for this platform.","running":"Update in progress","failed":"Update failed","succeeded":"Update complete","restored":"The previous core and its running state have been restored.","confirm":"Switch Mihomo to","interruption":"Active proxy connections will briefly disconnect during the switch. Configuration and accounts are preserved.","staysStopped":"The core will remain stopped after installation. Configuration and accounts are preserved.","steps":{"prepare":"Prepare","download":"Download and verify","validate":"Check configuration","activate":"Switch and check"},"stage":{"interrupted":"Interrupted by a panel restart","preparing":"Preparing update","resolving":"Resolving official release","downloading":"Downloading core; the current core keeps running","verifying":"Verifying SHA-256 checksum","validating":"Checking binary and existing configuration","switching":"Switching core","starting":"Starting selected core","checking":"Checking process and listening sockets","recovering":"Restoring previous core","complete":"Completed"},"stable":"Stable","pre":"Pre release","preNotice":"Pre builds are rolling test releases and may have compatibility issues. Installation verifies the selected build; if the official build has changed, check for updates again."}},"logs":{"title":"Protokolle","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Konfigurations-Engine","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validate config","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Apply","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Benutzerverwaltung","subtitle":"Konten, Traffic, Knotenbindung und Abonnements verwalten.","batch":"Batch","create":"Benutzer erstellen","edit":"Benutzer bearbeiten","username":"Benutzername","password":"Passwort","enabled":"Aktivstatus","deleteConfirm":"Delete this user?","created":"Erstellt","updated":"Aktualisiert","deleted":"Gelöscht","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Knoten wählen","bindSuccess":"Node bindings updated","traffic":"Traffic","trafficLimitGB":"Traffic-Limit (GB)","trafficLimitHint":"0 oder leer = unbegrenzt","expire":"Ablauf","expireHint":"Leer = kein Ablauf","neverExpire":"Nie","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unbegrenzt","resetTraffic":"Traffic zurücksetzen","resetTrafficConfirm":"Traffic-Zähler für diesen Benutzer zurücksetzen?","trafficReset":"Traffic zurückgesetzt","passwordKeep":"Leer lassen, um aktuelles Passwort zu behalten","hwidLimit":"HWID-Gerätelimit","hwidLimitHint":"0 = unbegrenzt. Unterstützt x-hwid von Happ u. a. Clients beim Abo-Import.","ipLimit":"IP-Limit","ipLimitHint":"0 = unbegrenzte parallele Client-IPs","remark":"Bemerkung","shareTitle":"Abonnement","rotateSub":"Abo-Token rotieren","subRotated":"Abo rotiert","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box-Abo","qrHint":"QR = Standard (Mihomo). V2Ray-URL in klassische Clients einfügen.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Remote-Knoten wählen","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Gruppe","tags":"Tags","trafficResetDays":"Traffic-Reset-Zyklus (Tage)","expireRenewDays":"Ablauf-Erneuerungszyklus (Tage)","trafficResetDaysHint":"0 = aus. Setzt den Traffic dieses Benutzers alle N Tage zurück.","expireRenewDaysHint":"0 = aus. Nach Ablauf automatisch um N Tage verlängern.","devices":"Geräte","clearDevices":"Alle leeren","deviceOs":"OS","deviceModel":"Modell","lastSeen":"Zuletzt gesehen","startOnFirstUse":"Ab erster Nutzung","expireDaysAfterFirst":"Tage nach erster Nutzung","externalLinks":"Externe Abo-URLs","externalLinksHint":"Eine Clash/Mihomo-YAML-URL pro Zeile; wird in dieses Benutzer-Abo gemerged"},"traffic":{"title":"Traffic","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Cluster-Knoten","subtitle":"Remote-3m-ui-Panels registrieren und Health-Checks durchführen","create":"Knoten hinzufügen","edit":"Knoten bearbeiten","name":"Name","baseUrl":"Panel-URL","apiToken":"API Token","apiTokenHint":"Optional; zur Authentifizierung am Remote-Panel","remark":"Bemerkung","health":"Health-Check","healthDone":"Geprüft","healthAll":"Alle prüfen","healthAllDone":"Health-Check abgeschlossen","dashboard":"Remote-Dashboard","users":"Remote users","restartCore":"Kern neu starten","restarted":"Remote core restarted","startCore":"Kern starten","stopCore":"Kern stoppen","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote-Knoten","syncNodes":"Knoten synchronisieren","syncDone":"Synchronisiert","pushNode":"Knoten pushen","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Name","colProtocol":"Protocol","colPort":"Port","operationOk":"OK"},"routing":{"title":"Routing","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Zugangsprofil","navTelegram":"Telegram","navSecurity":"Sicherheit & Backup","navSubscription":"Aboseite","navSSL":"Zertifikate / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic-Reset","navAbout":"Über","panelServer":"Panel-Server","panelPort":"Panel-Port","panelPortHint":"Port der Panel-Weboberfläche","panelListen":"Listen-Adresse","panelListenHint":"z. B. 0.0.0.0 oder ::","panelPublicURL":"Öffentliche URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Systemeinstellungen","subtitle":"Einstellungen & Konto","language":"Oberflächensprache","theme":"Design","light":"Hell","dark":"Dunkel","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Passwort ändern","about":"Über 3M-UI","version":"Version","backup":"Backup & Wiederherstellung","backupHint":"Zip mit SQLite und Mihomo-Konfig herunterladen. Nach DB-Wiederherstellung Panel neu starten.","downloadBackup":"Backup herunterladen","restoreDb":"Restore database","backupDone":"Backup heruntergeladen","restoreDone":"Database restored — restart the panel","apiDocs":"API-Dokumentation","apiDocsHint":"OpenAPI-3-Spezifikation für Automatisierung.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram-Benachrichtigungen","botToken":"Bot Token","chatIds":"Chat-IDs","telegramSaved":"Telegram-Einstellungen gespeichert","telegramTest":"Testnachricht senden","telegramTestOk":"Testnachricht gesendet","chatIdsHint":"Chat-IDs kommagetrennt","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Zertifikats-Assistent","email":"E-Mail","webroot":"Webroot path","generateAcme":"Certbot-Befehl erzeugen","acmeGenerated":"Befehl erzeugt","acmeHint":"Befehl auf dem Server ausführen, Zertifikatspfade in Listener-TLS eintragen","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Neueste MetaCubeX GeoIP/GeoSite in Mihomo-Datenverzeichnis laden.","updateGeofiles":"Geo-Dateien aktualisieren","geofilesDone":"Geo-Dateien aktualisiert","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Ein-Klick WARP-WireGuard-Config (YAML-Fragment für Mihomo-Outbound)","warpRegister":"WARP registrieren","warpDone":"WARP registriert — YAML in Zwischenablage","totp":"Zwei-Faktor (TOTP)","totpOn":"Aktiviert","totpSetup":"Mit Authenticator scannen oder Schlüssel eingeben","totpSetupBtn":"Zwei-Faktor einrichten","totpEnable":"Aktivieren","totpDisable":"Zwei-Faktor deaktivieren","webPathHint":"z. B. /secret — Panel unter Pfad veröffentlichen (Abo unverändert)"},"share":{"title":"Teilen","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"User","tabSub":"Subscription links","tabUri":"Node URIs","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Export all subscription links","exported":"Exported subscription links"}} as const; diff --git a/frontend/src/i18n/locales/es.ts b/frontend/src/i18n/locales/es.ts index a7057d9..7871351 100644 --- a/frontend/src/i18n/locales/es.ts +++ b/frontend/src/i18n/locales/es.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Panel 3m-ui"},"nav":{"dashboard":"Panel","listeners":"Nodos","users":"Usuarios","traffic":"Tráfico","cluster":"Clúster","routing":"Enrutamiento","core":"Núcleo","logs":"Registros","config":"Motor de config","share":"Compartir","settings":"Ajustes","logout":"Salir"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Guardar","cancel":"Cancelar","delete":"Eliminar","edit":"Editar","create":"Crear","confirm":"Confirmar","close":"Cerrar","copy":"Copiar","download":"Download","refresh":"Actualizar","loading":"Cargando…","empty":"Sin datos","search":"Buscar","actions":"Acciones","status":"Estado","enabled":"Activo","disabled":"Inactivo","name":"Nombre","type":"Type","port":"Puerto","protocol":"Protocolo","address":"Address","password":"Password","username":"Username","submit":"Enviar","success":"Correcto","error":"Error","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Sí","no":"No","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Iniciar sesión","subtitle":"Panel Mihomo","username":"Usuario","password":"Contraseña","button":"Entrar","welcomeBack":"Bienvenido","failed":"Error de acceso", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Debe establecer una nueva contraseña antes de usar el panel.","title":"Cambiar contraseña","current":"Actual","new":"Nueva","confirm":"Confirmar","button":"Actualizar","success":"Actualizada","failed":"Error","mismatch":"No coinciden"},"dashboard":{"title":"Panel","subtitle":"Resumen","status":"Core Status","running":"En ejecución","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memoria","disk":"Disco","network":"Network","upload":"Upload","download":"Download","traffic":"Tráfico","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Detenido","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Usuarios","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Nodos"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Nodos","create":"Crear","edit":"Editar","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Estado","actions":"Acciones","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocolo","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Seguridad","sectionTransport":"Transporte","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Núcleo","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Iniciar","stop":"Detener","restart":"Reiniciar","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Actualizaciones de Mihomo","description":"Elija una versión oficial estable o Pre. La descarga y la comprobación de configuración terminan antes de cambiar el núcleo; si falla, se restaura el anterior. Solo actualizaciones manuales.","source":"Origen del núcleo","managed":"Versión seleccionada (persistente)","bundled":"Incluido con el panel","previous":"Versión anterior","noPrevious":"Sin versión anterior","unavailable":"Actualizaciones del núcleo no disponibles","check":"Buscar actualizaciones","select":"Seleccionar versión","latest":"Última","current":"Actual","install":"Instalar versión","rollback":"Restaurar versión anterior","releaseNotes":"Notas de la versión","noVersions":"No hay versiones estables verificables para esta plataforma.","running":"Actualización en curso","failed":"Error en la actualización","succeeded":"Actualización completada","restored":"Se restauró el núcleo anterior y su estado.","confirm":"Cambiar Mihomo a","interruption":"Las conexiones proxy se interrumpirán brevemente. Se conservan configuración y cuentas.","staysStopped":"El núcleo seguirá detenido tras la instalación. Se conservan configuración y cuentas.","steps":{"prepare":"Preparar","download":"Descargar y verificar","validate":"Comprobar configuración","activate":"Cambiar y comprobar"},"stage":{"interrupted":"Interrumpido por reinicio del panel","preparing":"Preparando actualización","resolving":"Resolviendo versión oficial","downloading":"Descargando núcleo; el actual sigue en marcha","verifying":"Verificando SHA-256","validating":"Comprobando binario y configuración","switching":"Cambiando núcleo","starting":"Iniciando núcleo seleccionado","checking":"Comprobando proceso y puertos","recovering":"Restaurando núcleo anterior","complete":"Completado"},"stable":"Estable","pre":"Pre-lanzamiento","preNotice":"Las builds Pre son de prueba y pueden tener problemas de compatibilidad. La instalación verifica la build; si cambió la oficial, vuelva a buscar actualizaciones."}},"logs":{"title":"Registros","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Actualizar"},"config":{"title":"Motor de config","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validar","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Aplicar","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Vista previa"},"users":{"title":"Usuarios","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Crear","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Tráfico","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Caducidad","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Enlace de suscripción","group":"Grupo","tags":"Etiquetas","trafficResetDays":"Ciclo de reinicio de tráfico (días)","expireRenewDays":"Ciclo de renovación al vencer (días)","trafficResetDaysHint":"0 = off. Reinicia el tráfico cada N días.","expireRenewDaysHint":"0 = off. Tras vencer, amplía N días.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Tráfico","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Total","used":"Usado","remaining":"Restante"},"cluster":{"title":"Clúster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Nombre","colProtocol":"Protocolo","colPort":"Puerto","operationOk":"OK"},"routing":{"title":"Enrutamiento","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Ajustes","subtitle":"Preferences & Account","language":"Idioma","theme":"Tema","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"URL pública","warp":"Cloudflare WARP","warpHint":"Registra WARP en Cloudflare y genera YAML WireGuard para Mihomo.","warpRegister":"Registrar WARP","warpDone":"WARP registrado — YAML copiado", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Compartir","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Usuario","tabSub":"Suscripción","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Exportar todos los enlaces de suscripción","exported":"Enlaces de suscripción exportados"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Consola de gestión del núcleo Mihomo"},"nav":{"dashboard":"Panel","listeners":"Gestión de nodos","users":"Gestión de usuarios","traffic":"Tráfico","cluster":"Clúster","routing":"Enrutamiento","core":"Gestión del núcleo","logs":"Registros","config":"Motor de configuración","share":"Share","settings":"Ajustes del sistema","logout":"Cerrar sesión"},"common":{"advanced":"Avanzado","prev":"Previous","next":"Next","saved":"Saved","copied":"Copiado","copyFailed":"Error al copiar — seleccione y copie manualmente","save":"Guardar","cancel":"Cancelar","delete":"Eliminar","edit":"Editar","create":"Crear","confirm":"Confirmar","close":"Cerrar","copy":"Copiar","download":"Descargar","refresh":"Actualizar","loading":"Cargando…","empty":"Sin datos","search":"Buscar","actions":"Acciones","status":"Estado","enabled":"Activado","disabled":"Desactivado","name":"Nombre","type":"Type","port":"Puerto","protocol":"Protocol","address":"Dirección","password":"Password","username":"Username","submit":"Submit","success":"Éxito","error":"Error","confirmDelete":"¿Seguro que desea eliminar?","back":"Atrás","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Sí","no":"No","more":"Más","reset":"Restablecer","id":"ID","network":"Network","bound":"Vinculado","missing":"Missing"},"login":{"title":"3M-UI","subtitle":"Consola de gestión del núcleo Mihomo","username":"Usuario","password":"Contraseña","button":"Iniciar sesión","welcomeBack":"Bienvenido de nuevo","failed":"Error de inicio de sesión","totpRequired":"Introduzca el código del autenticador","totpVerify":"Verificar"},"password":{"requiredHint":"You must set a new password before using the panel.","title":"Cambiar contraseña","current":"Contraseña actual","new":"Nueva contraseña","confirm":"Confirmar nueva contraseña","button":"Change Password","success":"Contraseña cambiada","failed":"Error al cambiar","mismatch":"Las nuevas contraseñas no coinciden"},"dashboard":{"title":"Panel","subtitle":"Resumen del sistema y estado del núcleo","status":"Estado del núcleo","running":"En ejecución","stoppedStatus":"Detenido","version":"Versión","pid":"PID","uptime":"Tiempo activo","listeners":"Estadísticas de nodos","total":"Total","enabled":"Activado","disabled":"Desactivado","system":"Recursos del sistema","cpu":"CPU","memory":"Memoria","disk":"Disco","network":"Red","upload":"Subida","download":"Descarga","traffic":"Estadísticas de tráfico","uploadRate":"Tasa de subida","downloadRate":"Tasa de descarga","totalUpload":"Subida total","totalDownload":"Descarga total","onlineUsers":"Usuarios en línea","activeConnections":"Conexiones activas","start":"Iniciar","stop":"Detener","restart":"Reiniciar","started":"Núcleo iniciado","stopped":"Núcleo detenido","restarted":"Núcleo reiniciado","operationFailed":"Operación fallida","unavailable":"Estado no disponible","users":"Usuarios","totalUsers":"Usuarios totales","enabledUsers":"Usuarios activos"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Gestión de nodos","create":"Crear nodo","edit":"Editar nodo","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Actions","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocol options","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Security","sectionTransport":"Transport","sectionTLS":"TLS certificate","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Gestión del núcleo","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stop","restart":"Restart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo updates","description":"Select an official stable or Pre release. Downloads and configuration checks finish before switching the running core; a failed switch restores the previous core. Updates are manual only.","source":"Core source","managed":"Selected version (persistent)","bundled":"Bundled with the panel","previous":"Previous version","noPrevious":"No previous version","unavailable":"Core updates unavailable","check":"Check for updates","select":"Select version","latest":"Latest","current":"Current","install":"Install version","rollback":"Restore previous version","releaseNotes":"Release notes","noVersions":"No verifiable stable releases are available for this platform.","running":"Update in progress","failed":"Update failed","succeeded":"Update complete","restored":"The previous core and its running state have been restored.","confirm":"Switch Mihomo to","interruption":"Active proxy connections will briefly disconnect during the switch. Configuration and accounts are preserved.","staysStopped":"The core will remain stopped after installation. Configuration and accounts are preserved.","steps":{"prepare":"Prepare","download":"Download and verify","validate":"Check configuration","activate":"Switch and check"},"stage":{"interrupted":"Interrupted by a panel restart","preparing":"Preparing update","resolving":"Resolving official release","downloading":"Downloading core; the current core keeps running","verifying":"Verifying SHA-256 checksum","validating":"Checking binary and existing configuration","switching":"Switching core","starting":"Starting selected core","checking":"Checking process and listening sockets","recovering":"Restoring previous core","complete":"Completed"},"stable":"Stable","pre":"Pre release","preNotice":"Pre builds are rolling test releases and may have compatibility issues. Installation verifies the selected build; if the official build has changed, check for updates again."}},"logs":{"title":"Registros","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Motor de configuración","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validate config","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Apply","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Gestión de usuarios","subtitle":"Gestionar cuentas, tráfico, vinculación de nodos y suscripciones.","batch":"Batch","create":"Crear usuario","edit":"Editar usuario","username":"Usuario","password":"Contraseña","enabled":"Estado activo","deleteConfirm":"Delete this user?","created":"Creado","updated":"Actualizado","deleted":"Eliminado","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Seleccionar nodos","bindSuccess":"Node bindings updated","traffic":"Tráfico","trafficLimitGB":"Límite de tráfico (GB)","trafficLimitHint":"0 o vacío = ilimitado","expire":"Caducidad","expireHint":"Vacío = sin caducidad","neverExpire":"Nunca","online":"En línea","offline":"Desconectado","blocked":"Blocked","unlimited":"Ilimitado","resetTraffic":"Reiniciar tráfico","resetTrafficConfirm":"¿Reiniciar contadores de tráfico de este usuario?","trafficReset":"Tráfico reiniciado","passwordKeep":"Dejar en blanco para mantener la contraseña actual","hwidLimit":"Límite de dispositivos HWID","hwidLimitHint":"0 = ilimitado. Compatible con x-hwid de clientes Happ etc. al importar la suscripción.","ipLimit":"Límite de IP","ipLimitHint":"0 = IPs de cliente concurrentes ilimitadas","remark":"Nota","shareTitle":"Suscripción","rotateSub":"Rotar token de suscripción","subRotated":"Suscripción rotada","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Suscripción Sing-box","qrHint":"QR = predeterminado (Mihomo). Pegue la URL V2Ray en clientes clásicos.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Seleccionar nodos remotos","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Grupo","tags":"Etiquetas","trafficResetDays":"Ciclo de reinicio de tráfico (días)","expireRenewDays":"Ciclo de renovación de caducidad (días)","trafficResetDaysHint":"0 = desactivado. Reinicia el tráfico de este usuario cada N días.","expireRenewDaysHint":"0 = desactivado. Tras caducar, ampliar automáticamente N días.","devices":"Dispositivos","clearDevices":"Vaciar todo","deviceOs":"SO","deviceModel":"Modelo","lastSeen":"Última vez","startOnFirstUse":"Desde el primer uso","expireDaysAfterFirst":"Días tras el primer uso","externalLinks":"URL de suscripción externas","externalLinksHint":"Una URL YAML Clash/Mihomo por línea; se fusiona en la suscripción de este usuario"},"traffic":{"title":"Tráfico","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Nodos del clúster","subtitle":"Registrar paneles 3m-ui remotos y comprobar su estado","create":"Añadir nodo","edit":"Editar nodo","name":"Nombre","baseUrl":"URL del panel","apiToken":"API Token","apiTokenHint":"Opcional; autenticación en el panel remoto","remark":"Nota","health":"Comprobación de salud","healthDone":"Comprobado","healthAll":"Comprobar todo","healthAllDone":"Comprobación de salud finalizada","dashboard":"Panel remoto","users":"Remote users","restartCore":"Reiniciar núcleo","restarted":"Remote core restarted","startCore":"Iniciar núcleo","stopCore":"Detener núcleo","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Nodos remotos","syncNodes":"Sincronizar nodos","syncDone":"Sincronizado","pushNode":"Enviar nodo","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Name","colProtocol":"Protocol","colPort":"Port","operationOk":"OK"},"routing":{"title":"Enrutamiento","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Perfil de acceso","navTelegram":"Telegram","navSecurity":"Seguridad y copia","navSubscription":"Página de suscripción","navSSL":"Certificados / SSL","navNetwork":"Proxy y Geo","navTraffic":"Reinicio de tráfico","navAbout":"Acerca de","panelServer":"Servidor del panel","panelPort":"Puerto del panel","panelPortHint":"Puerto de la interfaz web del panel","panelListen":"Dirección de escucha","panelListenHint":"p. ej. 0.0.0.0 o ::","panelPublicURL":"URL pública","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Ajustes del sistema","subtitle":"Preferencias y cuenta","language":"Idioma de la interfaz","theme":"Tema","light":"Claro","dark":"Oscuro","system":"Sistema","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Cambiar contraseña","about":"Acerca de 3M-UI","version":"Versión","backup":"Copia de seguridad y restauración","backupHint":"Descargar zip con SQLite y config Mihomo. Reinicie el panel tras restaurar.","downloadBackup":"Descargar copia","restoreDb":"Restore database","backupDone":"Copia descargada","restoreDone":"Database restored — restart the panel","apiDocs":"Documentación API","apiDocsHint":"Especificación OpenAPI 3 para automatización.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Alertas de Telegram","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Ajustes de Telegram guardados","telegramTest":"Enviar mensaje de prueba","telegramTestOk":"Mensaje de prueba enviado","chatIdsHint":"Chat IDs separados por comas","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Dominio","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Asistente de certificados","email":"Correo","webroot":"Webroot path","generateAcme":"Generar comando certbot","acmeGenerated":"Comando generado","acmeHint":"Ejecute el comando en el servidor y ponga las rutas en Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Descargar las últimas bases MetaCubeX GeoIP/GeoSite al directorio de Mihomo.","updateGeofiles":"Actualizar archivos geo","geofilesDone":"Archivos geo actualizados","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Registro WARP WireGuard en un clic (fragmento YAML para outbound Mihomo)","warpRegister":"Registrar WARP","warpDone":"WARP registrado — YAML copiado","totp":"Autenticación en dos pasos (TOTP)","totpOn":"Activado","totpSetup":"Escanee con el autenticador o introduzca la clave","totpSetupBtn":"Configurar 2FA","totpEnable":"Activar","totpDisable":"Desactivar 2FA","webPathHint":"p. ej. /secret — publicar el panel bajo una ruta (suscripciones sin cambios)"},"share":{"title":"Compartir","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"User","tabSub":"Subscription links","tabUri":"Node URIs","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Export all subscription links","exported":"Exported subscription links"}} as const; diff --git a/frontend/src/i18n/locales/fr.ts b/frontend/src/i18n/locales/fr.ts index 72a9440..2fc3957 100644 --- a/frontend/src/i18n/locales/fr.ts +++ b/frontend/src/i18n/locales/fr.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Panneau 3m-ui"},"nav":{"dashboard":"Tableau de bord","listeners":"Nœuds","users":"Utilisateurs","traffic":"Trafic","cluster":"Cluster","routing":"Routage","core":"Noyau","logs":"Journaux","config":"Moteur de config","share":"Partage","settings":"Paramètres","logout":"Déconnexion"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Enregistrer","cancel":"Annuler","delete":"Supprimer","edit":"Modifier","create":"Créer","confirm":"Confirmer","close":"Fermer","copy":"Copier","download":"Download","refresh":"Actualiser","loading":"Chargement…","empty":"Aucune donnée","search":"Rechercher","actions":"Actions","status":"État","enabled":"Activé","disabled":"Désactivé","name":"Nom","type":"Type","port":"Port","protocol":"Protocole","address":"Address","password":"Password","username":"Username","submit":"Envoyer","success":"Succès","error":"Erreur","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Oui","no":"Non","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Connexion","subtitle":"Panneau Mihomo","username":"Nom d'utilisateur","password":"Mot de passe","button":"Connexion","welcomeBack":"Bon retour","failed":"Échec de connexion", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Définissez un nouveau mot de passe avant d’utiliser le panneau.","title":"Changer le mot de passe","current":"Actuel","new":"Nouveau","confirm":"Confirmer","button":"Mettre à jour","success":"Mis à jour","failed":"Échec","mismatch":"Ne correspondent pas"},"dashboard":{"title":"Tableau de bord","subtitle":"Aperçu","status":"Core Status","running":"En cours","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Mémoire","disk":"Disque","network":"Network","upload":"Upload","download":"Download","traffic":"Trafic","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Arrêté","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Utilisateurs","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Nœuds"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Nœuds","create":"Créer","edit":"Modifier","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"État","actions":"Actions","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocole","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Sécurité","sectionTransport":"Transport","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Noyau","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Démarrer","stop":"Arrêter","restart":"Redémarrer","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mises à jour Mihomo","description":"Choisissez une version officielle stable ou Pre. Le téléchargement et la vérification de configuration se terminent avant le bascule ; en cas d'échec, le noyau précédent est restauré. Mises à jour manuelles uniquement.","source":"Source du noyau","managed":"Version sélectionnée (persistante)","bundled":"Fourni avec le panneau","previous":"Version précédente","noPrevious":"Aucune version précédente","unavailable":"Mises à jour du noyau indisponibles","check":"Rechercher des mises à jour","select":"Sélectionner la version","latest":"Dernière","current":"Actuelle","install":"Installer la version","rollback":"Restaurer la version précédente","releaseNotes":"Notes de version","noVersions":"Aucune version stable vérifiable pour cette plateforme.","running":"Mise à jour en cours","failed":"Échec de la mise à jour","succeeded":"Mise à jour terminée","restored":"Noyau précédent et état d'exécution restaurés.","confirm":"Basculer Mihomo vers","interruption":"Les connexions proxy seront brièvement interrompues. Configuration et comptes conservés.","staysStopped":"Le noyau restera arrêté après l'installation. Configuration et comptes conservés.","steps":{"prepare":"Préparer","download":"Télécharger et vérifier","validate":"Vérifier la configuration","activate":"Basculer et vérifier"},"stage":{"interrupted":"Interrompu par un redémarrage du panneau","preparing":"Préparation de la mise à jour","resolving":"Résolution de la version officielle","downloading":"Téléchargement du noyau ; l'actuel continue","verifying":"Vérification SHA-256","validating":"Vérification du binaire et de la configuration","switching":"Basculement du noyau","starting":"Démarrage du noyau sélectionné","checking":"Contrôle du processus et des ports","recovering":"Restauration du noyau précédent","complete":"Terminé"},"stable":"Stable","pre":"Pré-version","preNotice":"Les builds Pre sont des tests et peuvent poser des problèmes de compatibilité. L'installation vérifie la build ; si la build officielle a changé, recherchez à nouveau les mises à jour."}},"logs":{"title":"Journaux","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Actualiser"},"config":{"title":"Moteur de config","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Valider","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Appliquer","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Aperçu"},"users":{"title":"Utilisateurs","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Créer","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Trafic","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Expiration","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Lien d'abonnement","group":"Groupe","tags":"Étiquettes","trafficResetDays":"Cycle de réinitialisation du trafic (jours)","expireRenewDays":"Cycle de renouvellement d'expiration (jours)","trafficResetDaysHint":"0 = off. Réinitialise le trafic tous les N jours.","expireRenewDaysHint":"0 = off. Après expiration, prolonge de N jours.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Trafic","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Total","used":"Utilisé","remaining":"Restant"},"cluster":{"title":"Cluster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Nom","colProtocol":"Protocole","colPort":"Port","operationOk":"OK"},"routing":{"title":"Routage","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Paramètres","subtitle":"Preferences & Account","language":"Langue","theme":"Thème","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"URL publique","warp":"Cloudflare WARP","warpHint":"Enregistre WARP auprès de Cloudflare et génère un YAML WireGuard pour Mihomo.","warpRegister":"Enregistrer WARP","warpDone":"WARP enregistré — YAML copié", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Partage","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Utilisateur","tabSub":"Abonnement","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Exporter tous les liens d'abonnement","exported":"Liens d'abonnement exportés"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Console de gestion du noyau Mihomo"},"nav":{"dashboard":"Tableau de bord","listeners":"Gestion des nœuds","users":"Gestion des utilisateurs","traffic":"Trafic","cluster":"Cluster","routing":"Routage","core":"Gestion du noyau","logs":"Journaux","config":"Moteur de configuration","share":"Share","settings":"Paramètres système","logout":"Déconnexion"},"common":{"advanced":"Avancé","prev":"Previous","next":"Next","saved":"Saved","copied":"Copié","copyFailed":"Échec de la copie — sélectionnez et copiez manuellement","save":"Enregistrer","cancel":"Annuler","delete":"Supprimer","edit":"Modifier","create":"Créer","confirm":"Confirmer","close":"Fermer","copy":"Copier","download":"Télécharger","refresh":"Actualiser","loading":"Chargement…","empty":"Aucune donnée","search":"Rechercher","actions":"Actions","status":"État","enabled":"Activé","disabled":"Désactivé","name":"Nom","type":"Type","port":"Port","protocol":"Protocol","address":"Adresse","password":"Password","username":"Username","submit":"Submit","success":"Succès","error":"Erreur","confirmDelete":"Confirmer la suppression ?","back":"Retour","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Oui","no":"Non","more":"Plus","reset":"Réinitialiser","id":"ID","network":"Network","bound":"Lié","missing":"Missing"},"login":{"title":"3M-UI","subtitle":"Console de gestion du noyau Mihomo","username":"Nom d'utilisateur","password":"Mot de passe","button":"Connexion","welcomeBack":"Bon retour","failed":"Échec de la connexion","totpRequired":"Entrez le code de l'authentificateur","totpVerify":"Vérifier"},"password":{"requiredHint":"You must set a new password before using the panel.","title":"Changer le mot de passe","current":"Mot de passe actuel","new":"Nouveau mot de passe","confirm":"Confirmer le nouveau mot de passe","button":"Change Password","success":"Mot de passe modifié","failed":"Échec de la modification","mismatch":"Les nouveaux mots de passe ne correspondent pas"},"dashboard":{"title":"Tableau de bord","subtitle":"Aperçu système et état du noyau","status":"État du noyau","running":"En cours","stoppedStatus":"Arrêté","version":"Version","pid":"PID","uptime":"Disponibilité","listeners":"Stats nœuds","total":"Total","enabled":"Activé","disabled":"Désactivé","system":"Ressources système","cpu":"CPU","memory":"Mémoire","disk":"Disque","network":"Réseau","upload":"Envoi","download":"Réception","traffic":"Stats trafic","uploadRate":"Débit envoi","downloadRate":"Débit réception","totalUpload":"Envoi total","totalDownload":"Réception totale","onlineUsers":"Utilisateurs en ligne","activeConnections":"Connexions actives","start":"Démarrer","stop":"Arrêter","restart":"Redémarrer","started":"Noyau démarré","stopped":"Noyau arrêté","restarted":"Noyau redémarré","operationFailed":"Échec de l'opération","unavailable":"État indisponible","users":"Utilisateurs","totalUsers":"Utilisateurs total","enabledUsers":"Utilisateurs actifs"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Gestion des nœuds","create":"Créer un nœud","edit":"Modifier le nœud","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Actions","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocol options","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Security","sectionTransport":"Transport","sectionTLS":"TLS certificate","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Gestion du noyau","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stop","restart":"Restart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo updates","description":"Select an official stable or Pre release. Downloads and configuration checks finish before switching the running core; a failed switch restores the previous core. Updates are manual only.","source":"Core source","managed":"Selected version (persistent)","bundled":"Bundled with the panel","previous":"Previous version","noPrevious":"No previous version","unavailable":"Core updates unavailable","check":"Check for updates","select":"Select version","latest":"Latest","current":"Current","install":"Install version","rollback":"Restore previous version","releaseNotes":"Release notes","noVersions":"No verifiable stable releases are available for this platform.","running":"Update in progress","failed":"Update failed","succeeded":"Update complete","restored":"The previous core and its running state have been restored.","confirm":"Switch Mihomo to","interruption":"Active proxy connections will briefly disconnect during the switch. Configuration and accounts are preserved.","staysStopped":"The core will remain stopped after installation. Configuration and accounts are preserved.","steps":{"prepare":"Prepare","download":"Download and verify","validate":"Check configuration","activate":"Switch and check"},"stage":{"interrupted":"Interrupted by a panel restart","preparing":"Preparing update","resolving":"Resolving official release","downloading":"Downloading core; the current core keeps running","verifying":"Verifying SHA-256 checksum","validating":"Checking binary and existing configuration","switching":"Switching core","starting":"Starting selected core","checking":"Checking process and listening sockets","recovering":"Restoring previous core","complete":"Completed"},"stable":"Stable","pre":"Pre release","preNotice":"Pre builds are rolling test releases and may have compatibility issues. Installation verifies the selected build; if the official build has changed, check for updates again."}},"logs":{"title":"Journaux","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Moteur de configuration","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validate config","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Apply","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Gestion des utilisateurs","subtitle":"Gérer les comptes, le trafic, les liaisons de nœuds et les abonnements.","batch":"Batch","create":"Créer un utilisateur","edit":"Modifier l'utilisateur","username":"Nom d'utilisateur","password":"Mot de passe","enabled":"État activé","deleteConfirm":"Delete this user?","created":"Créé","updated":"Mis à jour","deleted":"Supprimé","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Sélectionner les nœuds","bindSuccess":"Node bindings updated","traffic":"Trafic","trafficLimitGB":"Limite de trafic (Go)","trafficLimitHint":"0 ou vide = illimité","expire":"Expiration","expireHint":"Vide = pas d'expiration","neverExpire":"Jamais","online":"En ligne","offline":"Hors ligne","blocked":"Blocked","unlimited":"Illimité","resetTraffic":"Réinitialiser le trafic","resetTrafficConfirm":"Réinitialiser les compteurs de trafic de cet utilisateur ?","trafficReset":"Trafic réinitialisé","passwordKeep":"Laisser vide pour conserver le mot de passe actuel","hwidLimit":"Limite d'appareils HWID","hwidLimitHint":"0 = illimité. Compatible x-hwid des clients Happ etc. à l'import d'abonnement.","ipLimit":"Limite d'IP","ipLimitHint":"0 = IP clients simultanées illimitées","remark":"Remarque","shareTitle":"Abonnement","rotateSub":"Rotation du jeton d'abonnement","subRotated":"Abonnement renouvelé","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Abonnement Sing-box","qrHint":"QR = par défaut (Mihomo). Collez l'URL V2Ray dans les clients classiques.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Sélectionner les nœuds distants","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Groupe","tags":"Tags","trafficResetDays":"Cycle de réinitialisation du trafic (jours)","expireRenewDays":"Cycle de renouvellement d'expiration (jours)","trafficResetDaysHint":"0 = désactivé. Réinitialise le trafic de cet utilisateur tous les N jours.","expireRenewDaysHint":"0 = désactivé. Après expiration, prolonger automatiquement de N jours.","devices":"Appareils","clearDevices":"Tout effacer","deviceOs":"OS","deviceModel":"Modèle","lastSeen":"Dernière activité","startOnFirstUse":"À partir de la première utilisation","expireDaysAfterFirst":"Jours après la première utilisation","externalLinks":"URL d'abonnements externes","externalLinksHint":"Une URL YAML Clash/Mihomo par ligne ; fusionnée dans l'abonnement de cet utilisateur"},"traffic":{"title":"Trafic","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Nœuds du cluster","subtitle":"Enregistrer des panneaux 3m-ui distants et vérifier leur santé","create":"Ajouter un nœud","edit":"Modifier le nœud","name":"Nom","baseUrl":"URL du panneau","apiToken":"API Token","apiTokenHint":"Optionnel ; authentification auprès du panneau distant","remark":"Remarque","health":"Contrôle de santé","healthDone":"Vérifié","healthAll":"Tout vérifier","healthAllDone":"Contrôle de santé terminé","dashboard":"Tableau de bord distant","users":"Remote users","restartCore":"Redémarrer le noyau","restarted":"Remote core restarted","startCore":"Démarrer le noyau","stopCore":"Arrêter le noyau","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Nœuds distants","syncNodes":"Synchroniser les nœuds","syncDone":"Synchronisé","pushNode":"Pousser le nœud","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Name","colProtocol":"Protocol","colPort":"Port","operationOk":"OK"},"routing":{"title":"Routage","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panneau / UI","navAccess":"Profil d'accès","navTelegram":"Telegram","navSecurity":"Sécurité et sauvegarde","navSubscription":"Page d'abonnement","navSSL":"Certificats / SSL","navNetwork":"Proxy et Geo","navTraffic":"Réinit. trafic","navAbout":"À propos","panelServer":"Serveur du panneau","panelPort":"Port du panneau","panelPortHint":"Port de l'interface web du panneau","panelListen":"Adresse d'écoute","panelListenHint":"ex. 0.0.0.0 ou ::","panelPublicURL":"URL publique","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Paramètres système","subtitle":"Préférences et compte","language":"Langue de l'interface","theme":"Thème","light":"Clair","dark":"Sombre","system":"Système","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Changer le mot de passe","about":"À propos de 3M-UI","version":"Version","backup":"Sauvegarde et restauration","backupHint":"Télécharger un zip SQLite + config Mihomo. Redémarrer le panneau après restauration.","downloadBackup":"Télécharger la sauvegarde","restoreDb":"Restore database","backupDone":"Sauvegarde téléchargée","restoreDone":"Database restored — restart the panel","apiDocs":"Documentation API","apiDocsHint":"Spécification OpenAPI 3 pour l'automatisation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Alertes Telegram","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Paramètres Telegram enregistrés","telegramTest":"Envoyer un message test","telegramTestOk":"Message test envoyé","chatIdsHint":"Chat IDs séparés par des virgules","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domaine","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Assistant certificats","email":"E-mail","webroot":"Webroot path","generateAcme":"Générer la commande certbot","acmeGenerated":"Commande générée","acmeHint":"Exécuter la commande sur le serveur, puis renseigner les chemins dans Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Télécharger les dernières bases MetaCubeX GeoIP/GeoSite dans le répertoire Mihomo.","updateGeofiles":"Mettre à jour les fichiers geo","geofilesDone":"Fichiers geo mis à jour","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Enregistrement WARP WireGuard en un clic (fragment YAML pour outbound Mihomo)","warpRegister":"Enregistrer WARP","warpDone":"WARP enregistré — YAML copié","totp":"Authentification à deux facteurs (TOTP)","totpOn":"Activé","totpSetup":"Scannez avec l'authentificateur ou saisissez la clé","totpSetupBtn":"Configurer le 2FA","totpEnable":"Activer","totpDisable":"Désactiver le 2FA","webPathHint":"ex. /secret — publier le panneau sous un chemin (abonnements inchangés)"},"share":{"title":"Partager","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"User","tabSub":"Subscription links","tabUri":"Node URIs","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Export all subscription links","exported":"Exported subscription links"}} as const; diff --git a/frontend/src/i18n/locales/hi.ts b/frontend/src/i18n/locales/hi.ts index 7dfa880..4e95ce8 100644 --- a/frontend/src/i18n/locales/hi.ts +++ b/frontend/src/i18n/locales/hi.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"3m-ui पैनल"},"nav":{"dashboard":"डैशबोर्ड","listeners":"नोड्स","users":"उपयोगकर्ता","traffic":"ट्रैफ़िक","cluster":"क्लस्टर","routing":"रूटिंग","core":"कोर","logs":"लॉग","config":"कॉन्फ़िग","share":"शेयर","settings":"सेटिंग्स","logout":"लॉग आउट"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"सहेजें","cancel":"रद्द","delete":"हटाएँ","edit":"संपादित","create":"बनाएँ","confirm":"पुष्टि","close":"बंद","copy":"कॉपी","download":"Download","refresh":"रिफ़्रेश","loading":"लोड हो रहा…","empty":"कोई डेटा नहीं","search":"खोज","actions":"क्रियाएँ","status":"स्थिति","enabled":"सक्षम","disabled":"अक्षम","name":"नाम","type":"Type","port":"पोर्ट","protocol":"प्रोटोकॉल","address":"Address","password":"Password","username":"Username","submit":"जमा","success":"सफल","error":"त्रुटि","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"ठीक","yes":"हाँ","no":"नहीं","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"लॉगिन","subtitle":"Mihomo पैनल","username":"उपयोगकर्ता नाम","password":"पासवर्ड","button":"लॉगिन","welcomeBack":"वापसी पर स्वागत","failed":"लॉगिन विफल", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"पैनल उपयोग से पहले नया पासवर्ड सेट करें।","title":"पासवर्ड बदलें","current":"वर्तमान","new":"नया","confirm":"पुष्टि","button":"अपडेट","success":"अपडेट हुआ","failed":"विफल","mismatch":"मेल नहीं"},"dashboard":{"title":"डैशबोर्ड","subtitle":"System & Core Overview","status":"Core Status","running":"चल रहा","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"ट्रैफ़िक","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"रुका","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"उपयोगकर्ता","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"नोड्स"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"नोड्स","create":"बनाएँ","edit":"संपादित","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"स्थिति","actions":"क्रियाएँ","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"प्रोटोकॉल","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"सुरक्षा","sectionTransport":"ट्रांसपोर्ट","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"कोर","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"शुरू","stop":"रोकें","restart":"पुनः आरंभ","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo अपडेट","description":"आधिकारिक स्थिर या Pre रिलीज़ चुनें। स्विच से पहले डाउनलोड और कॉन्फ़िग जाँच पूरी होती है; विफल होने पर पिछला कोर बहाल होता है। केवल मैन्युअल अपडेट।","source":"कोर स्रोत","managed":"चयनित संस्करण (स्थायी)","bundled":"पैनल के साथ बंडल","previous":"पिछला संस्करण","noPrevious":"कोई पिछला संस्करण नहीं","unavailable":"कोर अपडेट उपलब्ध नहीं","check":"अपडेट जाँचें","select":"संस्करण चुनें","latest":"नवीनतम","current":"वर्तमान","install":"संस्करण स्थापित करें","rollback":"पिछला संस्करण बहाल करें","releaseNotes":"रिलीज़ नोट्स","noVersions":"इस प्लेटफ़ॉर्म के लिए कोई सत्यापित स्थिर रिलीज़ उपलब्ध नहीं।","running":"अपडेट चल रहा है","failed":"अपडेट विफल","succeeded":"अपडेट पूर्ण","restored":"पिछला कोर और रन स्थिति बहाल की गई।","confirm":"Mihomo स्विच करें","interruption":"स्विच के दौरान प्रॉक्सी कनेक्शन थोड़े समय के लिए टूटेंगे। कॉन्फ़िग और खाते सुरक्षित रहेंगे।","staysStopped":"इंस्टॉल के बाद कोर बंद रहेगा। कॉन्फ़िग और खाते सुरक्षित रहेंगे।","steps":{"prepare":"तैयारी","download":"डाउनलोड और सत्यापन","validate":"कॉन्फ़िग जाँच","activate":"स्विच और जाँच"},"stage":{"interrupted":"पैनल रीस्टार्ट से बाधित","preparing":"अपडेट तैयार","resolving":"आधिकारिक रिलीज़ तय","downloading":"कोर डाउनलोड; वर्तमान कोर चल रहा है","verifying":"SHA-256 जाँच","validating":"बाइनरी और कॉन्फ़िग जाँच","switching":"कोर स्विच","starting":"चयनित कोर शुरू","checking":"प्रोसेस और पोर्ट जाँच","recovering":"पिछला कोर बहाल","complete":"पूर्ण"},"stable":"स्थिर","pre":"Pre रिलीज़","preNotice":"Pre बिल्ड परीक्षण हैं और संगतता समस्याएँ हो सकती हैं। इंस्टॉल चयनित बिल्ड सत्यापित करता है; आधिकारिक बिल्ड बदले तो फिर अपडेट जाँचें।"}},"logs":{"title":"लॉग","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"रिफ़्रेश"},"config":{"title":"कॉन्फ़िग","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"सत्यापित","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"लागू","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"पूर्वावलोकन"},"users":{"title":"उपयोगकर्ता","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"बनाएँ","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"ट्रैफ़िक","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"समाप्ति","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"सब्सक्रिप्शन लिंक","group":"समूह","tags":"टैग","trafficResetDays":"ट्रैफ़िक रीसेट चक्र (दिन)","expireRenewDays":"समाप्ति नवीनीकरण चक्र (दिन)","trafficResetDaysHint":"0 = बंद। हर N दिन।","expireRenewDaysHint":"0 = बंद। समाप्ति के बाद +N दिन।", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"ट्रैफ़िक","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"कुल","used":"उपयोग","remaining":"शेष"},"cluster":{"title":"क्लस्टर","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"नाम","colProtocol":"प्रोटोकॉल","colPort":"पोर्ट","operationOk":"OK"},"routing":{"title":"रूटिंग","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"सेटिंग्स","subtitle":"Preferences & Account","language":"भाषा","theme":"थीम","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"सार्वजनिक URL","warp":"Cloudflare WARP","warpHint":"Cloudflare पर WARP पंजीकृत कर Mihomo WireGuard YAML बनाएँ।","warpRegister":"WARP पंजीकृत करें","warpDone":"WARP पंजीकृत — YAML कॉपी", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"शेयर","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"उपयोगकर्ता","tabSub":"सब्सक्रिप्शन","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"सभी सदस्यता लिंक निर्यात","exported":"सदस्यता लिंक निर्यात हुए"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"3m-ui पैनल"},"nav":{"dashboard":"डैशबोर्ड","listeners":"नोड्स","users":"उपयोगकर्ता","traffic":"ट्रैफ़िक","cluster":"क्लस्टर","routing":"रूटिंग","core":"कोर","logs":"लॉग","config":"कॉन्फ़िग","share":"शेयर","settings":"सेटिंग्स","logout":"लॉग आउट"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"सहेजें","cancel":"रद्द","delete":"हटाएँ","edit":"संपादित","create":"बनाएँ","confirm":"पुष्टि","close":"बंद","copy":"कॉपी","download":"Download","refresh":"रिफ़्रेश","loading":"लोड हो रहा…","empty":"कोई डेटा नहीं","search":"खोज","actions":"क्रियाएँ","status":"स्थिति","enabled":"सक्षम","disabled":"अक्षम","name":"नाम","type":"Type","port":"पोर्ट","protocol":"प्रोटोकॉल","address":"Address","password":"Password","username":"Username","submit":"जमा","success":"सफल","error":"त्रुटि","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"ठीक","yes":"हाँ","no":"नहीं","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"लॉगिन","subtitle":"Mihomo पैनल","username":"उपयोगकर्ता नाम","password":"पासवर्ड","button":"लॉगिन","welcomeBack":"वापसी पर स्वागत","failed":"लॉगिन विफल","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"पैनल उपयोग से पहले नया पासवर्ड सेट करें।","title":"पासवर्ड बदलें","current":"वर्तमान","new":"नया","confirm":"पुष्टि","button":"अपडेट","success":"अपडेट हुआ","failed":"विफल","mismatch":"मेल नहीं"},"dashboard":{"title":"डैशबोर्ड","subtitle":"सिस्टम अवलोकन और कोर स्थिति","status":"कोर स्थिति","running":"चल रहा","stoppedStatus":"रुका","version":"संस्करण","pid":"PID","uptime":"अपटाइम","listeners":"नोड आँकड़े","total":"कुल","enabled":"सक्षम","disabled":"अक्षम","system":"सिस्टम संसाधन","cpu":"CPU","memory":"मेमोरी","disk":"डिस्क","network":"नेटवर्क","upload":"अपलोड","download":"डाउनलोड","traffic":"ट्रैफ़िक आँकड़े","uploadRate":"अपलोड दर","downloadRate":"डाउनलोड दर","totalUpload":"कुल अपलोड","totalDownload":"कुल डाउनलोड","onlineUsers":"ऑनलाइन उपयोगकर्ता","activeConnections":"सक्रिय कनेक्शन","start":"शुरू","stop":"रोकें","restart":"पुनः आरंभ","started":"कोर शुरू","stopped":"कोर रुका","restarted":"कोर पुनः आरंभ","operationFailed":"ऑपरेशन विफल","unavailable":"स्थिति उपलब्ध नहीं","users":"उपयोगकर्ता","totalUsers":"कुल उपयोगकर्ता","enabledUsers":"सक्रिय उपयोगकर्ता"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"नोड्स","create":"बनाएँ","edit":"संपादित","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"स्थिति","actions":"क्रियाएँ","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"प्रोटोकॉल","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"सुरक्षा","sectionTransport":"ट्रांसपोर्ट","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"कोर","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"शुरू","stop":"रोकें","restart":"पुनः आरंभ","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo अपडेट","description":"आधिकारिक स्थिर या Pre रिलीज़ चुनें। स्विच से पहले डाउनलोड और कॉन्फ़िग जाँच पूरी होती है; विफल होने पर पिछला कोर बहाल होता है। केवल मैन्युअल अपडेट।","source":"कोर स्रोत","managed":"चयनित संस्करण (स्थायी)","bundled":"पैनल के साथ बंडल","previous":"पिछला संस्करण","noPrevious":"कोई पिछला संस्करण नहीं","unavailable":"कोर अपडेट उपलब्ध नहीं","check":"अपडेट जाँचें","select":"संस्करण चुनें","latest":"नवीनतम","current":"वर्तमान","install":"संस्करण स्थापित करें","rollback":"पिछला संस्करण बहाल करें","releaseNotes":"रिलीज़ नोट्स","noVersions":"इस प्लेटफ़ॉर्म के लिए कोई सत्यापित स्थिर रिलीज़ उपलब्ध नहीं।","running":"अपडेट चल रहा है","failed":"अपडेट विफल","succeeded":"अपडेट पूर्ण","restored":"पिछला कोर और रन स्थिति बहाल की गई।","confirm":"Mihomo स्विच करें","interruption":"स्विच के दौरान प्रॉक्सी कनेक्शन थोड़े समय के लिए टूटेंगे। कॉन्फ़िग और खाते सुरक्षित रहेंगे।","staysStopped":"इंस्टॉल के बाद कोर बंद रहेगा। कॉन्फ़िग और खाते सुरक्षित रहेंगे।","steps":{"prepare":"तैयारी","download":"डाउनलोड और सत्यापन","validate":"कॉन्फ़िग जाँच","activate":"स्विच और जाँच"},"stage":{"interrupted":"पैनल रीस्टार्ट से बाधित","preparing":"अपडेट तैयार","resolving":"आधिकारिक रिलीज़ तय","downloading":"कोर डाउनलोड; वर्तमान कोर चल रहा है","verifying":"SHA-256 जाँच","validating":"बाइनरी और कॉन्फ़िग जाँच","switching":"कोर स्विच","starting":"चयनित कोर शुरू","checking":"प्रोसेस और पोर्ट जाँच","recovering":"पिछला कोर बहाल","complete":"पूर्ण"},"stable":"स्थिर","pre":"Pre रिलीज़","preNotice":"Pre बिल्ड परीक्षण हैं और संगतता समस्याएँ हो सकती हैं। इंस्टॉल चयनित बिल्ड सत्यापित करता है; आधिकारिक बिल्ड बदले तो फिर अपडेट जाँचें।"}},"logs":{"title":"लॉग","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"कॉन्फ़िग","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"सत्यापित","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"लागू","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"उपयोगकर्ता","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"बनाएँ","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"ट्रैफ़िक","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"समाप्ति","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"समूह","tags":"टैग","trafficResetDays":"ट्रैफ़िक रीसेट चक्र (दिन)","expireRenewDays":"समाप्ति नवीनीकरण चक्र (दिन)","trafficResetDaysHint":"0 = बंद। हर N दिन।","expireRenewDaysHint":"0 = बंद। समाप्ति के बाद +N दिन।","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"ट्रैफ़िक","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"क्लस्टर","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"नाम","colProtocol":"प्रोटोकॉल","colPort":"पोर्ट","operationOk":"OK"},"routing":{"title":"रूटिंग","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"पैनल / UI","navAccess":"एक्सेस प्रोफ़ाइल","navTelegram":"Telegram","navSecurity":"सुरक्षा और बैकअप","navSubscription":"सदस्यता पृष्ठ","navSSL":"प्रमाणपत्र / SSL","navNetwork":"प्रॉक्सी और Geo","navTraffic":"ट्रैफ़िक रीसेट","navAbout":"परिचय","panelServer":"पैनल सर्वर","panelPort":"पैनल पोर्ट","panelPortHint":"पैनल वेब UI पोर्ट","panelListen":"सुनने का पता","panelListenHint":"उदा. 0.0.0.0 या ::","panelPublicURL":"सार्वजनिक URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"सिस्टम सेटिंग्स","subtitle":"वरीयताएँ और खाता","language":"इंटरफ़ेस भाषा","theme":"थीम","light":"लाइट","dark":"डार्क","system":"सिस्टम","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"पासवर्ड बदलें","about":"3M-UI के बारे में","version":"संस्करण","backup":"बैकअप और पुनर्स्थापना","backupHint":"SQLite और Mihomo कॉन्फ़िग वाला zip डाउनलोड करें। DB पुनर्स्थापना के बाद पैनल पुनः आरंभ करें।","downloadBackup":"बैकअप डाउनलोड","restoreDb":"Restore database","backupDone":"बैकअप डाउनलोड हुआ","restoreDone":"Database restored — restart the panel","apiDocs":"API दस्तावेज़","apiDocsHint":"स्वचालन के लिए OpenAPI 3 विनिर्देश।","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram अलर्ट","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Telegram सेटिंग्स सहेजी गईं","telegramTest":"परीक्षण संदेश भेजें","telegramTestOk":"परीक्षण संदेश भेजा गया","chatIdsHint":"अल्पविराम से अलग Chat ID","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"डोमेन","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"प्रमाणपत्र विज़ार्ड","email":"ईमेल","webroot":"Webroot path","generateAcme":"certbot कमांड बनाएँ","acmeGenerated":"कमांड बनाई गई","acmeHint":"सर्वर पर कमांड चलाएँ, फिर Listener TLS में पथ भरें","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"नवीनतम MetaCubeX GeoIP/GeoSite डेटाबेस Mihomo डेटा निर्देशिका में डाउनलोड करें।","updateGeofiles":"Geo फ़ाइलें अपडेट करें","geofilesDone":"Geo फ़ाइलें अपडेट हुईं","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"एक-क्लिक WARP WireGuard पंजीकरण (Mihomo outbound के लिए YAML अंश)","warpRegister":"WARP पंजीकृत करें","warpDone":"WARP पंजीकृत — YAML कॉपी हुआ","totp":"दो-चरणीय प्रमाणीकरण (TOTP)","totpOn":"सक्षम","totpSetup":"ऑथेंटिकेटर से स्कैन करें या कुंजी दर्ज करें","totpSetupBtn":"2FA सेटअप","totpEnable":"सक्षम करें","totpDisable":"2FA बंद करें","webPathHint":"उदा. /secret — पथ के अंतर्गत पैनल प्रकाशित करें (सदस्यता अपरिवर्तित)"},"share":{"title":"शेयर","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"उपयोगकर्ता","tabSub":"सब्सक्रिप्शन","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"सभी सदस्यता लिंक निर्यात","exported":"सदस्यता लिंक निर्यात हुए"}} as const; diff --git a/frontend/src/i18n/locales/id.ts b/frontend/src/i18n/locales/id.ts index 8813dc9..235a785 100644 --- a/frontend/src/i18n/locales/id.ts +++ b/frontend/src/i18n/locales/id.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Panel 3m-ui"},"nav":{"dashboard":"Dasbor","listeners":"Node","users":"Pengguna","traffic":"Lalu lintas","cluster":"Klaster","routing":"Routing","core":"Core","logs":"Log","config":"Mesin config","share":"Bagikan","settings":"Pengaturan","logout":"Keluar"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Simpan","cancel":"Batal","delete":"Hapus","edit":"Edit","create":"Buat","confirm":"Konfirmasi","close":"Tutup","copy":"Salin","download":"Download","refresh":"Segarkan","loading":"Memuat…","empty":"Tidak ada data","search":"Cari","actions":"Tindakan","status":"Status","enabled":"Aktif","disabled":"Nonaktif","name":"Nama","type":"Type","port":"Port","protocol":"Protokol","address":"Address","password":"Password","username":"Username","submit":"Kirim","success":"Berhasil","error":"Gagal","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Ya","no":"Tidak","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Masuk","subtitle":"Panel Mihomo","username":"Nama pengguna","password":"Kata sandi","button":"Masuk","welcomeBack":"Selamat datang","failed":"Gagal masuk", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Atur kata sandi baru sebelum memakai panel.","title":"Ubah kata sandi","current":"Saat ini","new":"Baru","confirm":"Konfirmasi","button":"Perbarui","success":"Diperbarui","failed":"Gagal","mismatch":"Tidak cocok"},"dashboard":{"title":"Dasbor","subtitle":"System & Core Overview","status":"Core Status","running":"Berjalan","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"Lalu lintas","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Berhenti","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Pengguna","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Node"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Node","create":"Buat","edit":"Edit","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Tindakan","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protokol","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Keamanan","sectionTransport":"Transport","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Core","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Mulai","stop":"Stop","restart":"Mulai ulang","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Pembaruan Mihomo","description":"Pilih rilis resmi stabil atau Pre. Unduhan dan pengecekan konfigurasi selesai sebelum beralih inti; jika gagal, inti sebelumnya dipulihkan. Pembaruan hanya manual.","source":"Sumber inti","managed":"Versi terpilih (persisten)","bundled":"Disertakan dengan panel","previous":"Versi sebelumnya","noPrevious":"Tidak ada versi sebelumnya","unavailable":"Pembaruan inti tidak tersedia","check":"Periksa pembaruan","select":"Pilih versi","latest":"Terbaru","current":"Saat ini","install":"Pasang versi","rollback":"Pulihkan versi sebelumnya","releaseNotes":"Catatan rilis","noVersions":"Tidak ada rilis stabil terverifikasi untuk platform ini.","running":"Pembaruan berlangsung","failed":"Pembaruan gagal","succeeded":"Pembaruan selesai","restored":"Inti sebelumnya dan status berjalan dipulihkan.","confirm":"Alihkan Mihomo ke","interruption":"Koneksi proksi akan terputus sebentar. Konfigurasi dan akun tetap aman.","staysStopped":"Inti tetap berhenti setelah instalasi. Konfigurasi dan akun tetap aman.","steps":{"prepare":"Siapkan","download":"Unduh dan verifikasi","validate":"Periksa konfigurasi","activate":"Alihkan dan periksa"},"stage":{"interrupted":"Terputus karena restart panel","preparing":"Menyiapkan pembaruan","resolving":"Menemukan rilis resmi","downloading":"Mengunduh inti; inti saat ini tetap berjalan","verifying":"Memverifikasi SHA-256","validating":"Memeriksa biner dan konfigurasi","switching":"Mengalihkan inti","starting":"Menjalankan inti terpilih","checking":"Memeriksa proses dan port","recovering":"Memulihkan inti sebelumnya","complete":"Selesai"},"stable":"Stabil","pre":"Rilis Pre","preNotice":"Build Pre bersifat uji coba dan bisa bermasalah kompatibilitas. Instalasi memverifikasi build; jika build resmi berubah, periksa pembaruan lagi."}},"logs":{"title":"Log","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Segarkan"},"config":{"title":"Mesin config","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validasi","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Terapkan","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Pratinjau"},"users":{"title":"Pengguna","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Buat","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Lalu lintas","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Kedaluwarsa","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Tautan langganan","group":"Grup","tags":"Tag","trafficResetDays":"Siklus reset trafik (hari)","expireRenewDays":"Siklus perpanjang kedaluwarsa (hari)","trafficResetDaysHint":"0 = mati. Reset trafik setiap N hari.","expireRenewDaysHint":"0 = mati. Setelah kedaluwarsa +N hari.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Lalu lintas","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Total","used":"Terpakai","remaining":"Sisa"},"cluster":{"title":"Klaster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Nama","colProtocol":"Protokol","colPort":"Port","operationOk":"OK"},"routing":{"title":"Routing","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Pengaturan","subtitle":"Preferences & Account","language":"Bahasa","theme":"Tema","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"URL publik","warp":"Cloudflare WARP","warpHint":"Daftarkan WARP ke Cloudflare dan buat YAML WireGuard untuk Mihomo.","warpRegister":"Daftarkan WARP","warpDone":"WARP terdaftar — YAML disalin", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Bagikan","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Pengguna","tabSub":"Langganan","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Ekspor semua tautan langganan","exported":"Tautan langganan diekspor"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Panel 3m-ui"},"nav":{"dashboard":"Dasbor","listeners":"Node","users":"Pengguna","traffic":"Lalu lintas","cluster":"Klaster","routing":"Routing","core":"Core","logs":"Log","config":"Mesin config","share":"Bagikan","settings":"Pengaturan","logout":"Keluar"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Simpan","cancel":"Batal","delete":"Hapus","edit":"Edit","create":"Buat","confirm":"Konfirmasi","close":"Tutup","copy":"Salin","download":"Download","refresh":"Segarkan","loading":"Memuat…","empty":"Tidak ada data","search":"Cari","actions":"Tindakan","status":"Status","enabled":"Aktif","disabled":"Nonaktif","name":"Nama","type":"Type","port":"Port","protocol":"Protokol","address":"Address","password":"Password","username":"Username","submit":"Kirim","success":"Berhasil","error":"Gagal","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Ya","no":"Tidak","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Masuk","subtitle":"Panel Mihomo","username":"Nama pengguna","password":"Kata sandi","button":"Masuk","welcomeBack":"Selamat datang","failed":"Gagal masuk","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"Atur kata sandi baru sebelum memakai panel.","title":"Ubah kata sandi","current":"Saat ini","new":"Baru","confirm":"Konfirmasi","button":"Perbarui","success":"Diperbarui","failed":"Gagal","mismatch":"Tidak cocok"},"dashboard":{"title":"Dasbor","subtitle":"Ringkasan sistem dan status inti","status":"Status inti","running":"Berjalan","stoppedStatus":"Berhenti","version":"Versi","pid":"PID","uptime":"Waktu aktif","listeners":"Statistik node","total":"Total","enabled":"Aktif","disabled":"Nonaktif","system":"Sumber daya sistem","cpu":"CPU","memory":"Memori","disk":"Disk","network":"Jaringan","upload":"Unggah","download":"Unduh","traffic":"Statistik traffic","uploadRate":"Laju unggah","downloadRate":"Laju unduh","totalUpload":"Total unggah","totalDownload":"Total unduh","onlineUsers":"Pengguna online","activeConnections":"Koneksi aktif","start":"Mulai","stop":"Berhenti","restart":"Mulai ulang","started":"Inti dimulai","stopped":"Inti dihentikan","restarted":"Inti dimulai ulang","operationFailed":"Operasi gagal","unavailable":"Status tidak tersedia","users":"Pengguna","totalUsers":"Total pengguna","enabledUsers":"Pengguna aktif"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Node","create":"Buat","edit":"Edit","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Tindakan","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protokol","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Keamanan","sectionTransport":"Transport","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Core","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Mulai","stop":"Stop","restart":"Mulai ulang","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Pembaruan Mihomo","description":"Pilih rilis resmi stabil atau Pre. Unduhan dan pengecekan konfigurasi selesai sebelum beralih inti; jika gagal, inti sebelumnya dipulihkan. Pembaruan hanya manual.","source":"Sumber inti","managed":"Versi terpilih (persisten)","bundled":"Disertakan dengan panel","previous":"Versi sebelumnya","noPrevious":"Tidak ada versi sebelumnya","unavailable":"Pembaruan inti tidak tersedia","check":"Periksa pembaruan","select":"Pilih versi","latest":"Terbaru","current":"Saat ini","install":"Pasang versi","rollback":"Pulihkan versi sebelumnya","releaseNotes":"Catatan rilis","noVersions":"Tidak ada rilis stabil terverifikasi untuk platform ini.","running":"Pembaruan berlangsung","failed":"Pembaruan gagal","succeeded":"Pembaruan selesai","restored":"Inti sebelumnya dan status berjalan dipulihkan.","confirm":"Alihkan Mihomo ke","interruption":"Koneksi proksi akan terputus sebentar. Konfigurasi dan akun tetap aman.","staysStopped":"Inti tetap berhenti setelah instalasi. Konfigurasi dan akun tetap aman.","steps":{"prepare":"Siapkan","download":"Unduh dan verifikasi","validate":"Periksa konfigurasi","activate":"Alihkan dan periksa"},"stage":{"interrupted":"Terputus karena restart panel","preparing":"Menyiapkan pembaruan","resolving":"Menemukan rilis resmi","downloading":"Mengunduh inti; inti saat ini tetap berjalan","verifying":"Memverifikasi SHA-256","validating":"Memeriksa biner dan konfigurasi","switching":"Mengalihkan inti","starting":"Menjalankan inti terpilih","checking":"Memeriksa proses dan port","recovering":"Memulihkan inti sebelumnya","complete":"Selesai"},"stable":"Stabil","pre":"Rilis Pre","preNotice":"Build Pre bersifat uji coba dan bisa bermasalah kompatibilitas. Instalasi memverifikasi build; jika build resmi berubah, periksa pembaruan lagi."}},"logs":{"title":"Log","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Mesin config","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validasi","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Terapkan","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Pengguna","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Buat","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Lalu lintas","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Kedaluwarsa","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Grup","tags":"Tag","trafficResetDays":"Siklus reset trafik (hari)","expireRenewDays":"Siklus perpanjang kedaluwarsa (hari)","trafficResetDaysHint":"0 = mati. Reset trafik setiap N hari.","expireRenewDaysHint":"0 = mati. Setelah kedaluwarsa +N hari.","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Lalu lintas","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Klaster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Nama","colProtocol":"Protokol","colPort":"Port","operationOk":"OK"},"routing":{"title":"Routing","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Profil akses","navTelegram":"Telegram","navSecurity":"Keamanan & cadangan","navSubscription":"Halaman langganan","navSSL":"Sertifikat / SSL","navNetwork":"Proxy & Geo","navTraffic":"Reset traffic","navAbout":"Tentang","panelServer":"Server panel","panelPort":"Port panel","panelPortHint":"Port antarmuka web panel","panelListen":"Alamat listen","panelListenHint":"mis. 0.0.0.0 atau ::","panelPublicURL":"URL publik","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Pengaturan sistem","subtitle":"Preferensi & akun","language":"Bahasa antarmuka","theme":"Tema","light":"Terang","dark":"Gelap","system":"Sistem","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Ubah kata sandi","about":"Tentang 3M-UI","version":"Versi","backup":"Cadangan & pemulihan","backupHint":"Unduh zip SQLite dan config Mihomo. Restart panel setelah memulihkan DB.","downloadBackup":"Unduh cadangan","restoreDb":"Restore database","backupDone":"Cadangan diunduh","restoreDone":"Database restored — restart the panel","apiDocs":"Dokumentasi API","apiDocsHint":"Spesifikasi OpenAPI 3 untuk otomasi.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Peringatan Telegram","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Pengaturan Telegram disimpan","telegramTest":"Kirim pesan uji","telegramTestOk":"Pesan uji terkirim","chatIdsHint":"Chat ID dipisah koma","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Wizard sertifikat","email":"Email","webroot":"Webroot path","generateAcme":"Buat perintah certbot","acmeGenerated":"Perintah dibuat","acmeHint":"Jalankan perintah di server lalu isi path di Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Unduh basis MetaCubeX GeoIP/GeoSite terbaru ke direktori data Mihomo.","updateGeofiles":"Perbarui file geo","geofilesDone":"File geo diperbarui","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Daftar WARP WireGuard sekali klik (fragmen YAML untuk outbound Mihomo)","warpRegister":"Daftarkan WARP","warpDone":"WARP terdaftar — YAML disalin","totp":"Autentikasi dua langkah (TOTP)","totpOn":"Aktif","totpSetup":"Pindai dengan authenticator atau masukkan kunci","totpSetupBtn":"Atur 2FA","totpEnable":"Aktifkan","totpDisable":"Nonaktifkan 2FA","webPathHint":"mis. /secret — terbitkan panel di bawah path (langganan tidak berubah)"},"share":{"title":"Bagikan","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Pengguna","tabSub":"Langganan","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Ekspor semua tautan langganan","exported":"Tautan langganan diekspor"}} as const; diff --git a/frontend/src/i18n/locales/ja.ts b/frontend/src/i18n/locales/ja.ts index 607714a..d1cb5d5 100644 --- a/frontend/src/i18n/locales/ja.ts +++ b/frontend/src/i18n/locales/ja.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"スキャン","change":"変更","scanning":"スキャン中…","passed":"合格","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"失敗","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"3m-ui 管理パネル"},"nav":{"dashboard":"ダッシュボード","listeners":"ノード","users":"ユーザー","traffic":"トラフィック","cluster":"クラスタ","routing":"ルーティング","core":"コア","logs":"ログ","config":"設定エンジン","share":"共有","settings":"設定","logout":"ログアウト"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"保存しました","copied":"コピーしました","copyFailed":"Copy failed — select and copy manually","save":"保存","cancel":"キャンセル","delete":"削除","edit":"編集","create":"作成","confirm":"確認","close":"閉じる","copy":"コピー","download":"Download","refresh":"更新","loading":"読み込み中…","empty":"データなし","search":"検索","actions":"操作","status":"状態","enabled":"有効","disabled":"無効","name":"名前","type":"Type","port":"ポート","protocol":"プロトコル","address":"Address","password":"Password","username":"Username","submit":"送信","success":"成功","error":"失敗","confirmDelete":"Are you sure to delete?","back":"戻る","generate":"生成","validate":"検証","generated":"Generated","ok":"OK","yes":"はい","no":"いいえ","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"ログイン","subtitle":"Mihomo 管理パネル","username":"ユーザー名","password":"パスワード","button":"ログイン","welcomeBack":"おかえりなさい","failed":"ログインに失敗しました", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"パネル使用前に新しいパスワードを設定してください。","title":"パスワード変更","current":"現在のパスワード","new":"新しいパスワード","confirm":"確認","button":"更新","success":"更新しました","failed":"失敗しました","mismatch":"一致しません"},"dashboard":{"title":"ダッシュボード","subtitle":"概要","status":"Core Status","running":"稼働中","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"稼働時間","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"メモリ","disk":"ディスク","network":"Network","upload":"Upload","download":"Download","traffic":"トラフィック","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"停止","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"ユーザー","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"ノード","core":"コア"},"listeners":{"subtitle":"インバウンド","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"ノード管理","create":"作成","edit":"編集","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"状態","actions":"操作","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"プロトコル","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"セキュリティ","sectionTransport":"トランスポート","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"複製","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"テンプレート","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"コア管理","subtitle":"Mihomo core status and control.","status":"Status","running":"稼働中","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"開始","stop":"停止","restart":"再起動","started":"Started","stopped":"停止","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo の更新","description":"公式の Stable または Pre を選択します。切り替え前にダウンロードと設定検証が完了し、失敗時は以前のコアに戻します。更新は手動のみです。","source":"コアの提供元","managed":"選択したバージョン(永続)","bundled":"パネル同梱","previous":"以前のバージョン","noPrevious":"以前のバージョンなし","unavailable":"コア更新は利用できません","check":"更新を確認","select":"バージョンを選択","latest":"最新","current":"現在","install":"バージョンをインストール","rollback":"以前のバージョンに戻す","releaseNotes":"リリースノート","noVersions":"このプラットフォーム向けの検証可能な Stable がありません。","running":"更新中","failed":"更新に失敗","succeeded":"更新完了","restored":"以前のコアと実行状態を復元しました。","confirm":"Mihomo を切り替え","interruption":"切り替え中、プロキシ接続が短時間切断されます。設定とアカウントは保持されます。","staysStopped":"インストール後もコアは停止のままです。設定とアカウントは保持されます。","steps":{"prepare":"準備","download":"ダウンロードと検証","validate":"設定の確認","activate":"切り替えと確認"},"stage":{"interrupted":"パネル再起動により中断","preparing":"更新を準備","resolving":"公式リリースを解決","downloading":"コアをダウンロード中(現在のコアは稼働)","verifying":"SHA-256 を検証","validating":"バイナリと設定を確認","switching":"コアを切り替え","starting":"選択したコアを起動","checking":"プロセスとポートを確認","recovering":"以前のコアを復元","complete":"完了"},"stable":"Stable","pre":"Pre リリース","preNotice":"Pre は試験用で互換性の問題がある場合があります。インストールは選択ビルドを検証します。公式ビルドが変わった場合は再度更新を確認してください。"}},"logs":{"title":"ログ","subtitle":"Recent panel and core logs.","empty":"ログなし","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"更新"},"config":{"title":"設定エンジン","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"検証","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"適用","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"プレビュー"},"users":{"title":"ユーザー管理","subtitle":"プロキシユーザーと購読","batch":"Batch","create":"作成","edit":"編集","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"ノード割当","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"トラフィック","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"期限","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"購読リンク","group":"グループ","tags":"タグ","trafficResetDays":"流量リセット周期(日)","expireRenewDays":"期限更新周期(日)","trafficResetDaysHint":"0 で無効。N 日ごとに流量をリセット。","expireRenewDaysHint":"0 で無効。期限後に N 日延長。", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"トラフィック","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"合計","used":"使用済","remaining":"残り"},"cluster":{"title":"クラスタ","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"リモート登録","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"ヘルスチェック","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"再起動","restarted":"Remote core restarted","startCore":"コア開始","stopCore":"コア停止","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"名前","colProtocol":"プロトコル","colPort":"ポート","operationOk":"OK"},"routing":{"title":"ルーティング","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted","save":"保存"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"設定","subtitle":"Preferences & Account","language":"言語","theme":"テーマ","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"セキュリティ","publicUrl":"公開 URL","warp":"Cloudflare WARP","warpHint":"Cloudflare に WARP を登録し Mihomo 用 WireGuard 出站 YAML を生成します。","warpRegister":"WARP を登録","warpDone":"WARP を登録しました — YAML をコピーしました", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"共有 / 購読","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"ユーザー","tabSub":"購読リンク","tabUri":"ノード URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"すべての購読リンクを書き出す","exported":"購読リンクを書き出しました"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Mihomo コア管理コンソール"},"nav":{"dashboard":"ダッシュボード","listeners":"ノード管理","users":"ユーザー管理","traffic":"トラフィック","cluster":"クラスター","routing":"ルーティング","core":"コア管理","logs":"ログ","config":"設定エンジン","share":"Share","settings":"システム設定","logout":"ログアウト"},"common":{"advanced":"詳細設定","prev":"Previous","next":"Next","saved":"Saved","copied":"コピーしました","copyFailed":"コピーに失敗しました。手動で選択してコピーしてください","save":"保存","cancel":"キャンセル","delete":"削除","edit":"編集","create":"作成","confirm":"確認","close":"閉じる","copy":"コピー","download":"ダウンロード","refresh":"更新","loading":"読み込み中…","empty":"データなし","search":"検索","actions":"操作","status":"状態","enabled":"有効","disabled":"無効","name":"名前","type":"Type","port":"ポート","protocol":"Protocol","address":"アドレス","password":"Password","username":"Username","submit":"Submit","success":"成功","error":"エラー","confirmDelete":"削除してよろしいですか?","back":"戻る","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"はい","no":"いいえ","more":"その他","reset":"リセット","id":"ID","network":"Network","bound":"紐付け済み","missing":"Missing"},"login":{"title":"3M-UI","subtitle":"Mihomo コア管理コンソール","username":"ユーザー名","password":"パスワード","button":"ログイン","welcomeBack":"おかえりなさい","failed":"ログインに失敗しました","totpRequired":"認証アプリのコードを入力してください","totpVerify":"検証"},"password":{"requiredHint":"You must set a new password before using the panel.","title":"パスワード変更","current":"現在のパスワード","new":"新しいパスワード","confirm":"新しいパスワード(確認)","button":"Change Password","success":"パスワードを変更しました","failed":"変更に失敗しました","mismatch":"新しいパスワードが一致しません"},"dashboard":{"title":"ダッシュボード","subtitle":"システム概要とコア状態","status":"コア状態","running":"実行中","stoppedStatus":"停止","version":"バージョン","pid":"PID","uptime":"稼働時間","listeners":"ノード統計","total":"合計","enabled":"有効","disabled":"無効","system":"システムリソース","cpu":"CPU","memory":"メモリ","disk":"ディスク","network":"ネットワーク","upload":"アップロード","download":"ダウンロード","traffic":"トラフィック統計","uploadRate":"アップロード速度","downloadRate":"ダウンロード速度","totalUpload":"総アップロード","totalDownload":"総ダウンロード","onlineUsers":"オンラインユーザー","activeConnections":"アクティブ接続","start":"開始","stop":"停止","restart":"再起動","started":"コア開始","stopped":"コア停止","restarted":"コア再起動","operationFailed":"操作失敗","unavailable":"状態取得不可","users":"ユーザー","totalUsers":"ユーザー合計","enabledUsers":"有効ユーザー"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"ノード管理","create":"ノード作成","edit":"ノード編集","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Actions","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocol options","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Security","sectionTransport":"Transport","sectionTLS":"TLS certificate","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"コア管理","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stop","restart":"Restart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo updates","description":"Select an official stable or Pre release. Downloads and configuration checks finish before switching the running core; a failed switch restores the previous core. Updates are manual only.","source":"Core source","managed":"Selected version (persistent)","bundled":"Bundled with the panel","previous":"Previous version","noPrevious":"No previous version","unavailable":"Core updates unavailable","check":"Check for updates","select":"Select version","latest":"Latest","current":"Current","install":"Install version","rollback":"Restore previous version","releaseNotes":"Release notes","noVersions":"No verifiable stable releases are available for this platform.","running":"Update in progress","failed":"Update failed","succeeded":"Update complete","restored":"The previous core and its running state have been restored.","confirm":"Switch Mihomo to","interruption":"Active proxy connections will briefly disconnect during the switch. Configuration and accounts are preserved.","staysStopped":"The core will remain stopped after installation. Configuration and accounts are preserved.","steps":{"prepare":"Prepare","download":"Download and verify","validate":"Check configuration","activate":"Switch and check"},"stage":{"interrupted":"Interrupted by a panel restart","preparing":"Preparing update","resolving":"Resolving official release","downloading":"Downloading core; the current core keeps running","verifying":"Verifying SHA-256 checksum","validating":"Checking binary and existing configuration","switching":"Switching core","starting":"Starting selected core","checking":"Checking process and listening sockets","recovering":"Restoring previous core","complete":"Completed"},"stable":"Stable","pre":"Pre release","preNotice":"Pre builds are rolling test releases and may have compatibility issues. Installation verifies the selected build; if the official build has changed, check for updates again."}},"logs":{"title":"ログ","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"設定エンジン","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validate config","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Apply","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"ユーザー管理","subtitle":"アカウント、トラフィック、ノード紐付け、サブスクリプションを管理します。","batch":"Batch","create":"ユーザー作成","edit":"ユーザー編集","username":"ユーザー名","password":"パスワード","enabled":"有効状態","deleteConfirm":"Delete this user?","created":"作成しました","updated":"更新しました","deleted":"削除しました","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"ノードを選択","bindSuccess":"Node bindings updated","traffic":"トラフィック","trafficLimitGB":"トラフィック上限 (GB)","trafficLimitHint":"0 または空欄 = 無制限","expire":"有効期限","expireHint":"空欄で無期限","neverExpire":"無期限","online":"オンライン","offline":"オフライン","blocked":"Blocked","unlimited":"無制限","resetTraffic":"トラフィックリセット","resetTrafficConfirm":"このユーザーのトラフィックカウンタをリセットしますか?","trafficReset":"トラフィックをリセットしました","passwordKeep":"空欄のままにすると現在のパスワードを維持","hwidLimit":"HWID 端末上限","hwidLimitHint":"0 = 無制限。Happ などクライアントが購読インポート時に送る x-hwid に対応。","ipLimit":"IP 制限","ipLimitHint":"0 = 同時接続 IP 無制限","remark":"備考","shareTitle":"サブスクリプション","rotateSub":"購読トークンをローテーション","subRotated":"購読をローテーションしました","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64(v2rayNG / Hiddify)","subSingbox":"Sing-box 購読","qrHint":"QR = デフォルト(Mihomo)。クラシッククライアントには V2Ray URL を貼り付けてください。","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"リモートノードを選択","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"グループ","tags":"タグ","trafficResetDays":"トラフィックリセット周期(日)","expireRenewDays":"期限更新周期(日)","trafficResetDaysHint":"0 = オフ。N 日ごとにこのユーザーのトラフィックをリセット。","expireRenewDaysHint":"0 = オフ。期限後に自動で N 日延長。","devices":"端末","clearDevices":"すべてクリア","deviceOs":"OS","deviceModel":"機種","lastSeen":"最終オンライン","startOnFirstUse":"初回利用から起算","expireDaysAfterFirst":"初回利用後の有効日数","externalLinks":"外部サブスクリプション URL","externalLinksHint":"1行に1つの Clash/Mihomo YAML URL。このユーザーの購読にマージされます"},"traffic":{"title":"トラフィック","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"クラスターノード","subtitle":"リモート 3m-ui パネルを登録し、ヘルスチェックします","create":"ノード追加","edit":"ノード編集","name":"名前","baseUrl":"パネル URL","apiToken":"API Token","apiTokenHint":"任意。リモートパネル認証に使用","remark":"備考","health":"ヘルスチェック","healthDone":"チェック済み","healthAll":"すべてチェック","healthAllDone":"ヘルスチェック完了","dashboard":"リモートダッシュボード","users":"Remote users","restartCore":"コア再起動","restarted":"Remote core restarted","startCore":"コア起動","stopCore":"コア停止","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"リモートノード","syncNodes":"ノード同期","syncDone":"同期完了","pushNode":"ノード転送","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Name","colProtocol":"Protocol","colPort":"Port","operationOk":"OK"},"routing":{"title":"ルーティング","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"パネル / UI","navAccess":"アクセスプロファイル","navTelegram":"Telegram","navSecurity":"セキュリティとバックアップ","navSubscription":"購読ページ","navSSL":"証明書 / SSL","navNetwork":"プロキシと Geo","navTraffic":"トラフィックリセット","navAbout":"情報","panelServer":"パネルサーバー","panelPort":"パネルポート","panelPortHint":"パネル Web UI のポート","panelListen":"リッスンアドレス","panelListenHint":"例: 0.0.0.0 または ::","panelPublicURL":"公開 URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"システム設定","subtitle":"設定とアカウント","language":"表示言語","theme":"テーマ","light":"ライト","dark":"ダーク","system":"システム","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"パスワード変更","about":"3M-UI について","version":"バージョン","backup":"バックアップと復元","backupHint":"SQLite と Mihomo 設定の zip をダウンロード。DB 復元後はパネルを再起動。","downloadBackup":"バックアップをダウンロード","restoreDb":"Restore database","backupDone":"バックアップをダウンロードしました","restoreDone":"Database restored — restart the panel","apiDocs":"API ドキュメント","apiDocsHint":"自動化用 OpenAPI 3 仕様。","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram 通知","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Telegram 設定を保存しました","telegramTest":"テストメッセージ送信","telegramTestOk":"テストメッセージ送信済み","chatIdsHint":"カンマ区切りの Chat ID","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"ドメイン","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"証明書ウィザード","email":"メール","webroot":"Webroot path","generateAcme":"certbot コマンド生成","acmeGenerated":"コマンド生成済み","acmeHint":"サーバーでコマンドを実行し、証明書パスを Listener TLS に設定","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"最新の MetaCubeX GeoIP/GeoSite を Mihomo データディレクトリへ。","updateGeofiles":"地理ファイルを更新","geofilesDone":"地理ファイルを更新しました","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"ワンクリックで WARP WireGuard 設定(Mihomo outbound 用 YAML)","warpRegister":"WARP を登録","warpDone":"WARP 登録済み — YAML をコピーしました","totp":"二要素認証 (TOTP)","totpOn":"有効","totpSetup":"認証アプリでスキャンするかキーを入力","totpSetupBtn":"二要素認証を設定","totpEnable":"有効化","totpDisable":"二要素認証を無効化","webPathHint":"例: /secret — パス配下でパネルを公開(購読は影響なし)"},"share":{"title":"共有","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"User","tabSub":"Subscription links","tabUri":"Node URIs","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Export all subscription links","exported":"Exported subscription links"}} as const; diff --git a/frontend/src/i18n/locales/ko.ts b/frontend/src/i18n/locales/ko.ts index cd23ef5..b13553c 100644 --- a/frontend/src/i18n/locales/ko.ts +++ b/frontend/src/i18n/locales/ko.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"3m-ui 관리 패널"},"nav":{"dashboard":"대시보드","listeners":"노드","users":"사용자","traffic":"트래픽","cluster":"클러스터","routing":"라우팅","core":"코어","logs":"로그","config":"구성 엔진","share":"공유","settings":"설정","logout":"로그아웃"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"저장","cancel":"취소","delete":"삭제","edit":"편집","create":"생성","confirm":"확인","close":"닫기","copy":"복사","download":"Download","refresh":"새로고침","loading":"로딩…","empty":"데이터 없음","search":"검색","actions":"작업","status":"상태","enabled":"사용","disabled":"중지","name":"이름","type":"Type","port":"포트","protocol":"프로토콜","address":"Address","password":"Password","username":"Username","submit":"제출","success":"성공","error":"실패","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"확인","yes":"예","no":"아니오","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"로그인","subtitle":"Mihomo 관리 패널","username":"사용자 이름","password":"비밀번호","button":"로그인","welcomeBack":"환영합니다","failed":"로그인 실패", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"패널 사용 전 새 비밀번호를 설정하세요.","title":"비밀번호 변경","current":"현재","new":"새 비밀번호","confirm":"확인","button":"업데이트","success":"변경됨","failed":"실패","mismatch":"일치하지 않음"},"dashboard":{"title":"대시보드","subtitle":"개요","status":"Core Status","running":"실행 중","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"메모리","disk":"디스크","network":"Network","upload":"Upload","download":"Download","traffic":"트래픽","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"중지됨","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"사용자","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"노드"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"노드 관리","create":"생성","edit":"편집","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"상태","actions":"작업","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"프로토콜","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"보안","sectionTransport":"전송","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"코어","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"시작","stop":"중지","restart":"재시작","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo 업데이트","description":"공식 안정 또는 Pre 릴리스를 선택하세요. 전환 전에 다운로드와 설정 검증이 끝나며, 실패 시 이전 코어로 복구됩니다. 수동 업데이트만 지원합니다.","source":"코어 출처","managed":"선택한 버전(영구)","bundled":"패널에 포함","previous":"이전 버전","noPrevious":"이전 버전 없음","unavailable":"코어 업데이트 사용 불가","check":"업데이트 확인","select":"버전 선택","latest":"최신","current":"현재","install":"버전 설치","rollback":"이전 버전 복원","releaseNotes":"릴리스 노트","noVersions":"이 플랫폼에 검증 가능한 안정 릴리스가 없습니다.","running":"업데이트 진행 중","failed":"업데이트 실패","succeeded":"업데이트 완료","restored":"이전 코어와 실행 상태를 복원했습니다.","confirm":"Mihomo 전환","interruption":"전환 중 프록시 연결이 잠시 끊깁니다. 설정과 계정은 유지됩니다.","staysStopped":"설치 후에도 코어는 중지 상태입니다. 설정과 계정은 유지됩니다.","steps":{"prepare":"준비","download":"다운로드 및 검증","validate":"설정 확인","activate":"전환 및 확인"},"stage":{"interrupted":"패널 재시작으로 중단","preparing":"업데이트 준비","resolving":"공식 릴리스 확인","downloading":"코어 다운로드 중(현재 코어 계속 실행)","verifying":"SHA-256 검증","validating":"바이너리 및 설정 확인","switching":"코어 전환","starting":"선택한 코어 시작","checking":"프로세스 및 포트 확인","recovering":"이전 코어 복원","complete":"완료"},"stable":"안정","pre":"Pre 릴리스","preNotice":"Pre 빌드는 테스트용이며 호환성 문제가 있을 수 있습니다. 설치는 선택한 빌드를 검증합니다. 공식 빌드가 바뀌면 업데이트를 다시 확인하세요."}},"logs":{"title":"로그","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"새로고침"},"config":{"title":"구성 엔진","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"검증","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"적용","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"미리보기"},"users":{"title":"사용자 관리","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"생성","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"트래픽","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"만료","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"구독 링크","group":"그룹","tags":"태그","trafficResetDays":"트래픽 초기화 주기(일)","expireRenewDays":"만료 갱신 주기(일)","trafficResetDaysHint":"0이면 끔. N일마다 트래픽 초기화.","expireRenewDaysHint":"0이면 끔. 만료 후 N일 연장.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"트래픽","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"합계","used":"사용","remaining":"남음"},"cluster":{"title":"클러스터","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"이름","colProtocol":"프로토콜","colPort":"포트","operationOk":"OK"},"routing":{"title":"라우팅","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"설정","subtitle":"Preferences & Account","language":"언어","theme":"테마","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"공개 URL","warp":"Cloudflare WARP","warpHint":"Cloudflare에 WARP를 등록하고 Mihomo WireGuard 아웃바운드 YAML을 생성합니다.","warpRegister":"WARP 등록","warpDone":"WARP 등록됨 — YAML 복사됨", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"공유","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"사용자","tabSub":"구독","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"모든 구독 링크 내보내기","exported":"구독 링크를 내보냈습니다"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Mihomo 코어 관리 콘솔"},"nav":{"dashboard":"대시보드","listeners":"노드 관리","users":"사용자 관리","traffic":"트래픽","cluster":"클러스터","routing":"라우팅","core":"코어 관리","logs":"로그","config":"설정 엔진","share":"Share","settings":"시스템 설정","logout":"로그아웃"},"common":{"advanced":"고급","prev":"Previous","next":"Next","saved":"Saved","copied":"복사됨","copyFailed":"복사 실패 — 수동으로 선택해 복사하세요","save":"저장","cancel":"취소","delete":"삭제","edit":"편집","create":"생성","confirm":"확인","close":"닫기","copy":"복사","download":"다운로드","refresh":"새로고침","loading":"로딩 중…","empty":"데이터 없음","search":"검색","actions":"작업","status":"상태","enabled":"활성","disabled":"비활성","name":"이름","type":"Type","port":"포트","protocol":"Protocol","address":"주소","password":"Password","username":"Username","submit":"Submit","success":"성공","error":"오류","confirmDelete":"삭제하시겠습니까?","back":"뒤로","generate":"Generate","validate":"Validate","generated":"Generated","ok":"확인","yes":"예","no":"아니오","more":"더보기","reset":"초기화","id":"ID","network":"Network","bound":"연결됨","missing":"Missing"},"login":{"title":"3M-UI","subtitle":"Mihomo 코어 관리 콘솔","username":"사용자 이름","password":"비밀번호","button":"로그인","welcomeBack":"다시 오신 것을 환영합니다","failed":"로그인 실패","totpRequired":"인증 앱 코드를 입력하세요","totpVerify":"확인"},"password":{"requiredHint":"You must set a new password before using the panel.","title":"비밀번호 변경","current":"현재 비밀번호","new":"새 비밀번호","confirm":"새 비밀번호 확인","button":"Change Password","success":"비밀번호가 변경되었습니다","failed":"변경 실패","mismatch":"새 비밀번호가 일치하지 않습니다"},"dashboard":{"title":"대시보드","subtitle":"시스템 개요 및 코어 상태","status":"코어 상태","running":"실행 중","stoppedStatus":"중지됨","version":"버전","pid":"PID","uptime":"가동 시간","listeners":"노드 통계","total":"합계","enabled":"활성","disabled":"비활성","system":"시스템 리소스","cpu":"CPU","memory":"메모리","disk":"디스크","network":"네트워크","upload":"업로드","download":"다운로드","traffic":"트래픽 통계","uploadRate":"업로드 속도","downloadRate":"다운로드 속도","totalUpload":"총 업로드","totalDownload":"총 다운로드","onlineUsers":"온라인 사용자","activeConnections":"활성 연결","start":"시작","stop":"중지","restart":"재시작","started":"코어 시작됨","stopped":"코어 중지됨","restarted":"코어 재시작됨","operationFailed":"작업 실패","unavailable":"상태 없음","users":"사용자","totalUsers":"총 사용자","enabledUsers":"활성 사용자"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"노드 관리","create":"노드 생성","edit":"노드 편집","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Actions","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocol options","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Security","sectionTransport":"Transport","sectionTLS":"TLS certificate","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"코어 관리","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stop","restart":"Restart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo updates","description":"Select an official stable or Pre release. Downloads and configuration checks finish before switching the running core; a failed switch restores the previous core. Updates are manual only.","source":"Core source","managed":"Selected version (persistent)","bundled":"Bundled with the panel","previous":"Previous version","noPrevious":"No previous version","unavailable":"Core updates unavailable","check":"Check for updates","select":"Select version","latest":"Latest","current":"Current","install":"Install version","rollback":"Restore previous version","releaseNotes":"Release notes","noVersions":"No verifiable stable releases are available for this platform.","running":"Update in progress","failed":"Update failed","succeeded":"Update complete","restored":"The previous core and its running state have been restored.","confirm":"Switch Mihomo to","interruption":"Active proxy connections will briefly disconnect during the switch. Configuration and accounts are preserved.","staysStopped":"The core will remain stopped after installation. Configuration and accounts are preserved.","steps":{"prepare":"Prepare","download":"Download and verify","validate":"Check configuration","activate":"Switch and check"},"stage":{"interrupted":"Interrupted by a panel restart","preparing":"Preparing update","resolving":"Resolving official release","downloading":"Downloading core; the current core keeps running","verifying":"Verifying SHA-256 checksum","validating":"Checking binary and existing configuration","switching":"Switching core","starting":"Starting selected core","checking":"Checking process and listening sockets","recovering":"Restoring previous core","complete":"Completed"},"stable":"Stable","pre":"Pre release","preNotice":"Pre builds are rolling test releases and may have compatibility issues. Installation verifies the selected build; if the official build has changed, check for updates again."}},"logs":{"title":"로그","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"설정 엔진","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validate config","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Apply","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"사용자 관리","subtitle":"계정, 트래픽, 노드 연결 및 구독을 관리합니다.","batch":"Batch","create":"사용자 생성","edit":"사용자 편집","username":"사용자 이름","password":"비밀번호","enabled":"활성 상태","deleteConfirm":"Delete this user?","created":"생성됨","updated":"업데이트됨","deleted":"삭제됨","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"노드 선택","bindSuccess":"Node bindings updated","traffic":"트래픽","trafficLimitGB":"트래픽 한도 (GB)","trafficLimitHint":"0 또는 비움 = 무제한","expire":"만료일","expireHint":"비워 두면 무제한","neverExpire":"무제한","online":"온라인","offline":"오프라인","blocked":"Blocked","unlimited":"무제한","resetTraffic":"트래픽 초기화","resetTrafficConfirm":"이 사용자의 트래픽 카운터를 초기화할까요?","trafficReset":"트래픽이 초기화되었습니다","passwordKeep":"비워 두면 현재 비밀번호 유지","hwidLimit":"HWID 기기 한도","hwidLimitHint":"0 = 무제한. Happ 등 클라이언트가 구독 가져오기 시 보내는 x-hwid 지원.","ipLimit":"IP 제한","ipLimitHint":"0 = 동시 클라이언트 IP 무제한","remark":"메모","shareTitle":"구독","rotateSub":"구독 토큰 교체","subRotated":"구독이 교체되었습니다","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box 구독","qrHint":"QR = 기본(Mihomo). 클래식 클라이언트에는 V2Ray URL을 붙여넣으세요.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"원격 노드 선택","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"그룹","tags":"태그","trafficResetDays":"트래픽 초기화 주기(일)","expireRenewDays":"만료 갱신 주기(일)","trafficResetDaysHint":"0 = 끔. N일마다 이 사용자 트래픽 초기화.","expireRenewDaysHint":"0 = 끔. 만료 후 자동으로 N일 연장.","devices":"기기","clearDevices":"모두 지우기","deviceOs":"OS","deviceModel":"모델","lastSeen":"마지막 접속","startOnFirstUse":"최초 사용부터 계산","expireDaysAfterFirst":"최초 사용 후 유효 일수","externalLinks":"외부 구독 URL","externalLinksHint":"줄마다 Clash/Mihomo YAML URL 하나. 이 사용자 구독에 병합됩니다"},"traffic":{"title":"트래픽","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"클러스터 노드","subtitle":"원격 3m-ui 패널을 등록하고 상태 확인","create":"노드 추가","edit":"노드 편집","name":"이름","baseUrl":"패널 URL","apiToken":"API Token","apiTokenHint":"선택 사항. 원격 패널 인증에 사용","remark":"메모","health":"상태 확인","healthDone":"확인됨","healthAll":"모두 확인","healthAllDone":"상태 확인 완료","dashboard":"원격 대시보드","users":"Remote users","restartCore":"코어 재시작","restarted":"Remote core restarted","startCore":"코어 시작","stopCore":"코어 중지","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"원격 노드","syncNodes":"노드 동기화","syncDone":"동기화 완료","pushNode":"노드 푸시","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Name","colProtocol":"Protocol","colPort":"Port","operationOk":"OK"},"routing":{"title":"라우팅","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"패널 / UI","navAccess":"액세스 프로필","navTelegram":"Telegram","navSecurity":"보안 및 백업","navSubscription":"구독 페이지","navSSL":"인증서 / SSL","navNetwork":"프록시 및 Geo","navTraffic":"트래픽 초기화","navAbout":"정보","panelServer":"패널 서버","panelPort":"패널 포트","panelPortHint":"패널 웹 UI 포트","panelListen":"리슨 주소","panelListenHint":"예: 0.0.0.0 또는 ::","panelPublicURL":"공개 URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"시스템 설정","subtitle":"환경설정 및 계정","language":"인터페이스 언어","theme":"테마","light":"라이트","dark":"다크","system":"시스템","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"비밀번호 변경","about":"3M-UI 정보","version":"버전","backup":"백업 및 복원","backupHint":"SQLite와 Mihomo 설정 zip 다운로드. DB 복원 후 패널 재시작.","downloadBackup":"백업 다운로드","restoreDb":"Restore database","backupDone":"백업 다운로드됨","restoreDone":"Database restored — restart the panel","apiDocs":"API 문서","apiDocsHint":"자동화를 위한 OpenAPI 3 명세.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram 알림","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Telegram 설정 저장됨","telegramTest":"테스트 메시지 보내기","telegramTestOk":"테스트 메시지 전송됨","chatIdsHint":"쉼표로 구분된 Chat ID","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"도메인","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"인증서 마법사","email":"이메일","webroot":"Webroot path","generateAcme":"certbot 명령 생성","acmeGenerated":"명령 생성됨","acmeHint":"서버에서 명령을 실행한 뒤 Listener TLS에 인증서 경로 입력","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"최신 MetaCubeX GeoIP/GeoSite를 Mihomo 데이터 디렉터리로.","updateGeofiles":"지리 파일 업데이트","geofilesDone":"지리 파일 업데이트됨","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"원클릭 WARP WireGuard 설정(Mihomo outbound용 YAML)","warpRegister":"WARP 등록","warpDone":"WARP 등록됨 — YAML 복사됨","totp":"2단계 인증 (TOTP)","totpOn":"사용 중","totpSetup":"인증 앱으로 스캔하거나 키 입력","totpSetupBtn":"2단계 인증 설정","totpEnable":"사용","totpDisable":"2단계 인증 끄기","webPathHint":"예: /secret — 경로 아래 패널 게시(구독 영향 없음)"},"share":{"title":"공유","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"User","tabSub":"Subscription links","tabUri":"Node URIs","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Export all subscription links","exported":"Exported subscription links"}} as const; diff --git a/frontend/src/i18n/locales/pl.ts b/frontend/src/i18n/locales/pl.ts index 7acdb52..24ceb7e 100644 --- a/frontend/src/i18n/locales/pl.ts +++ b/frontend/src/i18n/locales/pl.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Panel 3m-ui"},"nav":{"dashboard":"Pulpit","listeners":"Węzły","users":"Użytkownicy","traffic":"Ruch","cluster":"Klaster","routing":"Routing","core":"Rdzeń","logs":"Logi","config":"Silnik config","share":"Udostępnij","settings":"Ustawienia","logout":"Wyloguj"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Zapisz","cancel":"Anuluj","delete":"Usuń","edit":"Edytuj","create":"Utwórz","confirm":"Potwierdź","close":"Zamknij","copy":"Kopiuj","download":"Download","refresh":"Odśwież","loading":"Ładowanie…","empty":"Brak danych","search":"Szukaj","actions":"Akcje","status":"Status","enabled":"Włączone","disabled":"Wyłączone","name":"Nazwa","type":"Type","port":"Port","protocol":"Protokół","address":"Address","password":"Password","username":"Username","submit":"Wyślij","success":"Sukces","error":"Błąd","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Tak","no":"Nie","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Logowanie","subtitle":"Panel Mihomo","username":"Nazwa użytkownika","password":"Hasło","button":"Zaloguj","welcomeBack":"Witaj ponownie","failed":"Logowanie nieudane", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Ustaw nowe hasło przed użyciem panelu.","title":"Zmiana hasła","current":"Obecne","new":"Nowe","confirm":"Potwierdź","button":"Aktualizuj","success":"Zaktualizowano","failed":"Błąd","mismatch":"Nie zgadza się"},"dashboard":{"title":"Pulpit","subtitle":"System & Core Overview","status":"Core Status","running":"Działa","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"Ruch","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Zatrzymany","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Użytkownicy","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Węzły"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Węzły","create":"Utwórz","edit":"Edytuj","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Akcje","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protokół","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Bezpieczeństwo","sectionTransport":"Transport","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Rdzeń","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stop","restart":"Restart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Aktualizacje Mihomo","description":"Wybierz oficjalną wersję stabilną lub Pre. Pobranie i sprawdzenie konfiguracji kończą się przed przełączeniem; przy błędzie przywracany jest poprzedni rdzeń. Tylko aktualizacje ręczne.","source":"Źródło rdzenia","managed":"Wybrana wersja (trwała)","bundled":"Dołączona do panelu","previous":"Poprzednia wersja","noPrevious":"Brak poprzedniej wersji","unavailable":"Aktualizacje rdzenia niedostępne","check":"Sprawdź aktualizacje","select":"Wybierz wersję","latest":"Najnowsza","current":"Bieżąca","install":"Zainstaluj wersję","rollback":"Przywróć poprzednią wersję","releaseNotes":"Uwagi do wydania","noVersions":"Brak weryfikowalnych wydań stabilnych dla tej platformy.","running":"Trwa aktualizacja","failed":"Aktualizacja nie powiodła się","succeeded":"Aktualizacja zakończona","restored":"Przywrócono poprzedni rdzeń i stan działania.","confirm":"Przełącz Mihomo na","interruption":"Połączenia proxy zostaną krótko przerwane. Konfiguracja i konta zostaną zachowane.","staysStopped":"Po instalacji rdzeń pozostanie zatrzymany. Konfiguracja i konta zostaną zachowane.","steps":{"prepare":"Przygotowanie","download":"Pobieranie i weryfikacja","validate":"Sprawdzenie konfiguracji","activate":"Przełączenie i kontrola"},"stage":{"interrupted":"Przerwane przez restart panelu","preparing":"Przygotowanie aktualizacji","resolving":"Ustalanie oficjalnego wydania","downloading":"Pobieranie rdzenia; bieżący nadal działa","verifying":"Weryfikacja SHA-256","validating":"Sprawdzanie binariów i konfiguracji","switching":"Przełączanie rdzenia","starting":"Uruchamianie wybranego rdzenia","checking":"Kontrola procesu i portów","recovering":"Przywracanie poprzedniego rdzenia","complete":"Zakończono"},"stable":"Stabilna","pre":"Wydanie Pre","preNotice":"Kompilacje Pre są testowe i mogą mieć problemy ze zgodnością. Instalacja weryfikuje build; jeśli oficjalny się zmieni, sprawdź aktualizacje ponownie."}},"logs":{"title":"Logi","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Odśwież"},"config":{"title":"Silnik config","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Sprawdź","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Zastosuj","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Podgląd"},"users":{"title":"Użytkownicy","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Utwórz","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Ruch","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Wygaśnięcie","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Link subskrypcji","group":"Grupa","tags":"Tagi","trafficResetDays":"Cykl resetu ruchu (dni)","expireRenewDays":"Cykl przedłużenia po wygaśnięciu (dni)","trafficResetDaysHint":"0 = wył. Reset ruchu co N dni.","expireRenewDaysHint":"0 = wył. Po wygaśnięciu +N dni.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Ruch","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Razem","used":"Użyte","remaining":"Pozostało"},"cluster":{"title":"Klaster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Nazwa","colProtocol":"Protokół","colPort":"Port","operationOk":"OK"},"routing":{"title":"Routing","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Ustawienia","subtitle":"Preferences & Account","language":"Język","theme":"Motyw","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"Publiczny URL","warp":"Cloudflare WARP","warpHint":"Rejestracja WARP w Cloudflare i YAML WireGuard dla Mihomo.","warpRegister":"Zarejestruj WARP","warpDone":"WARP zarejestrowany — YAML skopiowany", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Udostępnij","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Użytkownik","tabSub":"Subskrypcja","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Eksportuj wszystkie linki subskrypcji","exported":"Wyeksportowano linki subskrypcji"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Panel 3m-ui"},"nav":{"dashboard":"Pulpit","listeners":"Węzły","users":"Użytkownicy","traffic":"Ruch","cluster":"Klaster","routing":"Routing","core":"Rdzeń","logs":"Logi","config":"Silnik config","share":"Udostępnij","settings":"Ustawienia","logout":"Wyloguj"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Zapisz","cancel":"Anuluj","delete":"Usuń","edit":"Edytuj","create":"Utwórz","confirm":"Potwierdź","close":"Zamknij","copy":"Kopiuj","download":"Download","refresh":"Odśwież","loading":"Ładowanie…","empty":"Brak danych","search":"Szukaj","actions":"Akcje","status":"Status","enabled":"Włączone","disabled":"Wyłączone","name":"Nazwa","type":"Type","port":"Port","protocol":"Protokół","address":"Address","password":"Password","username":"Username","submit":"Wyślij","success":"Sukces","error":"Błąd","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Tak","no":"Nie","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Logowanie","subtitle":"Panel Mihomo","username":"Nazwa użytkownika","password":"Hasło","button":"Zaloguj","welcomeBack":"Witaj ponownie","failed":"Logowanie nieudane","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"Ustaw nowe hasło przed użyciem panelu.","title":"Zmiana hasła","current":"Obecne","new":"Nowe","confirm":"Potwierdź","button":"Aktualizuj","success":"Zaktualizowano","failed":"Błąd","mismatch":"Nie zgadza się"},"dashboard":{"title":"Panel","subtitle":"Przegląd systemu i status jądra","status":"Status jądra","running":"Uruchomione","stoppedStatus":"Zatrzymane","version":"Wersja","pid":"PID","uptime":"Czas pracy","listeners":"Statystyki węzłów","total":"Razem","enabled":"Włączone","disabled":"Wyłączone","system":"Zasoby systemowe","cpu":"CPU","memory":"Pamięć","disk":"Dysk","network":"Sieć","upload":"Wysyłanie","download":"Pobieranie","traffic":"Statystyki ruchu","uploadRate":"Szybkość wysyłania","downloadRate":"Szybkość pobierania","totalUpload":"Całkowite wysyłanie","totalDownload":"Całkowite pobieranie","onlineUsers":"Użytkownicy online","activeConnections":"Aktywne połączenia","start":"Uruchom","stop":"Zatrzymaj","restart":"Restartuj","started":"Jądro uruchomione","stopped":"Jądro zatrzymane","restarted":"Jądro zrestartowane","operationFailed":"Operacja nie powiodła się","unavailable":"Status niedostępny","users":"Użytkownicy","totalUsers":"Łącznie użytkowników","enabledUsers":"Aktywni użytkownicy"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Węzły","create":"Utwórz","edit":"Edytuj","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Akcje","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protokół","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Bezpieczeństwo","sectionTransport":"Transport","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Rdzeń","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stop","restart":"Restart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Aktualizacje Mihomo","description":"Wybierz oficjalną wersję stabilną lub Pre. Pobranie i sprawdzenie konfiguracji kończą się przed przełączeniem; przy błędzie przywracany jest poprzedni rdzeń. Tylko aktualizacje ręczne.","source":"Źródło rdzenia","managed":"Wybrana wersja (trwała)","bundled":"Dołączona do panelu","previous":"Poprzednia wersja","noPrevious":"Brak poprzedniej wersji","unavailable":"Aktualizacje rdzenia niedostępne","check":"Sprawdź aktualizacje","select":"Wybierz wersję","latest":"Najnowsza","current":"Bieżąca","install":"Zainstaluj wersję","rollback":"Przywróć poprzednią wersję","releaseNotes":"Uwagi do wydania","noVersions":"Brak weryfikowalnych wydań stabilnych dla tej platformy.","running":"Trwa aktualizacja","failed":"Aktualizacja nie powiodła się","succeeded":"Aktualizacja zakończona","restored":"Przywrócono poprzedni rdzeń i stan działania.","confirm":"Przełącz Mihomo na","interruption":"Połączenia proxy zostaną krótko przerwane. Konfiguracja i konta zostaną zachowane.","staysStopped":"Po instalacji rdzeń pozostanie zatrzymany. Konfiguracja i konta zostaną zachowane.","steps":{"prepare":"Przygotowanie","download":"Pobieranie i weryfikacja","validate":"Sprawdzenie konfiguracji","activate":"Przełączenie i kontrola"},"stage":{"interrupted":"Przerwane przez restart panelu","preparing":"Przygotowanie aktualizacji","resolving":"Ustalanie oficjalnego wydania","downloading":"Pobieranie rdzenia; bieżący nadal działa","verifying":"Weryfikacja SHA-256","validating":"Sprawdzanie binariów i konfiguracji","switching":"Przełączanie rdzenia","starting":"Uruchamianie wybranego rdzenia","checking":"Kontrola procesu i portów","recovering":"Przywracanie poprzedniego rdzenia","complete":"Zakończono"},"stable":"Stabilna","pre":"Wydanie Pre","preNotice":"Kompilacje Pre są testowe i mogą mieć problemy ze zgodnością. Instalacja weryfikuje build; jeśli oficjalny się zmieni, sprawdź aktualizacje ponownie."}},"logs":{"title":"Logi","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Silnik config","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Sprawdź","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Zastosuj","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Użytkownicy","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Utwórz","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Ruch","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Wygaśnięcie","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Grupa","tags":"Tagi","trafficResetDays":"Cykl resetu ruchu (dni)","expireRenewDays":"Cykl przedłużenia po wygaśnięciu (dni)","trafficResetDaysHint":"0 = wył. Reset ruchu co N dni.","expireRenewDaysHint":"0 = wył. Po wygaśnięciu +N dni.","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Ruch","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Klaster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Nazwa","colProtocol":"Protokół","colPort":"Port","operationOk":"OK"},"routing":{"title":"Routing","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Profil dostępu","navTelegram":"Telegram","navSecurity":"Bezpieczeństwo i kopia","navSubscription":"Strona subskrypcji","navSSL":"Certyfikaty / SSL","navNetwork":"Proxy i Geo","navTraffic":"Reset ruchu","navAbout":"O programie","panelServer":"Serwer panelu","panelPort":"Port panelu","panelPortHint":"Port interfejsu web panelu","panelListen":"Adres nasłuchu","panelListenHint":"np. 0.0.0.0 lub ::","panelPublicURL":"Publiczny URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Ustawienia systemu","subtitle":"Preferencje i konto","language":"Język interfejsu","theme":"Motyw","light":"Jasny","dark":"Ciemny","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Zmień hasło","about":"O 3M-UI","version":"Wersja","backup":"Kopia zapasowa i przywracanie","backupHint":"Pobierz zip z SQLite i konfiguracją Mihomo. Po przywróceniu DB zrestartuj panel.","downloadBackup":"Pobierz kopię","restoreDb":"Restore database","backupDone":"Pobrano kopię","restoreDone":"Database restored — restart the panel","apiDocs":"Dokumentacja API","apiDocsHint":"Specyfikacja OpenAPI 3 do automatyzacji.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Alerty Telegram","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Zapisano ustawienia Telegram","telegramTest":"Wyślij wiadomość testową","telegramTestOk":"Wiadomość testowa wysłana","chatIdsHint":"Chat ID oddzielone przecinkami","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domena","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Kreator certyfikatów","email":"E-mail","webroot":"Webroot path","generateAcme":"Generuj polecenie certbot","acmeGenerated":"Wygenerowano polecenie","acmeHint":"Uruchom polecenie na serwerze i wpisz ścieżki w Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Pobierz najnowsze bazy MetaCubeX GeoIP/GeoSite do katalogu Mihomo.","updateGeofiles":"Aktualizuj pliki geo","geofilesDone":"Zaktualizowano pliki geo","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Rejestracja WARP WireGuard jednym kliknięciem (fragment YAML dla outbound Mihomo)","warpRegister":"Zarejestruj WARP","warpDone":"WARP zarejestrowany — YAML skopiowany","totp":"Uwierzytelnianie dwuskładnikowe (TOTP)","totpOn":"Włączone","totpSetup":"Zeskanuj w aplikacji lub wpisz klucz","totpSetupBtn":"Skonfiguruj 2FA","totpEnable":"Włącz","totpDisable":"Wyłącz 2FA","webPathHint":"np. /secret — publikuj panel pod ścieżką (subskrypcje bez zmian)"},"share":{"title":"Udostępnij","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Użytkownik","tabSub":"Subskrypcja","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Eksportuj wszystkie linki subskrypcji","exported":"Wyeksportowano linki subskrypcji"}} as const; diff --git a/frontend/src/i18n/locales/pt-BR.ts b/frontend/src/i18n/locales/pt-BR.ts index 8add3cc..5a984dc 100644 --- a/frontend/src/i18n/locales/pt-BR.ts +++ b/frontend/src/i18n/locales/pt-BR.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Painel 3m-ui"},"nav":{"dashboard":"Painel","listeners":"Nós","users":"Usuários","traffic":"Tráfego","cluster":"Cluster","routing":"Roteamento","core":"Core","logs":"Logs","config":"Motor de config","share":"Compartilhar","settings":"Configurações","logout":"Sair"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Salvar","cancel":"Cancelar","delete":"Excluir","edit":"Editar","create":"Criar","confirm":"Confirmar","close":"Fechar","copy":"Copiar","download":"Download","refresh":"Atualizar","loading":"Carregando…","empty":"Sem dados","search":"Buscar","actions":"Ações","status":"Status","enabled":"Ativo","disabled":"Inativo","name":"Nome","type":"Type","port":"Porta","protocol":"Protocolo","address":"Address","password":"Password","username":"Username","submit":"Enviar","success":"Sucesso","error":"Erro","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Sim","no":"Não","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Entrar","subtitle":"Painel Mihomo","username":"Usuário","password":"Senha","button":"Entrar","welcomeBack":"Bem-vindo","failed":"Falha no login", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Defina uma nova senha antes de usar o painel.","title":"Alterar senha","current":"Atual","new":"Nova","confirm":"Confirmar","button":"Atualizar","success":"Atualizada","failed":"Falha","mismatch":"Não coincidem"},"dashboard":{"title":"Painel","subtitle":"Resumo","status":"Core Status","running":"Em execução","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"Tráfego","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Parado","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Usuários","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Nós"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Nós","create":"Criar","edit":"Editar","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Ações","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocolo","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Segurança","sectionTransport":"Transporte","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Core","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Iniciar","stop":"Parar","restart":"Reiniciar","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Atualizações do Mihomo","description":"Escolha uma versão oficial estável ou Pre. O download e a verificação da configuração terminam antes de trocar o núcleo; se falhar, o anterior é restaurado. Apenas atualizações manuais.","source":"Origem do núcleo","managed":"Versão selecionada (persistente)","bundled":"Incluído no painel","previous":"Versão anterior","noPrevious":"Nenhuma versão anterior","unavailable":"Atualizações do núcleo indisponíveis","check":"Verificar atualizações","select":"Selecionar versão","latest":"Mais recente","current":"Atual","install":"Instalar versão","rollback":"Restaurar versão anterior","releaseNotes":"Notas da versão","noVersions":"Não há versões estáveis verificáveis para esta plataforma.","running":"Atualização em andamento","failed":"Falha na atualização","succeeded":"Atualização concluída","restored":"Núcleo anterior e estado de execução restaurados.","confirm":"Alternar Mihomo para","interruption":"As conexões proxy serão interrompidas brevemente. Configuração e contas são preservadas.","staysStopped":"O núcleo permanecerá parado após a instalação. Configuração e contas são preservadas.","steps":{"prepare":"Preparar","download":"Baixar e verificar","validate":"Verificar configuração","activate":"Alternar e verificar"},"stage":{"interrupted":"Interrompido por reinício do painel","preparing":"Preparando atualização","resolving":"Resolvendo versão oficial","downloading":"Baixando núcleo; o atual continua em execução","verifying":"Verificando SHA-256","validating":"Verificando binário e configuração","switching":"Alternando núcleo","starting":"Iniciando núcleo selecionado","checking":"Verificando processo e portas","recovering":"Restaurando núcleo anterior","complete":"Concluído"},"stable":"Estável","pre":"Pré-lançamento","preNotice":"Builds Pre são de teste e podem ter problemas de compatibilidade. A instalação verifica o build; se o oficial mudou, verifique atualizações novamente."}},"logs":{"title":"Logs","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Atualizar"},"config":{"title":"Motor de config","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validar","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Aplicar","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Prévia"},"users":{"title":"Usuários","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Criar","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Tráfego","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Validade","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Link de assinatura","group":"Grupo","tags":"Tags","trafficResetDays":"Ciclo de reset de tráfego (dias)","expireRenewDays":"Ciclo de renovação após expirar (dias)","trafficResetDaysHint":"0 = off. Zera o tráfego a cada N dias.","expireRenewDaysHint":"0 = off. Após expirar, estende N dias.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Tráfego","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Total","used":"Usado","remaining":"Restante"},"cluster":{"title":"Cluster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Nome","colProtocol":"Protocolo","colPort":"Porta","operationOk":"OK"},"routing":{"title":"Roteamento","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Configurações","subtitle":"Preferences & Account","language":"Idioma","theme":"Tema","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"URL pública","warp":"Cloudflare WARP","warpHint":"Registra WARP na Cloudflare e gera YAML WireGuard para Mihomo.","warpRegister":"Registrar WARP","warpDone":"WARP registrado — YAML copiado", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Compartilhar","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Usuário","tabSub":"Assinatura","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Exportar todos os links de assinatura","exported":"Links de assinatura exportados"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Painel 3m-ui"},"nav":{"dashboard":"Painel","listeners":"Nós","users":"Usuários","traffic":"Tráfego","cluster":"Cluster","routing":"Roteamento","core":"Core","logs":"Logs","config":"Motor de config","share":"Compartilhar","settings":"Configurações","logout":"Sair"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Salvar","cancel":"Cancelar","delete":"Excluir","edit":"Editar","create":"Criar","confirm":"Confirmar","close":"Fechar","copy":"Copiar","download":"Download","refresh":"Atualizar","loading":"Carregando…","empty":"Sem dados","search":"Buscar","actions":"Ações","status":"Status","enabled":"Ativo","disabled":"Inativo","name":"Nome","type":"Type","port":"Porta","protocol":"Protocolo","address":"Address","password":"Password","username":"Username","submit":"Enviar","success":"Sucesso","error":"Erro","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Sim","no":"Não","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Entrar","subtitle":"Painel Mihomo","username":"Usuário","password":"Senha","button":"Entrar","welcomeBack":"Bem-vindo","failed":"Falha no login","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"Defina uma nova senha antes de usar o painel.","title":"Alterar senha","current":"Atual","new":"Nova","confirm":"Confirmar","button":"Atualizar","success":"Atualizada","failed":"Falha","mismatch":"Não coincidem"},"dashboard":{"title":"Painel","subtitle":"Visão geral do sistema e status do núcleo","status":"Status do núcleo","running":"Em execução","stoppedStatus":"Parado","version":"Versão","pid":"PID","uptime":"Tempo ativo","listeners":"Estatísticas de nós","total":"Total","enabled":"Ativado","disabled":"Desativado","system":"Recursos do sistema","cpu":"CPU","memory":"Memória","disk":"Disco","network":"Rede","upload":"Upload","download":"Download","traffic":"Estatísticas de tráfego","uploadRate":"Taxa de upload","downloadRate":"Taxa de download","totalUpload":"Upload total","totalDownload":"Download total","onlineUsers":"Usuários online","activeConnections":"Conexões ativas","start":"Iniciar","stop":"Parar","restart":"Reiniciar","started":"Núcleo iniciado","stopped":"Núcleo parado","restarted":"Núcleo reiniciado","operationFailed":"Operação falhou","unavailable":"Status indisponível","users":"Usuários","totalUsers":"Total de usuários","enabledUsers":"Usuários ativos"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Nós","create":"Criar","edit":"Editar","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Ações","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocolo","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Segurança","sectionTransport":"Transporte","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Core","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Iniciar","stop":"Parar","restart":"Reiniciar","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Atualizações do Mihomo","description":"Escolha uma versão oficial estável ou Pre. O download e a verificação da configuração terminam antes de trocar o núcleo; se falhar, o anterior é restaurado. Apenas atualizações manuais.","source":"Origem do núcleo","managed":"Versão selecionada (persistente)","bundled":"Incluído no painel","previous":"Versão anterior","noPrevious":"Nenhuma versão anterior","unavailable":"Atualizações do núcleo indisponíveis","check":"Verificar atualizações","select":"Selecionar versão","latest":"Mais recente","current":"Atual","install":"Instalar versão","rollback":"Restaurar versão anterior","releaseNotes":"Notas da versão","noVersions":"Não há versões estáveis verificáveis para esta plataforma.","running":"Atualização em andamento","failed":"Falha na atualização","succeeded":"Atualização concluída","restored":"Núcleo anterior e estado de execução restaurados.","confirm":"Alternar Mihomo para","interruption":"As conexões proxy serão interrompidas brevemente. Configuração e contas são preservadas.","staysStopped":"O núcleo permanecerá parado após a instalação. Configuração e contas são preservadas.","steps":{"prepare":"Preparar","download":"Baixar e verificar","validate":"Verificar configuração","activate":"Alternar e verificar"},"stage":{"interrupted":"Interrompido por reinício do painel","preparing":"Preparando atualização","resolving":"Resolvendo versão oficial","downloading":"Baixando núcleo; o atual continua em execução","verifying":"Verificando SHA-256","validating":"Verificando binário e configuração","switching":"Alternando núcleo","starting":"Iniciando núcleo selecionado","checking":"Verificando processo e portas","recovering":"Restaurando núcleo anterior","complete":"Concluído"},"stable":"Estável","pre":"Pré-lançamento","preNotice":"Builds Pre são de teste e podem ter problemas de compatibilidade. A instalação verifica o build; se o oficial mudou, verifique atualizações novamente."}},"logs":{"title":"Logs","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Motor de config","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validar","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Aplicar","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Usuários","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Criar","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Tráfego","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Validade","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Grupo","tags":"Tags","trafficResetDays":"Ciclo de reset de tráfego (dias)","expireRenewDays":"Ciclo de renovação após expirar (dias)","trafficResetDaysHint":"0 = off. Zera o tráfego a cada N dias.","expireRenewDaysHint":"0 = off. Após expirar, estende N dias.","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Tráfego","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Cluster","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Nome","colProtocol":"Protocolo","colPort":"Porta","operationOk":"OK"},"routing":{"title":"Roteamento","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Painel / UI","navAccess":"Perfil de acesso","navTelegram":"Telegram","navSecurity":"Segurança e backup","navSubscription":"Página de assinatura","navSSL":"Certificados / SSL","navNetwork":"Proxy e Geo","navTraffic":"Reset de tráfego","navAbout":"Sobre","panelServer":"Servidor do painel","panelPort":"Porta do painel","panelPortHint":"Porta da interface web do painel","panelListen":"Endereço de escuta","panelListenHint":"ex.: 0.0.0.0 ou ::","panelPublicURL":"URL pública","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Configurações do sistema","subtitle":"Preferências e conta","language":"Idioma da interface","theme":"Tema","light":"Claro","dark":"Escuro","system":"Sistema","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Alterar senha","about":"Sobre o 3M-UI","version":"Versão","backup":"Backup e restauração","backupHint":"Baixe um zip com SQLite e config Mihomo. Reinicie o painel após restaurar o DB.","downloadBackup":"Baixar backup","restoreDb":"Restore database","backupDone":"Backup baixado","restoreDone":"Database restored — restart the panel","apiDocs":"Documentação da API","apiDocsHint":"Especificação OpenAPI 3 para automação.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Alertas do Telegram","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Configurações do Telegram salvas","telegramTest":"Enviar mensagem de teste","telegramTestOk":"Mensagem de teste enviada","chatIdsHint":"Chat IDs separados por vírgula","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domínio","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Assistente de certificados","email":"E-mail","webroot":"Webroot path","generateAcme":"Gerar comando certbot","acmeGenerated":"Comando gerado","acmeHint":"Execute o comando no servidor e coloque os caminhos no Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Baixar as bases MetaCubeX GeoIP/GeoSite mais recentes no diretório do Mihomo.","updateGeofiles":"Atualizar arquivos geo","geofilesDone":"Arquivos geo atualizados","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Registro WARP WireGuard com um clique (fragmento YAML para outbound Mihomo)","warpRegister":"Registrar WARP","warpDone":"WARP registrado — YAML copiado","totp":"Autenticação em duas etapas (TOTP)","totpOn":"Ativado","totpSetup":"Escaneie com o autenticador ou digite a chave","totpSetupBtn":"Configurar 2FA","totpEnable":"Ativar","totpDisable":"Desativar 2FA","webPathHint":"ex.: /secret — publicar o painel sob um caminho (assinaturas inalteradas)"},"share":{"title":"Compartilhar","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Usuário","tabSub":"Assinatura","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Exportar todos os links de assinatura","exported":"Links de assinatura exportados"}} as const; diff --git a/frontend/src/i18n/locales/ru.ts b/frontend/src/i18n/locales/ru.ts index c21467c..eb62dc6 100644 --- a/frontend/src/i18n/locales/ru.ts +++ b/frontend/src/i18n/locales/ru.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Панель 3m-ui"},"nav":{"dashboard":"Обзор","listeners":"Узлы","users":"Пользователи","traffic":"Трафик","cluster":"Кластер","routing":"Маршруты","core":"Ядро","logs":"Журналы","config":"Конфиг","share":"Шаринг","settings":"Настройки","logout":"Выход"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Сохранить","cancel":"Отмена","delete":"Удалить","edit":"Изменить","create":"Создать","confirm":"Подтвердить","close":"Закрыть","copy":"Копировать","download":"Download","refresh":"Обновить","loading":"Загрузка…","empty":"Нет данных","search":"Поиск","actions":"Действия","status":"Статус","enabled":"Вкл","disabled":"Выкл","name":"Имя","type":"Type","port":"Порт","protocol":"Протокол","address":"Address","password":"Password","username":"Username","submit":"Отправить","success":"Успех","error":"Ошибка","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Да","no":"Нет","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Вход","subtitle":"Панель Mihomo","username":"Имя пользователя","password":"Пароль","button":"Войти","welcomeBack":"С возвращением","failed":"Ошибка входа", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Перед использованием панели задайте новый пароль.","title":"Смена пароля","current":"Текущий","new":"Новый","confirm":"Подтверждение","button":"Обновить","success":"Обновлён","failed":"Ошибка","mismatch":"Не совпадает"},"dashboard":{"title":"Обзор","subtitle":"Сводка","status":"Core Status","running":"Работает","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Память","disk":"Диск","network":"Network","upload":"Upload","download":"Download","traffic":"Трафик","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Остановлен","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Пользователи","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Узлы"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Узлы","create":"Создать","edit":"Изменить","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Статус","actions":"Действия","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Протокол","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Безопасность","sectionTransport":"Транспорт","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Ядро","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Старт","stop":"Стоп","restart":"Перезапуск","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Обновления Mihomo","description":"Выберите официальный стабильный или Pre-релиз. Загрузка и проверка конфигурации завершаются до переключения ядра; при сбое восстанавливается предыдущее. Только ручные обновления.","source":"Источник ядра","managed":"Выбранная версия (постоянная)","bundled":"Поставляется с панелью","previous":"Предыдущая версия","noPrevious":"Нет предыдущей версии","unavailable":"Обновления ядра недоступны","check":"Проверить обновления","select":"Выбрать версию","latest":"Последняя","current":"Текущая","install":"Установить версию","rollback":"Восстановить предыдущую","releaseNotes":"Заметки о выпуске","noVersions":"Нет проверяемых стабильных релизов для этой платформы.","running":"Идёт обновление","failed":"Ошибка обновления","succeeded":"Обновление завершено","restored":"Предыдущее ядро и состояние работы восстановлены.","confirm":"Переключить Mihomo на","interruption":"Прокси-соединения кратко прервутся. Конфигурация и учётные записи сохранятся.","staysStopped":"После установки ядро останется остановленным. Конфигурация и учётные записи сохранятся.","steps":{"prepare":"Подготовка","download":"Загрузка и проверка","validate":"Проверка конфигурации","activate":"Переключение и проверка"},"stage":{"interrupted":"Прервано перезапуском панели","preparing":"Подготовка обновления","resolving":"Определение официального релиза","downloading":"Загрузка ядра; текущее продолжает работу","verifying":"Проверка SHA-256","validating":"Проверка бинарника и конфигурации","switching":"Переключение ядра","starting":"Запуск выбранного ядра","checking":"Проверка процесса и портов","recovering":"Восстановление предыдущего ядра","complete":"Завершено"},"stable":"Стабильный","pre":"Pre-релиз","preNotice":"Pre-сборки тестовые и могут иметь проблемы совместимости. Установка проверяет сборку; если официальная изменилась, проверьте обновления снова."}},"logs":{"title":"Журналы","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Обновить"},"config":{"title":"Конфиг","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Проверить","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Применить","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Просмотр"},"users":{"title":"Пользователи","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Создать","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Трафик","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Срок","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Ссылка подписки","group":"Группа","tags":"Метки","trafficResetDays":"Цикл сброса трафика (дни)","expireRenewDays":"Цикл продления срока (дни)","trafficResetDaysHint":"0 = выкл. Сброс трафика каждые N дней.","expireRenewDaysHint":"0 = выкл. После истечения +N дней.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Трафик","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Всего","used":"Использовано","remaining":"Остаток"},"cluster":{"title":"Кластер","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Имя","colProtocol":"Протокол","colPort":"Порт","operationOk":"OK"},"routing":{"title":"Маршруты","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Настройки","subtitle":"Preferences & Account","language":"Язык","theme":"Тема","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"Публичный URL","warp":"Cloudflare WARP","warpHint":"Регистрация WARP в Cloudflare и YAML исходящего WireGuard для Mihomo.","warpRegister":"Зарегистрировать WARP","warpDone":"WARP зарегистрирован — YAML скопирован", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Шаринг","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Пользователь","tabSub":"Подписка","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Экспорт всех ссылок подписки","exported":"Ссылки подписки экспортированы"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Консоль управления ядром Mihomo"},"nav":{"dashboard":"Панель","listeners":"Узлы","users":"Пользователи","traffic":"Трафик","cluster":"Кластер","routing":"Маршрутизация","core":"Ядро","logs":"Журналы","config":"Конфигурация","share":"Share","settings":"Настройки","logout":"Выход"},"common":{"advanced":"Дополнительно","prev":"Previous","next":"Next","saved":"Saved","copied":"Скопировано","copyFailed":"Не удалось скопировать — выделите и скопируйте вручную","save":"Сохранить","cancel":"Отмена","delete":"Удалить","edit":"Изменить","create":"Создать","confirm":"Подтвердить","close":"Закрыть","copy":"Копировать","download":"Скачать","refresh":"Обновить","loading":"Загрузка…","empty":"Нет данных","search":"Поиск","actions":"Действия","status":"Статус","enabled":"Вкл.","disabled":"Выкл.","name":"Имя","type":"Type","port":"Порт","protocol":"Protocol","address":"Адрес","password":"Password","username":"Username","submit":"Submit","success":"Успех","error":"Ошибка","confirmDelete":"Удалить?","back":"Назад","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Да","no":"Нет","more":"Ещё","reset":"Сброс","id":"ID","network":"Network","bound":"Привязан","missing":"Missing"},"login":{"title":"3M-UI","subtitle":"Консоль управления ядром Mihomo","username":"Имя пользователя","password":"Пароль","button":"Войти","welcomeBack":"С возвращением","failed":"Ошибка входа","totpRequired":"Введите код из приложения","totpVerify":"Проверить"},"password":{"requiredHint":"You must set a new password before using the panel.","title":"Смена пароля","current":"Текущий пароль","new":"Новый пароль","confirm":"Подтвердите новый пароль","button":"Change Password","success":"Пароль изменён","failed":"Не удалось изменить","mismatch":"Новые пароли не совпадают"},"dashboard":{"title":"Панель","subtitle":"Обзор системы и состояние ядра","status":"Состояние ядра","running":"Работает","stoppedStatus":"Остановлен","version":"Версия","pid":"PID","uptime":"Аптайм","listeners":"Статистика узлов","total":"Всего","enabled":"Вкл.","disabled":"Выкл.","system":"Ресурсы системы","cpu":"CPU","memory":"Память","disk":"Диск","network":"Сеть","upload":"Отправка","download":"Загрузка","traffic":"Статистика трафика","uploadRate":"Скорость отправки","downloadRate":"Скорость загрузки","totalUpload":"Всего отправлено","totalDownload":"Всего загружено","onlineUsers":"Онлайн","activeConnections":"Активные соединения","start":"Запустить","stop":"Остановить","restart":"Перезапустить","started":"Ядро запущено","stopped":"Ядро остановлено","restarted":"Ядро перезапущено","operationFailed":"Ошибка операции","unavailable":"Статус недоступен","users":"Пользователи","totalUsers":"Всего пользователей","enabledUsers":"Активные пользователи"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Узлы","create":"Создать узел","edit":"Изменить узел","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Status","actions":"Actions","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protocol options","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Security","sectionTransport":"Transport","sectionTLS":"TLS certificate","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Ядро","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Start","stop":"Stop","restart":"Restart","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo updates","description":"Select an official stable or Pre release. Downloads and configuration checks finish before switching the running core; a failed switch restores the previous core. Updates are manual only.","source":"Core source","managed":"Selected version (persistent)","bundled":"Bundled with the panel","previous":"Previous version","noPrevious":"No previous version","unavailable":"Core updates unavailable","check":"Check for updates","select":"Select version","latest":"Latest","current":"Current","install":"Install version","rollback":"Restore previous version","releaseNotes":"Release notes","noVersions":"No verifiable stable releases are available for this platform.","running":"Update in progress","failed":"Update failed","succeeded":"Update complete","restored":"The previous core and its running state have been restored.","confirm":"Switch Mihomo to","interruption":"Active proxy connections will briefly disconnect during the switch. Configuration and accounts are preserved.","staysStopped":"The core will remain stopped after installation. Configuration and accounts are preserved.","steps":{"prepare":"Prepare","download":"Download and verify","validate":"Check configuration","activate":"Switch and check"},"stage":{"interrupted":"Interrupted by a panel restart","preparing":"Preparing update","resolving":"Resolving official release","downloading":"Downloading core; the current core keeps running","verifying":"Verifying SHA-256 checksum","validating":"Checking binary and existing configuration","switching":"Switching core","starting":"Starting selected core","checking":"Checking process and listening sockets","recovering":"Restoring previous core","complete":"Completed"},"stable":"Stable","pre":"Pre release","preNotice":"Pre builds are rolling test releases and may have compatibility issues. Installation verifies the selected build; if the official build has changed, check for updates again."}},"logs":{"title":"Журналы","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Конфигурация","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Validate config","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Apply","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Пользователи","subtitle":"Управление аккаунтами, трафиком, привязкой узлов и подписками.","batch":"Batch","create":"Создать пользователя","edit":"Изменить пользователя","username":"Имя пользователя","password":"Пароль","enabled":"Состояние","deleteConfirm":"Delete this user?","created":"Создан","updated":"Обновлён","deleted":"Удалён","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Выбрать узлы","bindSuccess":"Node bindings updated","traffic":"Трафик","trafficLimitGB":"Лимит трафика (ГБ)","trafficLimitHint":"0 или пусто = без лимита","expire":"Срок действия","expireHint":"Пусто = без срока","neverExpire":"Никогда","online":"Онлайн","offline":"Офлайн","blocked":"Blocked","unlimited":"Без лимита","resetTraffic":"Сбросить трафик","resetTrafficConfirm":"Сбросить счётчики трафика этого пользователя?","trafficReset":"Трафик сброшен","passwordKeep":"Оставьте пустым, чтобы сохранить текущий пароль","hwidLimit":"Лимит устройств HWID","hwidLimitHint":"0 = без лимита. Поддержка x-hwid клиентов Happ и др. при импорте подписки.","ipLimit":"Лимит IP","ipLimitHint":"0 = без лимита одновременных IP клиентов","remark":"Заметка","shareTitle":"Подписка","rotateSub":"Сменить токен подписки","subRotated":"Подписка обновлена","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Подписка Sing-box","qrHint":"QR = по умолчанию (Mihomo). Вставьте URL V2Ray в классические клиенты.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Выбрать удалённые узлы","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Группа","tags":"Теги","trafficResetDays":"Цикл сброса трафика (дни)","expireRenewDays":"Цикл продления срока (дни)","trafficResetDaysHint":"0 = выкл. Сбрасывать трафик пользователя каждые N дней.","expireRenewDaysHint":"0 = выкл. После истечения автоматически продлить на N дней.","devices":"Устройства","clearDevices":"Очистить все","deviceOs":"ОС","deviceModel":"Модель","lastSeen":"Был в сети","startOnFirstUse":"С первого использования","expireDaysAfterFirst":"Дней после первого использования","externalLinks":"Внешние URL подписок","externalLinksHint":"По одному Clash/Mihomo YAML URL на строку; объединяется в подписку пользователя"},"traffic":{"title":"Трафик","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Узлы кластера","subtitle":"Регистрация удалённых панелей 3m-ui и проверка состояния","create":"Добавить узел","edit":"Изменить узел","name":"Имя","baseUrl":"URL панели","apiToken":"API Token","apiTokenHint":"Необязательно; для аутентификации на удалённой панели","remark":"Заметка","health":"Проверка состояния","healthDone":"Проверено","healthAll":"Проверить все","healthAllDone":"Проверка завершена","dashboard":"Удалённая панель","users":"Remote users","restartCore":"Перезапустить ядро","restarted":"Remote core restarted","startCore":"Запустить ядро","stopCore":"Остановить ядро","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Удалённые узлы","syncNodes":"Синхронизировать узлы","syncDone":"Синхронизировано","pushNode":"Отправить узел","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Name","colProtocol":"Protocol","colPort":"Port","operationOk":"OK"},"routing":{"title":"Маршрутизация","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Панель / UI","navAccess":"Профиль доступа","navTelegram":"Telegram","navSecurity":"Безопасность и резерв","navSubscription":"Страница подписки","navSSL":"Сертификаты / SSL","navNetwork":"Прокси и Geo","navTraffic":"Сброс трафика","navAbout":"О программе","panelServer":"Сервер панели","panelPort":"Порт панели","panelPortHint":"Порт веб-интерфейса панели","panelListen":"Адрес прослушивания","panelListenHint":"напр. 0.0.0.0 или ::","panelPublicURL":"Публичный URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Настройки системы","subtitle":"Настройки и аккаунт","language":"Язык интерфейса","theme":"Тема","light":"Светлая","dark":"Тёмная","system":"Система","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Сменить пароль","about":"О 3M-UI","version":"Версия","backup":"Резервное копирование","backupHint":"Скачать zip с SQLite и конфигом Mihomo. После восстановления БД перезапустите панель.","downloadBackup":"Скачать резервную копию","restoreDb":"Restore database","backupDone":"Резервная копия скачана","restoreDone":"Database restored — restart the panel","apiDocs":"Документация API","apiDocsHint":"Спецификация OpenAPI 3 для автоматизации.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Уведомления Telegram","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Настройки Telegram сохранены","telegramTest":"Отправить тестовое сообщение","telegramTestOk":"Тестовое сообщение отправлено","chatIdsHint":"Chat ID через запятую","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Домен","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Мастер сертификатов","email":"Email","webroot":"Webroot path","generateAcme":"Сгенерировать команду certbot","acmeGenerated":"Команда создана","acmeHint":"Выполните команду на сервере и укажите пути в Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Скачать последние базы MetaCubeX GeoIP/GeoSite в каталог данных Mihomo.","updateGeofiles":"Обновить geo-файлы","geofilesDone":"Geo-файлы обновлены","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Однокнопочная регистрация WARP WireGuard (фрагмент YAML для outbound Mihomo)","warpRegister":"Зарегистрировать WARP","warpDone":"WARP зарегистрирован — YAML скопирован","totp":"Двухфакторная аутентификация (TOTP)","totpOn":"Включено","totpSetup":"Отсканируйте в приложении или введите ключ","totpSetupBtn":"Настроить 2FA","totpEnable":"Включить","totpDisable":"Отключить 2FA","webPathHint":"напр. /secret — публиковать панель по пути (подписки не затрагиваются)"},"share":{"title":"Поделиться","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"User","tabSub":"Subscription links","tabUri":"Node URIs","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Export all subscription links","exported":"Exported subscription links"}} as const; diff --git a/frontend/src/i18n/locales/th.ts b/frontend/src/i18n/locales/th.ts index fd2ee5f..6961f29 100644 --- a/frontend/src/i18n/locales/th.ts +++ b/frontend/src/i18n/locales/th.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"แผงควบคุม 3m-ui"},"nav":{"dashboard":"แดชบอร์ด","listeners":"โหนด","users":"ผู้ใช้","traffic":"ทราฟฟิก","cluster":"คลัสเตอร์","routing":"เส้นทาง","core":"คอร์","logs":"บันทึก","config":"เอนจินคอนฟิก","share":"แชร์","settings":"ตั้งค่า","logout":"ออกจากระบบ"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"บันทึก","cancel":"ยกเลิก","delete":"ลบ","edit":"แก้ไข","create":"สร้าง","confirm":"ยืนยัน","close":"ปิด","copy":"คัดลอก","download":"Download","refresh":"รีเฟรช","loading":"กำลังโหลด…","empty":"ไม่มีข้อมูล","search":"ค้นหา","actions":"การทำงาน","status":"สถานะ","enabled":"เปิด","disabled":"ปิด","name":"ชื่อ","type":"Type","port":"พอร์ต","protocol":"โปรโตคอล","address":"Address","password":"Password","username":"Username","submit":"ส่ง","success":"สำเร็จ","error":"ผิดพลาด","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"ตกลง","yes":"ใช่","no":"ไม่","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"เข้าสู่ระบบ","subtitle":"แผง Mihomo","username":"ชื่อผู้ใช้","password":"รหัสผ่าน","button":"เข้าสู่ระบบ","welcomeBack":"ยินดีต้อนรับ","failed":"เข้าสู่ระบบไม่สำเร็จ", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"ตั้งรหัสผ่านใหม่ก่อนใช้แผงควบคุม","title":"เปลี่ยนรหัสผ่าน","current":"ปัจจุบัน","new":"ใหม่","confirm":"ยืนยัน","button":"อัปเดต","success":"อัปเดตแล้ว","failed":"ล้มเหลว","mismatch":"ไม่ตรงกัน"},"dashboard":{"title":"แดชบอร์ด","subtitle":"System & Core Overview","status":"Core Status","running":"กำลังทำงาน","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"ทราฟฟิก","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"หยุดแล้ว","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"ผู้ใช้","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"โหนด"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"โหนด","create":"สร้าง","edit":"แก้ไข","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"สถานะ","actions":"การทำงาน","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"โปรโตคอล","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"ความปลอดภัย","sectionTransport":"ทรานสปอร์ต","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"คอร์","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"เริ่ม","stop":"หยุด","restart":"รีสตาร์ท","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"อัปเดต Mihomo","description":"เลือกเวอร์ชันทางการแบบเสถียรหรือ Pre การดาวน์โหลดและตรวจคอนฟิกจะเสร็จก่อนสลับคอร์ หากล้มเหลวจะคืนคอร์ก่อนหน้า อัปเดตด้วยตนเองเท่านั้น","source":"แหล่งคอร์","managed":"เวอร์ชันที่เลือก (ถาวร)","bundled":"มากับแผงควบคุม","previous":"เวอร์ชันก่อนหน้า","noPrevious":"ไม่มีเวอร์ชันก่อนหน้า","unavailable":"อัปเดตคอร์ใช้ไม่ได้","check":"ตรวจหาอัปเดต","select":"เลือกเวอร์ชัน","latest":"ล่าสุด","current":"ปัจจุบัน","install":"ติดตั้งเวอร์ชัน","rollback":"คืนเวอร์ชันก่อนหน้า","releaseNotes":"บันทึกเวอร์ชัน","noVersions":"ไม่มีรีลีสเสถียรที่ตรวจสอบได้สำหรับแพลตฟอร์มนี้","running":"กำลังอัปเดต","failed":"อัปเดตล้มเหลว","succeeded":"อัปเดตสำเร็จ","restored":"คืนคอร์ก่อนหน้าและสถานะการทำงานแล้ว","confirm":"สลับ Mihomo เป็น","interruption":"การเชื่อมต่อพร็อกซีจะขาดชั่วคราว คอนฟิกและบัญชียังอยู่","staysStopped":"หลังติดตั้งคอร์จะยังหยุดอยู่ คอนฟิกและบัญชียังอยู่","steps":{"prepare":"เตรียม","download":"ดาวน์โหลดและตรวจสอบ","validate":"ตรวจคอนฟิก","activate":"สลับและตรวจ"},"stage":{"interrupted":"ถูกขัดจังหวะจากการรีสตาร์ทแผง","preparing":"เตรียมอัปเดต","resolving":"หาเวอร์ชันทางการ","downloading":"กำลังดาวน์โหลดคอร์ คอร์ปัจจุบันยังทำงาน","verifying":"ตรวจ SHA-256","validating":"ตรวจไบนารีและคอนฟิก","switching":"สลับคอร์","starting":"เริ่มคอร์ที่เลือก","checking":"ตรวจโปรเซสและพอร์ต","recovering":"คืนคอร์ก่อนหน้า","complete":"เสร็จสิ้น"},"stable":"เสถียร","pre":"Pre","preNotice":"บิลด์ Pre เป็นรุ่นทดสอบ อาจมีปัญหาความเข้ากันได้ การติดตั้งจะตรวจบิลด์ที่เลือก หากบิลด์ทางการเปลี่ยน ให้ตรวจอัปเดตอีกครั้ง"}},"logs":{"title":"บันทึก","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"รีเฟรช"},"config":{"title":"เอนจินคอนฟิก","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"ตรวจสอบ","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"ใช้","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"ดูตัวอย่าง"},"users":{"title":"ผู้ใช้","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"สร้าง","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"ทราฟฟิก","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"หมดอายุ","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"ลิงก์สมัครสมาชิก","group":"กลุ่ม","tags":"แท็ก","trafficResetDays":"รอบรีเซ็ตทราฟฟิก (วัน)","expireRenewDays":"รอบต่ออายุเมื่อหมดอายุ (วัน)","trafficResetDaysHint":"0 = ปิด ทุก N วัน","expireRenewDaysHint":"0 = ปิด หมดอายุแล้ว +N วัน", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"ทราฟฟิก","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"ทั้งหมด","used":"ใช้แล้ว","remaining":"คงเหลือ"},"cluster":{"title":"คลัสเตอร์","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"ชื่อ","colProtocol":"โปรโตคอล","colPort":"พอร์ต","operationOk":"OK"},"routing":{"title":"เส้นทาง","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"ตั้งค่า","subtitle":"Preferences & Account","language":"ภาษา","theme":"ธีม","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"URL สาธารณะ","warp":"Cloudflare WARP","warpHint":"ลงทะเบียน WARP กับ Cloudflare และสร้าง YAML WireGuard สำหรับ Mihomo","warpRegister":"ลงทะเบียน WARP","warpDone":"ลงทะเบียน WARP แล้ว — คัดลอก YAML แล้ว", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"แชร์","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"ผู้ใช้","tabSub":"สมัครสมาชิก","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"ส่งออกลิงก์สมัครทั้งหมด","exported":"ส่งออกลิงก์สมัครแล้ว"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"แผงควบคุม 3m-ui"},"nav":{"dashboard":"แดชบอร์ด","listeners":"โหนด","users":"ผู้ใช้","traffic":"ทราฟฟิก","cluster":"คลัสเตอร์","routing":"เส้นทาง","core":"คอร์","logs":"บันทึก","config":"เอนจินคอนฟิก","share":"แชร์","settings":"ตั้งค่า","logout":"ออกจากระบบ"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"บันทึก","cancel":"ยกเลิก","delete":"ลบ","edit":"แก้ไข","create":"สร้าง","confirm":"ยืนยัน","close":"ปิด","copy":"คัดลอก","download":"Download","refresh":"รีเฟรช","loading":"กำลังโหลด…","empty":"ไม่มีข้อมูล","search":"ค้นหา","actions":"การทำงาน","status":"สถานะ","enabled":"เปิด","disabled":"ปิด","name":"ชื่อ","type":"Type","port":"พอร์ต","protocol":"โปรโตคอล","address":"Address","password":"Password","username":"Username","submit":"ส่ง","success":"สำเร็จ","error":"ผิดพลาด","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"ตกลง","yes":"ใช่","no":"ไม่","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"เข้าสู่ระบบ","subtitle":"แผง Mihomo","username":"ชื่อผู้ใช้","password":"รหัสผ่าน","button":"เข้าสู่ระบบ","welcomeBack":"ยินดีต้อนรับ","failed":"เข้าสู่ระบบไม่สำเร็จ","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"ตั้งรหัสผ่านใหม่ก่อนใช้แผงควบคุม","title":"เปลี่ยนรหัสผ่าน","current":"ปัจจุบัน","new":"ใหม่","confirm":"ยืนยัน","button":"อัปเดต","success":"อัปเดตแล้ว","failed":"ล้มเหลว","mismatch":"ไม่ตรงกัน"},"dashboard":{"title":"แดชบอร์ด","subtitle":"ภาพรวมระบบและสถานะคอร์","status":"สถานะคอร์","running":"กำลังทำงาน","stoppedStatus":"หยุดแล้ว","version":"เวอร์ชัน","pid":"PID","uptime":"เวลาทำงาน","listeners":"สถิติโหนด","total":"ทั้งหมด","enabled":"เปิด","disabled":"ปิด","system":"ทรัพยากรระบบ","cpu":"CPU","memory":"หน่วยความจำ","disk":"ดิสก์","network":"เครือข่าย","upload":"อัปโหลด","download":"ดาวน์โหลด","traffic":"สถิติทราฟฟิก","uploadRate":"อัตราอัปโหลด","downloadRate":"อัตราดาวน์โหลด","totalUpload":"อัปโหลดรวม","totalDownload":"ดาวน์โหลดรวม","onlineUsers":"ผู้ใช้ออนไลน์","activeConnections":"การเชื่อมต่อที่ใช้งาน","start":"เริ่ม","stop":"หยุด","restart":"รีสตาร์ท","started":"เริ่มคอร์แล้ว","stopped":"หยุดคอร์แล้ว","restarted":"รีสตาร์ทคอร์แล้ว","operationFailed":"การดำเนินการล้มเหลว","unavailable":"ไม่มีสถานะ","users":"ผู้ใช้","totalUsers":"ผู้ใช้ทั้งหมด","enabledUsers":"ผู้ใช้ที่เปิดใช้"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"โหนด","create":"สร้าง","edit":"แก้ไข","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"สถานะ","actions":"การทำงาน","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"โปรโตคอล","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"ความปลอดภัย","sectionTransport":"ทรานสปอร์ต","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"คอร์","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"เริ่ม","stop":"หยุด","restart":"รีสตาร์ท","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"อัปเดต Mihomo","description":"เลือกเวอร์ชันทางการแบบเสถียรหรือ Pre การดาวน์โหลดและตรวจคอนฟิกจะเสร็จก่อนสลับคอร์ หากล้มเหลวจะคืนคอร์ก่อนหน้า อัปเดตด้วยตนเองเท่านั้น","source":"แหล่งคอร์","managed":"เวอร์ชันที่เลือก (ถาวร)","bundled":"มากับแผงควบคุม","previous":"เวอร์ชันก่อนหน้า","noPrevious":"ไม่มีเวอร์ชันก่อนหน้า","unavailable":"อัปเดตคอร์ใช้ไม่ได้","check":"ตรวจหาอัปเดต","select":"เลือกเวอร์ชัน","latest":"ล่าสุด","current":"ปัจจุบัน","install":"ติดตั้งเวอร์ชัน","rollback":"คืนเวอร์ชันก่อนหน้า","releaseNotes":"บันทึกเวอร์ชัน","noVersions":"ไม่มีรีลีสเสถียรที่ตรวจสอบได้สำหรับแพลตฟอร์มนี้","running":"กำลังอัปเดต","failed":"อัปเดตล้มเหลว","succeeded":"อัปเดตสำเร็จ","restored":"คืนคอร์ก่อนหน้าและสถานะการทำงานแล้ว","confirm":"สลับ Mihomo เป็น","interruption":"การเชื่อมต่อพร็อกซีจะขาดชั่วคราว คอนฟิกและบัญชียังอยู่","staysStopped":"หลังติดตั้งคอร์จะยังหยุดอยู่ คอนฟิกและบัญชียังอยู่","steps":{"prepare":"เตรียม","download":"ดาวน์โหลดและตรวจสอบ","validate":"ตรวจคอนฟิก","activate":"สลับและตรวจ"},"stage":{"interrupted":"ถูกขัดจังหวะจากการรีสตาร์ทแผง","preparing":"เตรียมอัปเดต","resolving":"หาเวอร์ชันทางการ","downloading":"กำลังดาวน์โหลดคอร์ คอร์ปัจจุบันยังทำงาน","verifying":"ตรวจ SHA-256","validating":"ตรวจไบนารีและคอนฟิก","switching":"สลับคอร์","starting":"เริ่มคอร์ที่เลือก","checking":"ตรวจโปรเซสและพอร์ต","recovering":"คืนคอร์ก่อนหน้า","complete":"เสร็จสิ้น"},"stable":"เสถียร","pre":"Pre","preNotice":"บิลด์ Pre เป็นรุ่นทดสอบ อาจมีปัญหาความเข้ากันได้ การติดตั้งจะตรวจบิลด์ที่เลือก หากบิลด์ทางการเปลี่ยน ให้ตรวจอัปเดตอีกครั้ง"}},"logs":{"title":"บันทึก","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"เอนจินคอนฟิก","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"ตรวจสอบ","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"ใช้","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"ผู้ใช้","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"สร้าง","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"ทราฟฟิก","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"หมดอายุ","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"กลุ่ม","tags":"แท็ก","trafficResetDays":"รอบรีเซ็ตทราฟฟิก (วัน)","expireRenewDays":"รอบต่ออายุเมื่อหมดอายุ (วัน)","trafficResetDaysHint":"0 = ปิด ทุก N วัน","expireRenewDaysHint":"0 = ปิด หมดอายุแล้ว +N วัน","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"ทราฟฟิก","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"คลัสเตอร์","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"ชื่อ","colProtocol":"โปรโตคอล","colPort":"พอร์ต","operationOk":"OK"},"routing":{"title":"เส้นทาง","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"แผงควบคุม / UI","navAccess":"โปรไฟล์การเข้าถึง","navTelegram":"Telegram","navSecurity":"ความปลอดภัยและสำรอง","navSubscription":"หน้าสมัครสมาชิก","navSSL":"ใบรับรอง / SSL","navNetwork":"พร็อกซีและ Geo","navTraffic":"รีเซ็ตทราฟฟิก","navAbout":"เกี่ยวกับ","panelServer":"เซิร์ฟเวอร์แผง","panelPort":"พอร์ตแผง","panelPortHint":"พอร์ตเว็บ UI ของแผง","panelListen":"ที่อยู่ฟัง","panelListenHint":"เช่น 0.0.0.0 หรือ ::","panelPublicURL":"URL สาธารณะ","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"การตั้งค่าระบบ","subtitle":"การตั้งค่าและบัญชี","language":"ภาษาอินเทอร์เฟซ","theme":"ธีม","light":"สว่าง","dark":"มืด","system":"ระบบ","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"เปลี่ยนรหัสผ่าน","about":"เกี่ยวกับ 3M-UI","version":"เวอร์ชัน","backup":"สำรองและกู้คืน","backupHint":"ดาวน์โหลด zip ที่มี SQLite และ config Mihomo รีสตาร์ทแผงหลังกู้คืน DB","downloadBackup":"ดาวน์โหลดสำรอง","restoreDb":"Restore database","backupDone":"ดาวน์โหลดสำรองแล้ว","restoreDone":"Database restored — restart the panel","apiDocs":"เอกสาร API","apiDocsHint":"ข้อกำหนด OpenAPI 3 สำหรับอัตโนมัติ","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"การแจ้งเตือน Telegram","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"บันทึกการตั้งค่า Telegram แล้ว","telegramTest":"ส่งข้อความทดสอบ","telegramTestOk":"ส่งข้อความทดสอบแล้ว","chatIdsHint":"Chat ID คั่นด้วยจุลภาค","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"โดเมน","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"ตัวช่วยใบรับรอง","email":"อีเมล","webroot":"Webroot path","generateAcme":"สร้างคำสั่ง certbot","acmeGenerated":"สร้างคำสั่งแล้ว","acmeHint":"รันคำสั่งบนเซิร์ฟเวอร์แล้วใส่พาธใน Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"ดาวน์โหลดฐาน MetaCubeX GeoIP/GeoSite ล่าสุดไปยังไดเรกทอรีข้อมูล Mihomo","updateGeofiles":"อัปเดตไฟล์ geo","geofilesDone":"อัปเดตไฟล์ geo แล้ว","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"ลงทะเบียน WARP WireGuard คลิกเดียว (ชิ้นส่วน YAML สำหรับ outbound Mihomo)","warpRegister":"ลงทะเบียน WARP","warpDone":"ลงทะเบียน WARP แล้ว — คัดลอก YAML แล้ว","totp":"การยืนยันตัวตนสองขั้นตอน (TOTP)","totpOn":"เปิดใช้","totpSetup":"สแกนด้วยแอปยืนยันตัวตนหรือใส่คีย์","totpSetupBtn":"ตั้งค่า 2FA","totpEnable":"เปิดใช้","totpDisable":"ปิด 2FA","webPathHint":"เช่น /secret — เผยแพร่แผงใต้พาธ (การสมัครไม่เปลี่ยน)"},"share":{"title":"แชร์","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"ผู้ใช้","tabSub":"สมัครสมาชิก","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"ส่งออกลิงก์สมัครทั้งหมด","exported":"ส่งออกลิงก์สมัครแล้ว"}} as const; diff --git a/frontend/src/i18n/locales/tr.ts b/frontend/src/i18n/locales/tr.ts index f9d9391..847e603 100644 --- a/frontend/src/i18n/locales/tr.ts +++ b/frontend/src/i18n/locales/tr.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"3m-ui paneli"},"nav":{"dashboard":"Özet","listeners":"Düğümler","users":"Kullanıcılar","traffic":"Trafik","cluster":"Küme","routing":"Yönlendirme","core":"Çekirdek","logs":"Günlükler","config":"Yapılandırma","share":"Paylaş","settings":"Ayarlar","logout":"Çıkış"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Kaydet","cancel":"İptal","delete":"Sil","edit":"Düzenle","create":"Oluştur","confirm":"Onayla","close":"Kapat","copy":"Kopyala","download":"Download","refresh":"Yenile","loading":"Yükleniyor…","empty":"Veri yok","search":"Ara","actions":"İşlemler","status":"Durum","enabled":"Açık","disabled":"Kapalı","name":"Ad","type":"Type","port":"Port","protocol":"Protokol","address":"Address","password":"Password","username":"Username","submit":"Gönder","success":"Başarılı","error":"Hata","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"Tamam","yes":"Evet","no":"Hayır","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Giriş","subtitle":"Mihomo paneli","username":"Kullanıcı adı","password":"Parola","button":"Giriş","welcomeBack":"Tekrar hoş geldiniz","failed":"Giriş başarısız", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Panelden önce yeni parola belirleyin.","title":"Parola değiştir","current":"Mevcut","new":"Yeni","confirm":"Onayla","button":"Güncelle","success":"Güncellendi","failed":"Başarısız","mismatch":"Eşleşmiyor"},"dashboard":{"title":"Özet","subtitle":"System & Core Overview","status":"Core Status","running":"Çalışıyor","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"Trafik","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Durdu","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Kullanıcılar","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Düğümler"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Düğümler","create":"Oluştur","edit":"Düzenle","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Durum","actions":"İşlemler","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protokol","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Güvenlik","sectionTransport":"Taşıma","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Çekirdek","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Başlat","stop":"Durdur","restart":"Yeniden başlat","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo güncellemeleri","description":"Resmi kararlı veya Pre sürümü seçin. İndirme ve yapılandırma denetimi çekirdek değiştirilmeden önce biter; hata olursa önceki çekirdek geri yüklenir. Yalnızca elle güncelleme.","source":"Çekirdek kaynağı","managed":"Seçilen sürüm (kalıcı)","bundled":"Panel ile birlikte","previous":"Önceki sürüm","noPrevious":"Önceki sürüm yok","unavailable":"Çekirdek güncellemeleri kullanılamıyor","check":"Güncellemeleri denetle","select":"Sürüm seç","latest":"En son","current":"Geçerli","install":"Sürümü kur","rollback":"Önceki sürümü geri yükle","releaseNotes":"Sürüm notları","noVersions":"Bu platform için doğrulanabilir kararlı sürüm yok.","running":"Güncelleme sürüyor","failed":"Güncelleme başarısız","succeeded":"Güncelleme tamamlandı","restored":"Önceki çekirdek ve çalışma durumu geri yüklendi.","confirm":"Mihomo'yu şuna geçir","interruption":"Geçiş sırasında vekil bağlantıları kısa kesilir. Yapılandırma ve hesaplar korunur.","staysStopped":"Kurulumdan sonra çekirdek durmuş kalır. Yapılandırma ve hesaplar korunur.","steps":{"prepare":"Hazırla","download":"İndir ve doğrula","validate":"Yapılandırmayı denetle","activate":"Geçir ve denetle"},"stage":{"interrupted":"Panel yeniden başlatmasıyla kesildi","preparing":"Güncelleme hazırlanıyor","resolving":"Resmi sürüm çözülüyor","downloading":"Çekirdek indiriliyor; mevcut çalışmaya devam ediyor","verifying":"SHA-256 doğrulanıyor","validating":"İkili ve yapılandırma denetleniyor","switching":"Çekirdek değiştiriliyor","starting":"Seçilen çekirdek başlatılıyor","checking":"Süreç ve portlar denetleniyor","recovering":"Önceki çekirdek geri yükleniyor","complete":"Tamamlandı"},"stable":"Kararlı","pre":"Pre sürüm","preNotice":"Pre derlemeleri denemeliktir ve uyumluluk sorunları olabilir. Kurulum seçilen derlemeyi doğrular; resmi değiştiyse güncellemeleri yeniden denetleyin."}},"logs":{"title":"Günlükler","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Yenile"},"config":{"title":"Yapılandırma","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Doğrula","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Uygula","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Önizleme"},"users":{"title":"Kullanıcılar","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Oluştur","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Trafik","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Bitiş","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Abonelik bağlantısı","group":"Grup","tags":"Etiketler","trafficResetDays":"Trafik sıfırlama döngüsü (gün)","expireRenewDays":"Süre yenileme döngüsü (gün)","trafficResetDaysHint":"0 = kapalı. Her N günde trafiği sıfırla.","expireRenewDaysHint":"0 = kapalı. Süre bitince +N gün.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Trafik","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Toplam","used":"Kullanılan","remaining":"Kalan"},"cluster":{"title":"Küme","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Ad","colProtocol":"Protokol","colPort":"Port","operationOk":"OK"},"routing":{"title":"Yönlendirme","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Ayarlar","subtitle":"Preferences & Account","language":"Dil","theme":"Tema","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"Herkese açık URL","warp":"Cloudflare WARP","warpHint":"Cloudflare'da WARP kaydı ve Mihomo WireGuard YAML'ı.","warpRegister":"WARP kaydet","warpDone":"WARP kaydedildi — YAML kopyalandı", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Paylaş","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Kullanıcı","tabSub":"Abonelik","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Tüm abonelik bağlantılarını dışa aktar","exported":"Abonelik bağlantıları dışa aktarıldı"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"3m-ui paneli"},"nav":{"dashboard":"Özet","listeners":"Düğümler","users":"Kullanıcılar","traffic":"Trafik","cluster":"Küme","routing":"Yönlendirme","core":"Çekirdek","logs":"Günlükler","config":"Yapılandırma","share":"Paylaş","settings":"Ayarlar","logout":"Çıkış"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Kaydet","cancel":"İptal","delete":"Sil","edit":"Düzenle","create":"Oluştur","confirm":"Onayla","close":"Kapat","copy":"Kopyala","download":"Download","refresh":"Yenile","loading":"Yükleniyor…","empty":"Veri yok","search":"Ara","actions":"İşlemler","status":"Durum","enabled":"Açık","disabled":"Kapalı","name":"Ad","type":"Type","port":"Port","protocol":"Protokol","address":"Address","password":"Password","username":"Username","submit":"Gönder","success":"Başarılı","error":"Hata","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"Tamam","yes":"Evet","no":"Hayır","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Giriş","subtitle":"Mihomo paneli","username":"Kullanıcı adı","password":"Parola","button":"Giriş","welcomeBack":"Tekrar hoş geldiniz","failed":"Giriş başarısız","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"Panelden önce yeni parola belirleyin.","title":"Parola değiştir","current":"Mevcut","new":"Yeni","confirm":"Onayla","button":"Güncelle","success":"Güncellendi","failed":"Başarısız","mismatch":"Eşleşmiyor"},"dashboard":{"title":"Panel","subtitle":"Sistem özeti ve çekirdek durumu","status":"Çekirdek durumu","running":"Çalışıyor","stoppedStatus":"Durduruldu","version":"Sürüm","pid":"PID","uptime":"Çalışma süresi","listeners":"Düğüm istatistikleri","total":"Toplam","enabled":"Etkin","disabled":"Devre dışı","system":"Sistem kaynakları","cpu":"CPU","memory":"Bellek","disk":"Disk","network":"Ağ","upload":"Yükleme","download":"İndirme","traffic":"Trafik istatistikleri","uploadRate":"Yükleme hızı","downloadRate":"İndirme hızı","totalUpload":"Toplam yükleme","totalDownload":"Toplam indirme","onlineUsers":"Çevrimiçi kullanıcılar","activeConnections":"Aktif bağlantılar","start":"Başlat","stop":"Durdur","restart":"Yeniden başlat","started":"Çekirdek başlatıldı","stopped":"Çekirdek durduruldu","restarted":"Çekirdek yeniden başlatıldı","operationFailed":"İşlem başarısız","unavailable":"Durum yok","users":"Kullanıcılar","totalUsers":"Toplam kullanıcı","enabledUsers":"Aktif kullanıcılar"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Düğümler","create":"Oluştur","edit":"Düzenle","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Durum","actions":"İşlemler","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Protokol","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Güvenlik","sectionTransport":"Taşıma","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Çekirdek","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Başlat","stop":"Durdur","restart":"Yeniden başlat","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Mihomo güncellemeleri","description":"Resmi kararlı veya Pre sürümü seçin. İndirme ve yapılandırma denetimi çekirdek değiştirilmeden önce biter; hata olursa önceki çekirdek geri yüklenir. Yalnızca elle güncelleme.","source":"Çekirdek kaynağı","managed":"Seçilen sürüm (kalıcı)","bundled":"Panel ile birlikte","previous":"Önceki sürüm","noPrevious":"Önceki sürüm yok","unavailable":"Çekirdek güncellemeleri kullanılamıyor","check":"Güncellemeleri denetle","select":"Sürüm seç","latest":"En son","current":"Geçerli","install":"Sürümü kur","rollback":"Önceki sürümü geri yükle","releaseNotes":"Sürüm notları","noVersions":"Bu platform için doğrulanabilir kararlı sürüm yok.","running":"Güncelleme sürüyor","failed":"Güncelleme başarısız","succeeded":"Güncelleme tamamlandı","restored":"Önceki çekirdek ve çalışma durumu geri yüklendi.","confirm":"Mihomo'yu şuna geçir","interruption":"Geçiş sırasında vekil bağlantıları kısa kesilir. Yapılandırma ve hesaplar korunur.","staysStopped":"Kurulumdan sonra çekirdek durmuş kalır. Yapılandırma ve hesaplar korunur.","steps":{"prepare":"Hazırla","download":"İndir ve doğrula","validate":"Yapılandırmayı denetle","activate":"Geçir ve denetle"},"stage":{"interrupted":"Panel yeniden başlatmasıyla kesildi","preparing":"Güncelleme hazırlanıyor","resolving":"Resmi sürüm çözülüyor","downloading":"Çekirdek indiriliyor; mevcut çalışmaya devam ediyor","verifying":"SHA-256 doğrulanıyor","validating":"İkili ve yapılandırma denetleniyor","switching":"Çekirdek değiştiriliyor","starting":"Seçilen çekirdek başlatılıyor","checking":"Süreç ve portlar denetleniyor","recovering":"Önceki çekirdek geri yükleniyor","complete":"Tamamlandı"},"stable":"Kararlı","pre":"Pre sürüm","preNotice":"Pre derlemeleri denemeliktir ve uyumluluk sorunları olabilir. Kurulum seçilen derlemeyi doğrular; resmi değiştiyse güncellemeleri yeniden denetleyin."}},"logs":{"title":"Günlükler","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Yapılandırma","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Doğrula","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Uygula","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Kullanıcılar","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Oluştur","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Trafik","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Bitiş","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Grup","tags":"Etiketler","trafficResetDays":"Trafik sıfırlama döngüsü (gün)","expireRenewDays":"Süre yenileme döngüsü (gün)","trafficResetDaysHint":"0 = kapalı. Her N günde trafiği sıfırla.","expireRenewDaysHint":"0 = kapalı. Süre bitince +N gün.","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Trafik","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Küme","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Ad","colProtocol":"Protokol","colPort":"Port","operationOk":"OK"},"routing":{"title":"Yönlendirme","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Erişim profili","navTelegram":"Telegram","navSecurity":"Güvenlik ve yedek","navSubscription":"Abonelik sayfası","navSSL":"Sertifikalar / SSL","navNetwork":"Proxy ve Geo","navTraffic":"Trafik sıfırlama","navAbout":"Hakkında","panelServer":"Panel sunucusu","panelPort":"Panel portu","panelPortHint":"Panel web arayüzü portu","panelListen":"Dinleme adresi","panelListenHint":"örn. 0.0.0.0 veya ::","panelPublicURL":"Genel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Sistem ayarları","subtitle":"Tercihler ve hesap","language":"Arayüz dili","theme":"Tema","light":"Açık","dark":"Koyu","system":"Sistem","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Şifre değiştir","about":"3M-UI hakkında","version":"Sürüm","backup":"Yedekleme ve geri yükleme","backupHint":"SQLite ve Mihomo yapılandırması içeren zip indirin. DB geri yükledikten sonra paneli yeniden başlatın.","downloadBackup":"Yedeği indir","restoreDb":"Restore database","backupDone":"Yedek indirildi","restoreDone":"Database restored — restart the panel","apiDocs":"API belgeleri","apiDocsHint":"Otomasyon için OpenAPI 3 spesifikasyonu.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram uyarıları","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Telegram ayarları kaydedildi","telegramTest":"Test mesajı gönder","telegramTestOk":"Test mesajı gönderildi","chatIdsHint":"Virgülle ayrılmış Chat ID","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Alan adı","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Sertifika sihirbazı","email":"E-posta","webroot":"Webroot path","generateAcme":"certbot komutu oluştur","acmeGenerated":"Komut oluşturuldu","acmeHint":"Komutu sunucuda çalıştırın, yolları Listener TLS'e girin","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"En son MetaCubeX GeoIP/GeoSite veritabanlarını Mihomo veri dizinine indirin.","updateGeofiles":"Geo dosyalarını güncelle","geofilesDone":"Geo dosyaları güncellendi","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Tek tıkla WARP WireGuard kaydı (Mihomo outbound için YAML parçası)","warpRegister":"WARP kaydet","warpDone":"WARP kaydedildi — YAML kopyalandı","totp":"İki adımlı doğrulama (TOTP)","totpOn":"Etkin","totpSetup":"Authenticator ile tarayın veya anahtarı girin","totpSetupBtn":"2FA kur","totpEnable":"Etkinleştir","totpDisable":"2FA kapat","webPathHint":"örn. /secret — paneli yol altında yayınla (abonelikler etkilenmez)"},"share":{"title":"Paylaş","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Kullanıcı","tabSub":"Abonelik","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Tüm abonelik bağlantılarını dışa aktar","exported":"Abonelik bağlantıları dışa aktarıldı"}} as const; diff --git a/frontend/src/i18n/locales/uk.ts b/frontend/src/i18n/locales/uk.ts index f8d33b3..53c7c3b 100644 --- a/frontend/src/i18n/locales/uk.ts +++ b/frontend/src/i18n/locales/uk.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Панель 3m-ui"},"nav":{"dashboard":"Огляд","listeners":"Вузли","users":"Користувачі","traffic":"Трафік","cluster":"Кластер","routing":"Маршрути","core":"Ядро","logs":"Журнали","config":"Конфіг","share":"Поділитися","settings":"Налаштування","logout":"Вийти"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Зберегти","cancel":"Скасувати","delete":"Видалити","edit":"Редагувати","create":"Створити","confirm":"Підтвердити","close":"Закрити","copy":"Копіювати","download":"Download","refresh":"Оновити","loading":"Завантаження…","empty":"Немає даних","search":"Пошук","actions":"Дії","status":"Статус","enabled":"Увімк","disabled":"Вимк","name":"Ім'я","type":"Type","port":"Порт","protocol":"Протокол","address":"Address","password":"Password","username":"Username","submit":"Надіслати","success":"Успіх","error":"Помилка","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Так","no":"Ні","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Вхід","subtitle":"Панель Mihomo","username":"Ім'я користувача","password":"Пароль","button":"Увійти","welcomeBack":"З поверненням","failed":"Помилка входу", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Встановіть новий пароль перед використанням панелі.","title":"Зміна пароля","current":"Поточний","new":"Новий","confirm":"Підтвердження","button":"Оновити","success":"Оновлено","failed":"Помилка","mismatch":"Не збігається"},"dashboard":{"title":"Огляд","subtitle":"System & Core Overview","status":"Core Status","running":"Працює","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"Трафік","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Зупинено","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Користувачі","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Вузли"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Вузли","create":"Створити","edit":"Редагувати","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Статус","actions":"Дії","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Протокол","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Безпека","sectionTransport":"Транспорт","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Ядро","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Старт","stop":"Стоп","restart":"Перезапуск","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Оновлення Mihomo","description":"Оберіть офіційний стабільний або Pre-реліз. Завантаження й перевірка конфігурації завершуються до перемикання ядра; при помилці відновлюється попереднє. Лише ручні оновлення.","source":"Джерело ядра","managed":"Вибрана версія (постійна)","bundled":"Поставляється з панеллю","previous":"Попередня версія","noPrevious":"Немає попередньої версії","unavailable":"Оновлення ядра недоступні","check":"Перевірити оновлення","select":"Вибрати версію","latest":"Остання","current":"Поточна","install":"Встановити версію","rollback":"Відновити попередню","releaseNotes":"Примітки до випуску","noVersions":"Немає перевірених стабільних релізів для цієї платформи.","running":"Триває оновлення","failed":"Помилка оновлення","succeeded":"Оновлення завершено","restored":"Попереднє ядро та стан роботи відновлено.","confirm":"Перемкнути Mihomo на","interruption":"Проксі-з’єднання коротко перервуться. Конфігурацію й облікові записи збережено.","staysStopped":"Після встановлення ядро лишиться зупиненим. Конфігурацію й облікові записи збережено.","steps":{"prepare":"Підготовка","download":"Завантаження й перевірка","validate":"Перевірка конфігурації","activate":"Перемикання й перевірка"},"stage":{"interrupted":"Перервано перезапуском панелі","preparing":"Підготовка оновлення","resolving":"Визначення офіційного релізу","downloading":"Завантаження ядра; поточне працює","verifying":"Перевірка SHA-256","validating":"Перевірка бінарника й конфігурації","switching":"Перемикання ядра","starting":"Запуск вибраного ядра","checking":"Перевірка процесу й портів","recovering":"Відновлення попереднього ядра","complete":"Завершено"},"stable":"Стабільний","pre":"Pre-реліз","preNotice":"Pre-збірки тестові й можуть мати проблеми сумісності. Встановлення перевіряє збірку; якщо офіційна змінилась, перевірте оновлення знову."}},"logs":{"title":"Журнали","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Оновити"},"config":{"title":"Конфіг","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Перевірити","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Застосувати","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Перегляд"},"users":{"title":"Користувачі","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Створити","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Трафік","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Термін","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Посилання підписки","group":"Група","tags":"Мітки","trafficResetDays":"Цикл скидання трафіку (дні)","expireRenewDays":"Цикл подовження після закінчення (дні)","trafficResetDaysHint":"0 = вимк. Скидає трафік кожні N днів.","expireRenewDaysHint":"0 = вимк. Після закінчення +N днів.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Трафік","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Усього","used":"Використано","remaining":"Залишок"},"cluster":{"title":"Кластер","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Ім'я","colProtocol":"Протокол","colPort":"Порт","operationOk":"OK"},"routing":{"title":"Маршрути","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Налаштування","subtitle":"Preferences & Account","language":"Мова","theme":"Тема","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"Публічний URL","warp":"Cloudflare WARP","warpHint":"Реєстрація WARP у Cloudflare і YAML WireGuard для Mihomo.","warpRegister":"Зареєструвати WARP","warpDone":"WARP зареєстровано — YAML скопійовано", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Поділитися","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Користувач","tabSub":"Підписка","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Експорт усіх посилань підписки","exported":"Посилання підписки експортовано"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Панель 3m-ui"},"nav":{"dashboard":"Огляд","listeners":"Вузли","users":"Користувачі","traffic":"Трафік","cluster":"Кластер","routing":"Маршрути","core":"Ядро","logs":"Журнали","config":"Конфіг","share":"Поділитися","settings":"Налаштування","logout":"Вийти"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Зберегти","cancel":"Скасувати","delete":"Видалити","edit":"Редагувати","create":"Створити","confirm":"Підтвердити","close":"Закрити","copy":"Копіювати","download":"Download","refresh":"Оновити","loading":"Завантаження…","empty":"Немає даних","search":"Пошук","actions":"Дії","status":"Статус","enabled":"Увімк","disabled":"Вимк","name":"Ім'я","type":"Type","port":"Порт","protocol":"Протокол","address":"Address","password":"Password","username":"Username","submit":"Надіслати","success":"Успіх","error":"Помилка","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Так","no":"Ні","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Вхід","subtitle":"Панель Mihomo","username":"Ім'я користувача","password":"Пароль","button":"Увійти","welcomeBack":"З поверненням","failed":"Помилка входу","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"Встановіть новий пароль перед використанням панелі.","title":"Зміна пароля","current":"Поточний","new":"Новий","confirm":"Підтвердження","button":"Оновити","success":"Оновлено","failed":"Помилка","mismatch":"Не збігається"},"dashboard":{"title":"Панель","subtitle":"Огляд системи та стан ядра","status":"Стан ядра","running":"Працює","stoppedStatus":"Зупинено","version":"Версія","pid":"PID","uptime":"Час роботи","listeners":"Статистика вузлів","total":"Всього","enabled":"Увімк.","disabled":"Вимк.","system":"Ресурси системи","cpu":"CPU","memory":"Пам'ять","disk":"Диск","network":"Мережа","upload":"Відправка","download":"Завантаження","traffic":"Статистика трафіку","uploadRate":"Швидкість відправки","downloadRate":"Швидкість завантаження","totalUpload":"Всього відправлено","totalDownload":"Всього завантажено","onlineUsers":"Онлайн","activeConnections":"Активні з'єднання","start":"Запустити","stop":"Зупинити","restart":"Перезапустити","started":"Ядро запущено","stopped":"Ядро зупинено","restarted":"Ядро перезапущено","operationFailed":"Помилка операції","unavailable":"Статус недоступний","users":"Користувачі","totalUsers":"Всього користувачів","enabledUsers":"Активні користувачі"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Вузли","create":"Створити","edit":"Редагувати","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Статус","actions":"Дії","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Протокол","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Безпека","sectionTransport":"Транспорт","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Ядро","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Старт","stop":"Стоп","restart":"Перезапуск","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Оновлення Mihomo","description":"Оберіть офіційний стабільний або Pre-реліз. Завантаження й перевірка конфігурації завершуються до перемикання ядра; при помилці відновлюється попереднє. Лише ручні оновлення.","source":"Джерело ядра","managed":"Вибрана версія (постійна)","bundled":"Поставляється з панеллю","previous":"Попередня версія","noPrevious":"Немає попередньої версії","unavailable":"Оновлення ядра недоступні","check":"Перевірити оновлення","select":"Вибрати версію","latest":"Остання","current":"Поточна","install":"Встановити версію","rollback":"Відновити попередню","releaseNotes":"Примітки до випуску","noVersions":"Немає перевірених стабільних релізів для цієї платформи.","running":"Триває оновлення","failed":"Помилка оновлення","succeeded":"Оновлення завершено","restored":"Попереднє ядро та стан роботи відновлено.","confirm":"Перемкнути Mihomo на","interruption":"Проксі-з’єднання коротко перервуться. Конфігурацію й облікові записи збережено.","staysStopped":"Після встановлення ядро лишиться зупиненим. Конфігурацію й облікові записи збережено.","steps":{"prepare":"Підготовка","download":"Завантаження й перевірка","validate":"Перевірка конфігурації","activate":"Перемикання й перевірка"},"stage":{"interrupted":"Перервано перезапуском панелі","preparing":"Підготовка оновлення","resolving":"Визначення офіційного релізу","downloading":"Завантаження ядра; поточне працює","verifying":"Перевірка SHA-256","validating":"Перевірка бінарника й конфігурації","switching":"Перемикання ядра","starting":"Запуск вибраного ядра","checking":"Перевірка процесу й портів","recovering":"Відновлення попереднього ядра","complete":"Завершено"},"stable":"Стабільний","pre":"Pre-реліз","preNotice":"Pre-збірки тестові й можуть мати проблеми сумісності. Встановлення перевіряє збірку; якщо офіційна змінилась, перевірте оновлення знову."}},"logs":{"title":"Журнали","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Конфіг","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Перевірити","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Застосувати","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Користувачі","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Створити","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Трафік","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Термін","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Група","tags":"Мітки","trafficResetDays":"Цикл скидання трафіку (дні)","expireRenewDays":"Цикл подовження після закінчення (дні)","trafficResetDaysHint":"0 = вимк. Скидає трафік кожні N днів.","expireRenewDaysHint":"0 = вимк. Після закінчення +N днів.","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Трафік","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Кластер","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Ім'я","colProtocol":"Протокол","colPort":"Порт","operationOk":"OK"},"routing":{"title":"Маршрути","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Панель / UI","navAccess":"Профіль доступу","navTelegram":"Telegram","navSecurity":"Безпека та резерв","navSubscription":"Сторінка підписки","navSSL":"Сертифікати / SSL","navNetwork":"Проксі та Geo","navTraffic":"Скидання трафіку","navAbout":"Про програму","panelServer":"Сервер панелі","panelPort":"Порт панелі","panelPortHint":"Порт веб-інтерфейсу панелі","panelListen":"Адреса прослуховування","panelListenHint":"напр. 0.0.0.0 або ::","panelPublicURL":"Публічний URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Налаштування системи","subtitle":"Параметри та обліковий запис","language":"Мова інтерфейсу","theme":"Тема","light":"Світла","dark":"Темна","system":"Система","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Змінити пароль","about":"Про 3M-UI","version":"Версія","backup":"Резервне копіювання","backupHint":"Завантажити zip з SQLite і конфігом Mihomo. Після відновлення БД перезапустіть панель.","downloadBackup":"Завантажити резервну копію","restoreDb":"Restore database","backupDone":"Резервну копію завантажено","restoreDone":"Database restored — restart the panel","apiDocs":"Документація API","apiDocsHint":"Специфікація OpenAPI 3 для автоматизації.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Сповіщення Telegram","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Налаштування Telegram збережено","telegramTest":"Надіслати тестове повідомлення","telegramTestOk":"Тестове повідомлення надіслано","chatIdsHint":"Chat ID через кому","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Домен","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Майстер сертифікатів","email":"Email","webroot":"Webroot path","generateAcme":"Згенерувати команду certbot","acmeGenerated":"Команду створено","acmeHint":"Виконайте команду на сервері та вкажіть шляхи в Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Завантажити останні бази MetaCubeX GeoIP/GeoSite у каталог даних Mihomo.","updateGeofiles":"Оновити geo-файли","geofilesDone":"Geo-файли оновлено","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Реєстрація WARP WireGuard в один клік (фрагмент YAML для outbound Mihomo)","warpRegister":"Зареєструвати WARP","warpDone":"WARP зареєстровано — YAML скопійовано","totp":"Двофакторна автентифікація (TOTP)","totpOn":"Увімкнено","totpSetup":"Відскануйте в додатку або введіть ключ","totpSetupBtn":"Налаштувати 2FA","totpEnable":"Увімкнути","totpDisable":"Вимкнути 2FA","webPathHint":"напр. /secret — публікувати панель за шляхом (підписки без змін)"},"share":{"title":"Поділитися","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Користувач","tabSub":"Підписка","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Експорт усіх посилань підписки","exported":"Посилання підписки експортовано"}} as const; diff --git a/frontend/src/i18n/locales/vi.ts b/frontend/src/i18n/locales/vi.ts index 0a61314..e561a62 100644 --- a/frontend/src/i18n/locales/vi.ts +++ b/frontend/src/i18n/locales/vi.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Bảng điều khiển 3m-ui"},"nav":{"dashboard":"Tổng quan","listeners":"Node","users":"Người dùng","traffic":"Lưu lượng","cluster":"Cụm","routing":"Định tuyến","core":"Core","logs":"Nhật ký","config":"Cấu hình","share":"Chia sẻ","settings":"Cài đặt","logout":"Đăng xuất"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Lưu","cancel":"Hủy","delete":"Xóa","edit":"Sửa","create":"Tạo","confirm":"Xác nhận","close":"Đóng","copy":"Sao chép","download":"Download","refresh":"Làm mới","loading":"Đang tải…","empty":"Không có dữ liệu","search":"Tìm","actions":"Thao tác","status":"Trạng thái","enabled":"Bật","disabled":"Tắt","name":"Tên","type":"Type","port":"Cổng","protocol":"Giao thức","address":"Address","password":"Password","username":"Username","submit":"Gửi","success":"Thành công","error":"Lỗi","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Có","no":"Không","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Đăng nhập","subtitle":"Panel Mihomo","username":"Tên đăng nhập","password":"Mật khẩu","button":"Đăng nhập","welcomeBack":"Chào mừng","failed":"Đăng nhập thất bại", - "totpRequired": "Enter authenticator code", - "totpVerify": "Verify"},"password":{"requiredHint":"Hãy đặt mật khẩu mới trước khi dùng panel.","title":"Đổi mật khẩu","current":"Hiện tại","new":"Mới","confirm":"Xác nhận","button":"Cập nhật","success":"Đã cập nhật","failed":"Thất bại","mismatch":"Không khớp"},"dashboard":{"title":"Tổng quan","subtitle":"System & Core Overview","status":"Core Status","running":"Đang chạy","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"Memory","disk":"Disk","network":"Network","upload":"Upload","download":"Download","traffic":"Lưu lượng","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"Đã dừng","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"Người dùng","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"Node"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Node","create":"Tạo","edit":"Sửa","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Trạng thái","actions":"Thao tác","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Giao thức","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Bảo mật","sectionTransport":"Giao vận","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Core","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Bắt đầu","stop":"Dừng","restart":"Khởi động lại","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Cập nhật Mihomo","description":"Chọn bản phát hành chính thức ổn định hoặc Pre. Tải xuống và kiểm tra cấu hình xong trước khi chuyển lõi; nếu lỗi sẽ khôi phục lõi trước. Chỉ cập nhật thủ công.","source":"Nguồn lõi","managed":"Phiên bản đã chọn (bền vững)","bundled":"Đi kèm panel","previous":"Phiên bản trước","noPrevious":"Không có phiên bản trước","unavailable":"Không thể cập nhật lõi","check":"Kiểm tra cập nhật","select":"Chọn phiên bản","latest":"Mới nhất","current":"Hiện tại","install":"Cài phiên bản","rollback":"Khôi phục phiên bản trước","releaseNotes":"Ghi chú phát hành","noVersions":"Không có bản ổn định xác minh được cho nền tảng này.","running":"Đang cập nhật","failed":"Cập nhật thất bại","succeeded":"Cập nhật xong","restored":"Đã khôi phục lõi trước và trạng thái chạy.","confirm":"Chuyển Mihomo sang","interruption":"Kết nối proxy sẽ gián đoạn ngắn. Cấu hình và tài khoản được giữ.","staysStopped":"Sau cài đặt lõi vẫn dừng. Cấu hình và tài khoản được giữ.","steps":{"prepare":"Chuẩn bị","download":"Tải và xác minh","validate":"Kiểm tra cấu hình","activate":"Chuyển và kiểm tra"},"stage":{"interrupted":"Bị gián đoạn do khởi động lại panel","preparing":"Chuẩn bị cập nhật","resolving":"Xác định bản chính thức","downloading":"Đang tải lõi; lõi hiện tại vẫn chạy","verifying":"Xác minh SHA-256","validating":"Kiểm tra nhị phân và cấu hình","switching":"Chuyển lõi","starting":"Khởi động lõi đã chọn","checking":"Kiểm tra tiến trình và cổng","recovering":"Khôi phục lõi trước","complete":"Hoàn tất"},"stable":"Ổn định","pre":"Bản Pre","preNotice":"Bản Pre mang tính thử nghiệm, có thể lỗi tương thích. Cài đặt xác minh bản chọn; nếu bản chính thức đổi, hãy kiểm tra cập nhật lại."}},"logs":{"title":"Nhật ký","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"Làm mới"},"config":{"title":"Cấu hình","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Kiểm tra","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Áp dụng","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"Xem trước"},"users":{"title":"Người dùng","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Tạo","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Lưu lượng","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Hết hạn","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","subLink":"Link subscription","group":"Nhóm","tags":"Thẻ","trafficResetDays":"Chu kỳ đặt lại lưu lượng (ngày)","expireRenewDays":"Chu kỳ gia hạn hết hạn (ngày)","trafficResetDaysHint":"0 = tắt. Đặt lại lưu lượng mỗi N ngày.","expireRenewDaysHint":"0 = tắt. Hết hạn thì gia hạn N ngày.", - "devices": "Devices", - "clearDevices": "Clear all", - "deviceOs": "OS", - "deviceModel": "Model", - "lastSeen": "Last seen", - "startOnFirstUse": "Start on first use", - "expireDaysAfterFirst": "Days after first use", - "externalLinks": "External subscription URLs", - "externalLinksHint": "One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Lưu lượng","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"Tổng","used":"Đã dùng","remaining":"Còn lại"},"cluster":{"title":"Cụm","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Tên","colProtocol":"Giao thức","colPort":"Cổng","operationOk":"OK"},"routing":{"title":"Định tuyến","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Cài đặt","subtitle":"Preferences & Account","language":"Ngôn ngữ","theme":"Giao diện","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat IDs","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","publicUrl":"URL công khai","warp":"Cloudflare WARP","warpHint":"Đăng ký WARP với Cloudflare và tạo YAML WireGuard cho Mihomo.","warpRegister":"Đăng ký WARP","warpDone":"Đã đăng ký WARP — đã sao chép YAML", - "totp": "Two-factor (TOTP)", - "totpOn": "Enabled", - "totpSetup": "Scan with authenticator app", - "totpSetupBtn": "Setup 2FA", - "totpEnable": "Enable", - "totpDisable": "Disable 2FA", - "webPathHint": "Panel path prefix (web_path) is set in /etc/3m-ui/config.yaml then restart. Example: web_path: \"/secret\" → open http://IP:8080/secret/"},"share":{"title":"Chia sẻ","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Người dùng","tabSub":"Subscription","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Xuất tất cả liên kết đăng ký","exported":"Đã xuất liên kết đăng ký"}} as const; +export default {"realityScan":{"required":"Choose a REALITY target or enter one manually.","placeholder":"Target hostname:443","hint":"Automatically checked from this node. You can enter a target manually.","scan":"Check targets","change":"Try another","scanning":"Checking available targets…","passed":"Handshake checks passed","noTargets":"No suitable target found. Retry or enter a target manually.","failed":"Target check failed. Retry or enter a target manually.","scope":"Only reviewed candidates are checked for handshake compatibility, redirects and known CDN signals; this does not guarantee protection from fallback traffic abuse."},"app":{"name":"3M-UI","title":"Bảng điều khiển 3m-ui"},"nav":{"dashboard":"Tổng quan","listeners":"Node","users":"Người dùng","traffic":"Lưu lượng","cluster":"Cụm","routing":"Định tuyến","core":"Core","logs":"Nhật ký","config":"Cấu hình","share":"Chia sẻ","settings":"Cài đặt","logout":"Đăng xuất"},"common":{"advanced":"Advanced","prev":"Previous","next":"Next","saved":"Saved","copied":"Copied","copyFailed":"Copy failed — select and copy manually","save":"Lưu","cancel":"Hủy","delete":"Xóa","edit":"Sửa","create":"Tạo","confirm":"Xác nhận","close":"Đóng","copy":"Sao chép","download":"Download","refresh":"Làm mới","loading":"Đang tải…","empty":"Không có dữ liệu","search":"Tìm","actions":"Thao tác","status":"Trạng thái","enabled":"Bật","disabled":"Tắt","name":"Tên","type":"Type","port":"Cổng","protocol":"Giao thức","address":"Address","password":"Password","username":"Username","submit":"Gửi","success":"Thành công","error":"Lỗi","confirmDelete":"Are you sure to delete?","back":"Back","generate":"Generate","validate":"Validate","generated":"Generated","ok":"OK","yes":"Có","no":"Không","more":"More","reset":"Reset","id":"ID","network":"Network","bound":"Bound","missing":"Missing"},"login":{"title":"Đăng nhập","subtitle":"Panel Mihomo","username":"Tên đăng nhập","password":"Mật khẩu","button":"Đăng nhập","welcomeBack":"Chào mừng","failed":"Đăng nhập thất bại","totpRequired":"Enter authenticator code","totpVerify":"Verify"},"password":{"requiredHint":"Hãy đặt mật khẩu mới trước khi dùng panel.","title":"Đổi mật khẩu","current":"Hiện tại","new":"Mới","confirm":"Xác nhận","button":"Cập nhật","success":"Đã cập nhật","failed":"Thất bại","mismatch":"Không khớp"},"dashboard":{"title":"Bảng điều khiển","subtitle":"Tổng quan hệ thống và trạng thái lõi","status":"Trạng thái lõi","running":"Đang chạy","stoppedStatus":"Đã dừng","version":"Phiên bản","pid":"PID","uptime":"Thời gian hoạt động","listeners":"Thống kê nút","total":"Tổng","enabled":"Bật","disabled":"Tắt","system":"Tài nguyên hệ thống","cpu":"CPU","memory":"Bộ nhớ","disk":"Ổ đĩa","network":"Mạng","upload":"Tải lên","download":"Tải xuống","traffic":"Thống kê lưu lượng","uploadRate":"Tốc độ tải lên","downloadRate":"Tốc độ tải xuống","totalUpload":"Tổng tải lên","totalDownload":"Tổng tải xuống","onlineUsers":"Người dùng online","activeConnections":"Kết nối đang hoạt động","start":"Bắt đầu","stop":"Dừng","restart":"Khởi động lại","started":"Đã khởi động lõi","stopped":"Đã dừng lõi","restarted":"Đã khởi động lại lõi","operationFailed":"Thao tác thất bại","unavailable":"Không có trạng thái","users":"Người dùng","totalUsers":"Tổng người dùng","enabledUsers":"Người dùng đã bật"},"listeners":{"subtitle":"Create and manage Mihomo inbound listeners.","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"Node","create":"Tạo","edit":"Sửa","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"Trạng thái","actions":"Thao tác","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"Random port","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"Giao thức","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"Bảo mật","sectionTransport":"Giao vận","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"Clone","saveTemplate":"Save as template","versions":"Versions","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"Listener Templates","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"Enable selected","disableSelected":"Disable selected","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:Port","socketStatus":"Socket status"},"core":{"title":"Core","subtitle":"Mihomo core status and control.","status":"Status","running":"Running","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"Uptime","start":"Bắt đầu","stop":"Dừng","restart":"Khởi động lại","started":"Started","stopped":"Stopped","restarted":"Restarted","operationFailed":"Operation failed","unavailable":"Core unavailable","updates":{"title":"Cập nhật Mihomo","description":"Chọn bản phát hành chính thức ổn định hoặc Pre. Tải xuống và kiểm tra cấu hình xong trước khi chuyển lõi; nếu lỗi sẽ khôi phục lõi trước. Chỉ cập nhật thủ công.","source":"Nguồn lõi","managed":"Phiên bản đã chọn (bền vững)","bundled":"Đi kèm panel","previous":"Phiên bản trước","noPrevious":"Không có phiên bản trước","unavailable":"Không thể cập nhật lõi","check":"Kiểm tra cập nhật","select":"Chọn phiên bản","latest":"Mới nhất","current":"Hiện tại","install":"Cài phiên bản","rollback":"Khôi phục phiên bản trước","releaseNotes":"Ghi chú phát hành","noVersions":"Không có bản ổn định xác minh được cho nền tảng này.","running":"Đang cập nhật","failed":"Cập nhật thất bại","succeeded":"Cập nhật xong","restored":"Đã khôi phục lõi trước và trạng thái chạy.","confirm":"Chuyển Mihomo sang","interruption":"Kết nối proxy sẽ gián đoạn ngắn. Cấu hình và tài khoản được giữ.","staysStopped":"Sau cài đặt lõi vẫn dừng. Cấu hình và tài khoản được giữ.","steps":{"prepare":"Chuẩn bị","download":"Tải và xác minh","validate":"Kiểm tra cấu hình","activate":"Chuyển và kiểm tra"},"stage":{"interrupted":"Bị gián đoạn do khởi động lại panel","preparing":"Chuẩn bị cập nhật","resolving":"Xác định bản chính thức","downloading":"Đang tải lõi; lõi hiện tại vẫn chạy","verifying":"Xác minh SHA-256","validating":"Kiểm tra nhị phân và cấu hình","switching":"Chuyển lõi","starting":"Khởi động lõi đã chọn","checking":"Kiểm tra tiến trình và cổng","recovering":"Khôi phục lõi trước","complete":"Hoàn tất"},"stable":"Ổn định","pre":"Bản Pre","preNotice":"Bản Pre mang tính thử nghiệm, có thể lỗi tương thích. Cài đặt xác minh bản chọn; nếu bản chính thức đổi, hãy kiểm tra cập nhật lại."}},"logs":{"title":"Nhật ký","subtitle":"Recent panel and core logs.","empty":"No logs","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear"},"config":{"title":"Cấu hình","subtitle":"Visual Mihomo configuration","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"Kiểm tra","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"Áp dụng","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config"},"users":{"title":"Người dùng","subtitle":"Manage accounts, traffic limits, node bindings and subscriptions.","batch":"Batch","create":"Tạo","edit":"Edit User","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"Bind Nodes","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"Lưu lượng","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"Hết hạn","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo / Clash YAML","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","group":"Nhóm","tags":"Thẻ","trafficResetDays":"Chu kỳ đặt lại lưu lượng (ngày)","expireRenewDays":"Chu kỳ gia hạn hết hạn (ngày)","trafficResetDaysHint":"0 = tắt. Đặt lại lưu lượng mỗi N ngày.","expireRenewDaysHint":"0 = tắt. Hết hạn thì gia hạn N ngày.","devices":"Devices","clearDevices":"Clear all","deviceOs":"OS","deviceModel":"Model","lastSeen":"Last seen","startOnFirstUse":"Start on first use","expireDaysAfterFirst":"Days after first use","externalLinks":"External subscription URLs","externalLinksHint":"One Clash/Mihomo YAML URL per line; merged into this user's subscription"},"traffic":{"title":"Lưu lượng","subtitle":"Live connections and traffic usage.","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule"},"cluster":{"title":"Cụm","subtitle":"Register remote 3m-ui panels and health-check them (full remote control comes later)","create":"Add node","edit":"Edit node","name":"Name","baseUrl":"Panel URL","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"Health check","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"Restart core","restarted":"Remote core restarted","startCore":"Start core","stopCore":"Stop core","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"Remote nodes","syncNodes":"Sync nodes","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"Tên","colProtocol":"Giao thức","colPort":"Cổng","operationOk":"OK"},"routing":{"title":"Định tuyến","subtitle":"Manage Mihomo proxy-groups and rules","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted"},"settings":{"navPanel":"Panel / UI","navAccess":"Hồ sơ truy cập","navTelegram":"Telegram","navSecurity":"Bảo mật và sao lưu","navSubscription":"Trang đăng ký","navSSL":"Chứng chỉ / SSL","navNetwork":"Proxy và Geo","navTraffic":"Reset lưu lượng","navAbout":"Giới thiệu","panelServer":"Máy chủ panel","panelPort":"Cổng panel","panelPortHint":"Cổng giao diện web panel","panelListen":"Địa chỉ lắng nghe","panelListenHint":"vd: 0.0.0.0 hoặc ::","panelPublicURL":"URL công khai","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"Cài đặt hệ thống","subtitle":"Tùy chọn và tài khoản","language":"Ngôn ngữ giao diện","theme":"Giao diện","light":"Sáng","dark":"Tối","system":"Hệ thống","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Đổi mật khẩu","about":"Về 3M-UI","version":"Phiên bản","backup":"Sao lưu và khôi phục","backupHint":"Tải zip SQLite và cấu hình Mihomo. Khởi động lại panel sau khi khôi phục DB.","downloadBackup":"Tải sao lưu","restoreDb":"Restore database","backupDone":"Đã tải sao lưu","restoreDone":"Database restored — restart the panel","apiDocs":"Tài liệu API","apiDocsHint":"Đặc tả OpenAPI 3 cho tự động hóa.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Cảnh báo Telegram","botToken":"Bot Token","chatIds":"Chat ID","telegramSaved":"Đã lưu cài đặt Telegram","telegramTest":"Gửi tin nhắn thử","telegramTestOk":"Đã gửi tin nhắn thử","chatIdsHint":"Chat ID cách nhau bằng dấu phẩy","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Tên miền","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Trình hướng dẫn chứng chỉ","email":"Email","webroot":"Webroot path","generateAcme":"Tạo lệnh certbot","acmeGenerated":"Đã tạo lệnh","acmeHint":"Chạy lệnh trên máy chủ rồi điền đường dẫn vào Listener TLS","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"GeoIP / GeoSite","geofilesHint":"Tải cơ sở MetaCubeX GeoIP/GeoSite mới nhất vào thư mục Mihomo.","updateGeofiles":"Cập nhật file geo","geofilesDone":"Đã cập nhật file geo","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"Security","warp":"Cloudflare WARP","warpHint":"Đăng ký WARP WireGuard một cú nhấp (mảnh YAML cho outbound Mihomo)","warpRegister":"Đăng ký WARP","warpDone":"Đã đăng ký WARP — YAML đã sao chép","totp":"Xác thực hai bước (TOTP)","totpOn":"Đã bật","totpSetup":"Quét bằng app xác thực hoặc nhập khóa","totpSetupBtn":"Thiết lập 2FA","totpEnable":"Bật","totpDisable":"Tắt 2FA","webPathHint":"vd: /secret — công bố panel dưới đường dẫn (đăng ký không đổi)"},"share":{"title":"Chia sẻ","subtitle":"Unified view of subscription URLs and per-node share URIs for a user.","selectUser":"Người dùng","tabSub":"Subscription","tabUri":"URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"Xuất tất cả liên kết đăng ký","exported":"Đã xuất liên kết đăng ký"}} as const; diff --git a/frontend/src/i18n/locales/zh-TW.ts b/frontend/src/i18n/locales/zh-TW.ts index ce1975e..ea9fc6a 100644 --- a/frontend/src/i18n/locales/zh-TW.ts +++ b/frontend/src/i18n/locales/zh-TW.ts @@ -1,19 +1 @@ -export default {"realityScan":{"required":"請選擇 Reality 目標或手動填寫。","placeholder":"例如 www.example.com:443","hint":"建議選用掃描通過的目標;也可手動輸入 dest。","scan":"掃描目標","change":"更換","scanning":"掃描中…","passed":"已通過","noTargets":"暫無可用目標","failed":"掃描失敗","scope":"僅檢測公開可達的 REALITY 候選目標。"},"app":{"name":"3m-ui","title":"3m-ui 管理面板"},"nav":{"dashboard":"儀表板","listeners":"節點管理","users":"使用者管理","traffic":"流量監控","cluster":"多機節點","routing":"路由規則","core":"核心管理","logs":"運行日誌","config":"配置引擎","share":"訂閱與分享","settings":"系統設定","logout":"登出"},"common":{"advanced":"進階","prev":"上一頁","next":"下一頁","saved":"已儲存","copied":"已複製","copyFailed":"複製失敗","save":"儲存","cancel":"取消","delete":"刪除","edit":"編輯","create":"建立","confirm":"確認","close":"關閉","copy":"複製","download":"下載","refresh":"重新整理","loading":"載入中…","empty":"暫無資料","search":"搜尋","actions":"操作","status":"狀態","enabled":"啟用","disabled":"停用","name":"名稱","type":"類型","port":"埠","protocol":"協定","address":"地址","password":"密碼","username":"使用者名稱","submit":"提交","success":"成功","error":"失敗","confirmDelete":"確認刪除?","back":"返回","generate":"產生","validate":"驗證","generated":"已產生","ok":"確定","yes":"是","no":"否","more":"更多","reset":"重設","id":"ID","network":"網路","bound":"已綁定","missing":"缺失"},"login":{"title":"登入","subtitle":"Mihomo 管理面板","username":"使用者名稱","password":"密碼","button":"登入","welcomeBack":"歡迎回來","failed":"登入失敗", - "totpRequired": "請輸入驗證器驗證碼", - "totpVerify": "驗證"},"password":{"requiredHint":"使用面板前請先設定新密碼。","title":"修改密碼","current":"目前密碼","new":"新密碼","confirm":"確認新密碼","button":"更新密碼","success":"密碼已更新","failed":"修改失敗","mismatch":"兩次輸入不一致"},"dashboard":{"title":"儀表板","subtitle":"系統與節點概覽","status":"Core Status","running":"運行中","stoppedStatus":"Stopped","version":"Version","pid":"PID","uptime":"運行時間","listeners":"Node Stats","total":"Total","enabled":"Enabled","disabled":"Disabled","system":"System Resources","cpu":"CPU","memory":"記憶體","disk":"磁碟","network":"Network","upload":"Upload","download":"Download","traffic":"流量","uploadRate":"Upload rate","downloadRate":"Download rate","totalUpload":"Total upload","totalDownload":"Total download","onlineUsers":"Online users","activeConnections":"Active connections","start":"Start","stop":"Stop","restart":"Restart","started":"Core started","stopped":"已停止","restarted":"Core restarted","operationFailed":"Operation failed","unavailable":"Status unavailable","users":"使用者","totalUsers":"Total users","enabledUsers":"Enabled users","nodes":"節點","online":"線上","core":"核心","refresh":"重新整理"},"listeners":{"subtitle":"入站 Listener","quickSetup":"Quick setup","quickSetupHint":"One-click inbound (VLESS+REALITY by default). Override port, SNI, keys below if needed.","preset":"Preset","portAuto":"Leave empty to auto-pick a port","hy2QuickHint":"Skeleton only — add cert/key in node edit before production.","quickHints":"Generated","bind":"Bind address","publicHost":"Public host","title":"節點管理","create":"建立節點","edit":"編輯","name":"Name","protocol":"Protocol","port":"Port","bindAddress":"Bind Address","status":"狀態","actions":"操作","config":"Protocol Config","udp":"UDP","tls":"TLS","deleteConfirm":"Delete this node?","created":"Created","updated":"Updated","deleted":"Deleted","reloaded":"Reloaded","copyURI":"Copy subscription URI","urisTitle":"Node subscription links","invalidJSON":"Invalid JSON","selectProtocolFirst":"Select a protocol first","transportXhttpHint":"XHTTP is available for VLESS only.","transportNoXhttpHint":"XHTTP is not available for this protocol (VLESS only).","alwaysTlsHint":"This protocol requires TLS. Leave certificate empty to auto-generate a panel self-signed pair on save.","tlsPairAutoHint":"Certificate + private-key required. Leave both empty → panel self-signed on save.","sectionTlsMirror":"TLS mirror","tlsMirrorHint":"Advanced. Requires dest and primary-key; mutually exclusive with certificate TLS.","tlsMirrorDest":"Mirror dest","tlsMirrorPrimaryKey":"Primary key","tlsMirrorProxy":"Proxy","usersHint":"Create credentials under Users and bind them to this node. Only official Listener fields are configured here.","portHint":"Single port (e.g. 443) or official ports syntax (e.g. 200,204,401-429)","randomPort":"隨機埠","noAvailablePort":"No suggested port is available in 10000-60000. Enter a port manually.","sectionProtocol":"協定","transportLayer":"Transport","securityLayer":"Security","sectionSecurity":"安全","sectionTransport":"傳輸","sectionTLS":"TLS","sectionReality":"REALITY","sectionSSOption":"Trojan SS option","cipher":"Cipher","password":"Password","passwordOptional":"Password (optional)","uuid":"UUID","privateKey":"Private key","certificate":"Certificate","alpn":"ALPN","sni":"SNI","clientFingerprint":"Client fingerprint","allowInsecure":"Allow insecure","muxOption":"Mux","realityPrivateKey":"Reality private key","realityShortID":"Short ID","realityServerNames":"Server names","realityDest":"Dest","transport":"Transport","path":"Path","host":"Host","serviceName":"Service name","up":"Up","down":"Down","ignoreClientBandwidth":"Ignore client bandwidth","masquerade":"Masquerade","congestionControl":"Congestion control","clone":"複製","saveTemplate":"Save as template","versions":"版本","cloned":"Cloned","templateCreated":"Template created","instantiated":"Listener created from template","batchDone":"Batch operation completed","templates":"模板","templateName":"Template name","createdAt":"Created at","instantiate":"Instantiate","deleteTemplateConfirm":"Delete this template?","templateDeleted":"Template deleted","enableSelected":"啟用所選","disableSelected":"停用所選","newPort":"New port","version":"Version","reason":"Reason","diff":"Diff","rollback":"Rollback","rollbackConfirm":"Rollback to this version?","rollbackDone":"Rollback completed","addUser":"Add user","aeadMethod":"AEAD method","allowInsecureHint":"Allow insecure (debug only)","alterId":"Alter ID","alterIdHint":"VMess alterId, prefer 0","authenticationTimeout":"Auth timeout","bandwidthHint":"Bandwidth limit, e.g. 100 mbps","bbrProfile":"BBR profile","clientAuthCert":"Client cert","clientAuthType":"Client auth type","congestionController":"Congestion controller","createWizard":"Create listener wizard","cwnd":"CWND","decryption":"Decryption","encryption":"Encryption","encryptionHint":"Client-only field for subscription export; not written to inbound YAML.","decryptionHint":"Server-side field written to listener decryption.","echKey":"ECH Key","enablePureDownlink":"Pure downlink","flow":"Flow","flowHint":"e.g. xtls-rprx-vision","grpcHint":"gRPC transport","grpcServiceName":"gRPC service name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC client User-Agent string (panel-side metadata; emitted into client-side grpc-opts).","pingInterval":"Ping interval (ms)","pingIntervalHint":"gRPC keepalive ping interval (panel-side metadata; emitted into client-side grpc-opts).","maxConnections":"Max connections","maxConnectionsHint":"gRPC max concurrent connections (panel-side metadata).","minStreams":"Min streams","minStreamsHint":"gRPC min concurrent streams (panel-side metadata).","maxStreams":"Max streams","maxStreamsHint":"gRPC max concurrent streams (panel-side metadata).","handshakeTimeout":"Handshake timeout","jlsDest":"JLS dest","jlsHint":"JLS settings","jlsProxy":"JLS proxy","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI hostname","jlsUpstreamAddr":"JLS upstream","jlsUsers":"JLS users","kcpTunConn":"KCP connections","kcpTunCrypt":"KCP crypt","kcpTunKey":"KCP key","kcpTunMode":"KCP mode","kcpTunNocomp":"KCP no compress","kcpTunRcvwnd":"KCP recv window","kcpTunSndwnd":"KCP send window","maxIdleTime":"Max idle time","maxUdpRelayPacketSize":"Max UDP relay packet","mekyaHint":"Mekya settings","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"Max simultaneous","mekyaMaxSimultaneousHint":"Max concurrent connections","mekyaMaxWriteDuration":"Max write duration","mekyaMaxWriteDurationHint":"Write timeout","mekyaMaxWriteSize":"Max write size","mekyaMaxWriteSizeHint":"Single write limit","mekyaPacketBuffer":"Packet buffer","mekyaPacketBufferHint":"Packet buffer size","mekyaPollingInterval":"Polling interval (ms)","mekyaH2PoolSize":"H2 pool size","mkcpCongestion":"mKCP congestion","mkcpDownlink":"mKCP downlink","mkcpHeader":"mKCP header","mkcpHint":"mKCP transport","mkcpReadBuffer":"mKCP read buffer","mkcpSeed":"mKCP seed","mkcpUplink":"mKCP uplink","mkcpWriteBuffer":"mKCP write buffer","muxBrutal":"Mux brutal","muxBrutalDown":"Brutal down","muxBrutalUp":"Brutal up","muxMaxConnections":"Mux max connections","muxMaxStreams":"Mux max streams","muxMinStreams":"Mux min streams","muxOnlyTcp":"Mux TCP only","muxPadding":"Mux padding","muxProtocol":"Mux protocol","muxStatistic":"Mux statistics","network":"Network","obfs":"Obfuscation","obfsMaxPacketSize":"Obfs max packet","obfsMinPacketSize":"Obfs min packet","obfsOptsHost":"Obfs host","obfsOptsMode":"Obfs mode","obfsPassword":"Obfs password","paddingMax":"Padding max","paddingMin":"Padding min","paddingScheme":"Padding scheme","psk":"PSK","quicVersions":"QUIC versions","rateLimit":"Rate limit","rateLimitHint":"e.g. 10m","realityExclusiveHint":"Reality and TLS cert are mutually exclusive","realityShortId":"Reality short ID","realmId":"Realm ID","realmProxy":"Realm proxy","realmServerUrl":"Realm server URL","realmSkipCert":"Skip cert verify","realmStun":"STUN","realmToken":"Realm token","resTlsDest":"ResTLS dest","resTlsHint":"ResTLS settings","resTlsMinRecordLen":"Min record length","resTlsPassword":"ResTLS password","resTlsProxy":"ResTLS proxy","resTlsScript":"ResTLS script","sectionJLS":"JLS","sectionJlsUpstream":"JLS upstream","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"Handshake dest","shadowTlsHandshakeProxy":"Handshake proxy","shadowTlsHint":"ShadowTLS settings","shadowTlsPassword":"ShadowTLS password","shadowTlsPasswordHint":"v2/v3 password","shadowTlsUsers":"ShadowTLS users","shadowTlsVersion":"ShadowTLS version","simpleObfsMode":"Simple Obfs mode","snellVersion":"Snell version","ssOptionMethod":"SS method","ssOptionPassword":"SS password","sudokuKey":"Sudoku key","customTable":"Custom table","customTables":"Custom tables","sudokuFallback":"Fallback","sectionHttpmask":"HTTP mask","httpmaskDisable":"Disable HTTP mask","httpmaskMode":"HTTP mask mode","httpmaskPathRoot":"HTTP path root","tableType":"Table type","tlsPairHint":"Certificate and private key must both be set","token":"Token","tokenHint":"Auth token","tokenPlaceholder":"Enter token","trafficPattern":"Traffic pattern","userHintMandatory":"At least one user required","wizardBasic":"Basics","wizardConfig":"Protocol","wizardConfigHint":"Fill protocol-specific fields (TLS / Reality / users, etc.)","wizardReview":"Review","wsPath":"WebSocket path","wsPathHint":"e.g. /ws","xhttpHint":"XHTTP transport","xhttpHost":"XHTTP host","xhttpMode":"XHTTP mode","xhttpPath":"XHTTP path","clientExportOnlyHint":"Client subscription only — not written to Mihomo inbound YAML.","transportExclusiveHint":"One transport only. mKCP/Mekya (VMess) require TCP.","mkcpExclusiveHint":"Requires TCP; exclusive with WS/gRPC/Mekya. Other transports cleared on save.","mekyaExclusiveHint":"Requires TCP; exclusive with WS/gRPC/mKCP. Other transports cleared on save.","zeroRtt":"0-RTT","obfsOptsHint":"Mode and host must be set together; leave both empty to disable","obfsOptsHostRequired":"Host is required when obfs is enabled","shadowquicDisableMtuDiscovery":"Disable MTU discovery","shadowquicMaxDatagramFrameSize":"Max datagram frame size","shadowquicRecvWindow":"Connection receive window","shadowquicRecvWindowConn":"Stream receive window","tcpUdp":"TCP / UDP","ipPort":"IP:埠","socketStatus":"監聽狀態","delete":"刪除","reload":"重載"},"core":{"title":"核心管理","subtitle":"Mihomo 進程控制","status":"狀態","running":"運行中","stoppedStatus":"Stopped","version":"版本","pid":"PID","uptime":"運行時間","start":"啟動","stop":"停止","restart":"重啟","started":"Started","stopped":"已停止","restarted":"Restarted","operationFailed":"操作失敗","unavailable":"無法取得狀態","updates":{"title":"Mihomo 核心更新","description":"選擇官方穩定版或 Pre 測試版。下載和設定檢查完成後才切換正在執行的核心;切換失敗會恢復舊核心。更新僅由你手動觸發。","source":"核心來源","managed":"已選版本(持續保存)","bundled":"面板隨附版本","previous":"可回復版本","noPrevious":"暫無舊版本","unavailable":"核心更新無法使用","check":"檢查更新","select":"選擇版本","latest":"最新","current":"目前","install":"安裝所選版本","rollback":"恢復舊版本","releaseNotes":"版本說明","noVersions":"目前平台暫無可驗證的官方穩定版本。","running":"正在更新","failed":"更新失敗","succeeded":"更新完成","restored":"已恢復舊核心及其原先的執行狀態。","confirm":"將 Mihomo 切換至","interruption":"切換時代理連線會短暫中斷,設定與帳號會保留。","staysStopped":"安裝完成後核心仍保持停止,設定與帳號會保留。","steps":{"prepare":"準備","download":"下載並校驗","validate":"檢查設定","activate":"切換並驗證"},"stage":{"interrupted":"面板重啟,更新中斷","preparing":"準備更新","resolving":"查詢官方版本","downloading":"下載核心,目前核心繼續執行","verifying":"校驗 SHA-256","validating":"檢查核心及現有設定","switching":"切換核心","starting":"啟動所選核心","checking":"檢查進程及監聽連接埠","recovering":"恢復舊核心","complete":"已完成"},"stable":"穩定版","pre":"Pre 測試版","preNotice":"Pre 是滾動更新的測試版本,可能存在相容性問題。安裝會核對所選建置編號;若官方版本已更新,請重新檢查更新。"}},"logs":{"title":"運行日誌","subtitle":"面板與核心日誌","empty":"暫無日誌","level":"Level","timestamp":"Time","payload":"Payload","autoRefresh":"Auto refresh","clear":"Clear","refresh":"重新整理"},"config":{"title":"配置引擎","subtitle":"預覽與驗證 Mihomo 配置","visual":"Visual Config","yaml":"YAML Config","proxies":"Proxy Configuration","yamlPreview":"YAML Preview","addProxy":"Add Proxy","editProxy":"Edit Proxy","deleteProxy":"Delete Proxy","deleteConfirm":"Delete this proxy?","generateSuccess":"Generated (not applied yet)","validateSuccess":"Configuration is valid","validateFailed":"Configuration validation failed","proxyName":"Proxy Name","proxyType":"Proxy Type","proxyServer":"Proxy Server","proxyPort":"Proxy Port","proxyPassword":"Proxy Password","proxyUUID":"Proxy UUID","generate":"Generate config","validate":"驗證","validateOk":"Configuration is valid","validateFail":"Configuration validation failed","apply":"套用","applySuccess":"Configuration applied","rollback":"Rollback","rollbackSuccess":"Rolled back to previous config","preview":"預覽","refresh":"重新整理"},"users":{"title":"使用者管理","subtitle":"代理使用者與訂閱","batch":"Batch","create":"建立使用者","edit":"編輯","username":"Username","password":"Password","enabled":"Enabled","deleteConfirm":"Delete this user?","created":"Created","updated":"Updated","deleted":"Deleted","bind":"Bind","bindNodes":"綁定節點","bindHint":"Select inbound nodes for this user. Credentials are injected into listeners when generating Mihomo config.","selectNodes":"Select nodes","bindSuccess":"Node bindings updated","traffic":"流量","trafficLimitGB":"Traffic limit (GB)","trafficLimitHint":"0 or empty = unlimited","expire":"到期","expireHint":"Leave empty for no expiry","neverExpire":"Never","online":"Online","offline":"Offline","blocked":"Blocked","unlimited":"Unlimited","resetTraffic":"Reset traffic","resetTrafficConfirm":"Reset traffic counters for this user?","trafficReset":"Traffic counters reset","passwordKeep":"Leave blank to keep current password","hwidLimit":"HWID device limit","hwidLimitHint":"0 = unlimited. Happ clients send x-hwid when importing the subscription.","ipLimit":"IP limit","ipLimitHint":"0 = unlimited concurrent client IPs","remark":"Remark","shareTitle":"Subscription","rotateSub":"Rotate subscription token","subRotated":"Subscription rotated","deleteDepleted":"Delete depleted","batchEnable":"Enable","batchDisable":"Disable","batchResetTraffic":"Reset traffic","batchDelete":"Delete selected","batchDeleteConfirm":"Delete selected users?","batchNeedSelect":"Select users first","batchDone":"Batch done","deleteDepletedConfirm":"Delete all expired / over-quota users?","depletedDeleted":"Deleted depleted users","subMihomo":"Mihomo 訂閱","subV2ray":"V2Ray / Base64 (v2rayNG / Hiddify)","subSingbox":"Sing-box subscription","qrHint":"QR = default (Mihomo). Paste the V2Ray URL into classic clients.","bindRemoteHint":"Remote cluster nodes (sync mirrors on the Cluster page first)","selectRemoteNodes":"Select remote nodes","disabled":"Disabled","batchExtend":"Extend days","batchAddTraffic":"Add traffic","batchExtendPrompt":"Extend by how many days?","batchAddTrafficPrompt":"Add how many GiB to the limit?","delete":"刪除","enable":"啟用","disable":"停用","subLink":"訂閱連結","group":"分組","tags":"標籤","trafficResetDays":"流量重設週期(天)","expireRenewDays":"到期續期週期(天)","trafficResetDaysHint":"0 表示關閉。每隔 N 天重設該使用者流量。","expireRenewDaysHint":"0 表示關閉。到期後自動再延長 N 天。", - "devices": "裝置", - "clearDevices": "清空全部", - "deviceOs": "系統", - "deviceModel": "型號", - "lastSeen": "最後上線", - "startOnFirstUse": "首次使用起算", - "expireDaysAfterFirst": "首次使用後有效天數", - "externalLinks": "外部訂閱連結", - "externalLinksHint": "每行一個 Clash/Mihomo YAML 網址,會合併進該使用者訂閱"},"traffic":{"title":"流量監控","subtitle":"用量與配額","upload":"Upload","download":"Download","uploadRate":"Upload rate","downloadRate":"Download rate","connections":"Connections","onlineUsers":"Online users","byUser":"Per-user traffic","listener":"Listener","network":"Network","rule":"Rule","total":"總計","used":"已用","remaining":"剩餘","refresh":"重新整理"},"cluster":{"title":"多機節點","subtitle":"遠端面闆與合併訂閱","create":"登記遠端","edit":"編輯","name":"名稱","baseUrl":"面板地址","apiToken":"API Token","apiTokenHint":"Optional; used to authenticate against the remote panel","remark":"Remark","health":"健康檢查","healthDone":"Checked","healthAll":"Check all","healthAllDone":"Health check finished","dashboard":"Remote dashboard","users":"Remote users","restartCore":"重啟核心","restarted":"Remote core restarted","startCore":"啟動核心","stopCore":"停止核心","created":"Created","updated":"Updated","deleted":"Deleted","nodesLoaded":"Nodes loaded","remoteCreate":"Remote create","remoteCreated":"Remote listener created","remoteDeleted":"Remote listener deleted","remoteNodes":"遠端節點","syncNodes":"同步節點","syncDone":"Synced","pushNode":"Push node","pushNodePrompt":"Local node ID to push","pushNodeConfirm":"Push this node to remote? (created disabled)","pushNodeDone":"Pushed (disabled on remote)","colId":"ID","colName":"名稱","colProtocol":"協定","colPort":"埠","operationOk":"完成"},"routing":{"title":"路由規則","subtitle":"分流與規則集","groups":"Proxy groups","rules":"Rules","addGroup":"Add group","proxies":"Proxies","proxiesHint":"Comma-separated proxy / group names","rulesHint":"One Mihomo rule per line","rulesSaved":"Rules saved","groupSaved":"Group saved","groupDeleted":"Group deleted","save":"儲存","refresh":"重新整理"},"settings":{"navPanel":"Panel / UI","navAccess":"Access profile","navTelegram":"Telegram","navSecurity":"Security & backup","navSubscription":"Subscription page","navSSL":"Certificates / SSL","navNetwork":"Proxy & Geo","navTraffic":"Traffic reset","navAbout":"About","panelServer":"Panel / NAT","panelPort":"Panel port","panelPortHint":"Map this port on your NAT gateway. Restart 3m-ui after changing.","panelListen":"Listen address","panelListenHint":"Empty = all interfaces (IPv4/IPv6). Use 127.0.0.1 behind a reverse proxy.","panelPublicURL":"Public panel URL","panelPublicURLHint":"Used in subscription links behind NAT, e.g. https://panel.example.com:8443","title":"系統設定","subtitle":"面板與通知選項","language":"語言","theme":"主題","light":"Light","dark":"Dark","system":"System","passwordTitle":"Account Security","passwordDescription":"Change your password regularly","changePassword":"Change Password","about":"About 3M-UI","version":"Version","backup":"Backup & restore","backupHint":"Download a zip with SQLite and Mihomo config. Restart the panel after restoring the database.","downloadBackup":"Download backup","restoreDb":"Restore database","backupDone":"Backup downloaded","restoreDone":"Database restored — restart the panel","apiDocs":"API documentation","apiDocsHint":"OpenAPI 3 specification for automation.","openOpenAPI":"Open openapi.yaml","alpnHint":"Comma-separated, e.g. h2,http/1.1","accessProfile":"Access Profile","accessProfileHint":"Public host / SNI / fingerprint for share links and client YAML","publicHost":"Public Host","publicPort":"Public Port","clientFingerprint":"Client Fingerprint","telegram":"Telegram alerts","botToken":"Bot Token","chatIds":"Chat ID 列表","telegramSaved":"Telegram settings saved","telegramTest":"Send test message","telegramTestOk":"Test message sent","chatIdsHint":"Comma-separated chat IDs","notifyLogin":"Notify on panel login","notifyBlock":"Notify on user block","notifyUnblock":"Notify on user unblock","notifyExpiry":"Notify on user expiry","notifyDailyDigest":"Send a daily traffic and user summary","templates":"TLS & reverse-proxy templates","proxyKind":"Proxy type","domain":"Domain","upstream":"Upstream","generateTemplate":"Generate template","templateGenerated":"Template generated","trafficReset":"Traffic reset","trafficResetDay":"Monthly reset day","certWizard":"Certificate wizard","email":"Email","webroot":"Webroot path","generateAcme":"Generate certbot command","acmeGenerated":"Command generated","acmeHint":"Run the command on the server, then put cert paths into Listener TLS settings","notifyTraffic":"Traffic threshold warning","trafficWarnPct":"Traffic warn %","expiryWarnHours":"Expiry warn (hours)","panelSSL":"Panel SSL (ACME)","panelSSLHint":"Enable HTTPS for the panel via Let's Encrypt (autocert) or a manual certificate. Restart the panel after saving.","sslSaved":"SSL settings saved — restart panel to apply","acmeCacheDir":"ACME cache dir","manualCert":"Manual cert file (optional)","manualKey":"Manual key file (optional)","subPage":"Subscription page template","subPageHint":"Custom HTML template directory (index.html or sub.html). Leave empty for the built-in page. Browsers hitting the subscription URL with Accept: text/html will see this page.","subscriptionFormatHint":"Subscription auto-format","subscriptionFormatHintDesc":"Format follows User-Agent (Clash/Mihomo YAML, v2ray Base64, sing-box JSON). Override with ?target=clash|v2ray|singbox|html. Traffic/expiry via Subscription-Userinfo headers.","subThemeDir":"Theme directory","subTitle":"Page title","subSupportUrl":"Support URL","downloadDefaultTpl":"Download default template","geofiles":"Geo 檔案","geofilesHint":"Download latest MetaCubeX GeoIP/GeoSite databases into the Mihomo data directory .","updateGeofiles":"Update geo files","geofilesDone":"Geo files updated","subAnnounce":"Subscription announce","subWebPage":"Profile web page URL","subUpdates":"Update interval (hours)","subEncrypt":"Base64-encode URI list","notifyCPU":"Notify on high CPU","cpuWarnPct":"CPU warn threshold (%)","tgSchedule":"Report schedule","tgScheduleHint":"Cron like \"0 9 * * *\" or @daily / @every 6h","tgLanguage":"Bot language","tgEvents":"Enabled events","tgExpiryDays":"Expiry warn (days)","tgTrafficGB":"Traffic warn (GB left)","tgAttachBackup":"Attach DB backup in report","tgProxy":"Proxy URL","tgApiServer":"Telegram API server","tgSetCommands":"Set bot commands","tgCommandsSet":"Bot commands registered","restoreBackup":"Restore backup","restoreRestart":"Restart to apply","restoreRestartHint":"Restart the 3m-ui service after restoring the database","security":"安全","save":"儲存","publicUrl":"公網地址","warp":"Cloudflare WARP","warpHint":"一鍵向 Cloudflare 註冊 WARP,產生 Mihomo WireGuard 出站 YAML。需要面板能連線 Cloudflare。","warpRegister":"一鍵註冊 WARP","warpDone":"WARP 已註冊,YAML 已複製到剪貼簿", - "totp": "兩步驟驗證 (TOTP)", - "totpOn": "已啟用", - "totpSetup": "請用驗證器掃描或輸入金鑰", - "totpSetupBtn": "設定兩步驟驗證", - "totpEnable": "啟用", - "totpDisable": "關閉兩步驟驗證", - "webPathHint": "面板路徑前綴在 /etc/3m-ui/config.yaml 設定 web_path 後重啟。例如 web_path: \"/secret\""},"share":{"title":"訂閱與分享","subtitle":"訂閱連結與節點 URI","selectUser":"選擇使用者","tabSub":"訂閱連結","tabUri":"節點 URI","noSub":"No subscription URL","noNodes":"No nodes bound. Bind listeners under Users first.","uri":"URI","loadUri":"Load URI","subHint":"Paste into the client. Default (no target) is Mihomo YAML; target=v2ray is classic Base64 URI list.","subHtml":"Info page (HTML)","exportAll":"匯出全部訂閱連結","exported":"已匯出訂閱連結"}} as const; +export default {"realityScan":{"required":"請選擇 Reality 目標或手動填寫。","placeholder":"目標網域:443","hint":"从当前節點检测并自動選擇,也可手動填寫目標。","scan":"重新检测","change":"换一個","scanning":"正在检测可用目標……","passed":"握手检测通过","noTargets":"未找到合适目標,請重新检测或手動填寫。","failed":"目標检测失敗,請重試或手動填寫。","scope":"仅从已审核候选中检测握手、跳转和已知 CDN 特征,不保证排除回落流量滥用。"},"app":{"name":"3M-UI","title":"Mihomo 核心管理控制台"},"nav":{"dashboard":"儀表板","listeners":"節點管理","users":"使用者管理","traffic":"流量統計","cluster":"多機節點","routing":"路由規則","core":"核心管理","logs":"系統日誌","config":"設定引擎","share":"分享/訂閱","settings":"系統設定","logout":"登出登入"},"common":{"advanced":"進階選項","prev":"上一步","next":"下一步","saved":"已儲存","copied":"已複製","copyFailed":"複製失敗,請手動选中複製","save":"儲存","cancel":"取消","delete":"刪除","edit":"編輯","create":"建立","confirm":"確認","close":"关闭","copy":"複製","download":"下載","refresh":"重新整理","loading":"載入中…","empty":"暂無数据","search":"搜尋","actions":"操作","status":"狀態","enabled":"啟用","disabled":"停用","name":"名称","type":"类型","port":"連接埠","protocol":"協定","address":"位址","password":"密碼","username":"使用者名稱","submit":"提交","success":"操作成功","error":"操作失敗","confirmDelete":"确定要刪除吗?","back":"返回","generate":"產生","validate":"驗證","generated":"已產生","ok":"确定","yes":"是","no":"否","more":"更多","reset":"重設","id":"ID","network":"網路","bound":"已綁定","missing":"缺失"},"login":{"title":"3M-UI","subtitle":"Mihomo 核心管理控制台","username":"使用者名稱","password":"密碼","button":"登入","welcomeBack":"欢迎回来","failed":"登入失敗","totpRequired":"請輸入驗證器驗證码","totpVerify":"驗證"},"password":{"requiredHint":"首次登入或管理员要求改密时,請先設定新密碼后再使用面板。","title":"修改密碼","current":"当前密碼","new":"新密碼","confirm":"確認新密碼","button":"修改密碼","success":"密碼已更新","failed":"修改密碼失敗","mismatch":"两次輸入的密碼不一致"},"dashboard":{"title":"儀表板","subtitle":"系统与核心狀態概览","status":"核心狀態","running":"运行中","stoppedStatus":"已停止","version":"版本","pid":"进程 ID","uptime":"运行时间","listeners":"節點统计","total":"總数","enabled":"已啟用","disabled":"已停用","system":"系统资源","cpu":"CPU","memory":"内存","disk":"磁盘","network":"網路","upload":"上傳","download":"下載","traffic":"流量统计","uploadRate":"上傳速率","downloadRate":"下載速率","totalUpload":"總上傳","totalDownload":"總下載","onlineUsers":"線上使用者","activeConnections":"活跃連線","start":"啟動","stop":"停止","restart":"重新啟動","started":"核心已啟動","stopped":"核心已停止","restarted":"核心已重新啟動","operationFailed":"操作失敗","unavailable":"無法获取狀態","users":"使用者","totalUsers":"使用者總数","enabledUsers":"啟用使用者"},"listeners":{"subtitle":"建立与管理 Mihomo 入站節點。","quickSetup":"一键搭建","quickSetupHint":"一键建立入站(預設 VLESS+REALITY)。可在下方覆盖連接埠、SNI、金鑰等。","preset":"预设方案","portAuto":"留空自動分配連接埠","hy2QuickHint":"仅產生骨架,生产前請在節點編輯中补充憑證/私鑰","quickHints":"產生结果","bind":"綁定位址","publicHost":"公网位址","title":"節點管理","create":"建立節點","edit":"編輯節點","name":"名称","protocol":"協定","port":"連接埠","bindAddress":"綁定位址","status":"狀態","actions":"操作","config":"協定設定","udp":"UDP","tls":"TLS","deleteConfirm":"确定要刪除此節點吗?","created":"建立成功","updated":"更新成功","deleted":"刪除成功","reloaded":"重载成功","copyURI":"複製訂閱連結","urisTitle":"節點訂閱連結","invalidJSON":"無效的 JSON","selectProtocolFirst":"請先選擇協定","transportXhttpHint":"XHTTP 仅 VLESS 可用。","transportNoXhttpHint":"本協定不支持 XHTTP(仅 VLESS)。","alwaysTlsHint":"该協定必须使用 TLS。憑證/私鑰可留空,儲存时由面板自動產生自簽憑證。","tlsPairAutoHint":"需要憑證与私鑰。两者都留空时,儲存后由面板產生自簽憑證。","sectionTlsMirror":"TLS 镜像","tlsMirrorHint":"進階選項。需填寫 dest 与 primary-key;与普通憑證 TLS 互斥。","tlsMirrorDest":"镜像目標","tlsMirrorPrimaryKey":"Primary Key","tlsMirrorProxy":"代理","usersHint":"使用者凭证請在「使用者管理」中建立并綁定到本節點;此处仅設定官方 Listener 協定字段。","portHint":"支持单連接埠(如 443)或官方 ports 语法(如 200,204,401-429)","randomPort":"随机連接埠","noAvailablePort":"10000-60000 范围内没有可推荐的連接埠,請手動填寫。","sectionProtocol":"協定選項","transportLayer":"傳輸层","securityLayer":"安全层","sectionSecurity":"安全层","sectionTransport":"傳輸层","sectionTLS":"TLS 憑證","sectionReality":"REALITY","sectionSSOption":"Trojan SS 混淆","cipher":"加密方法","password":"密碼","passwordOptional":"密碼(選填)","uuid":"UUID","privateKey":"私鑰","certificate":"憑證","alpn":"ALPN","sni":"SNI","clientFingerprint":"用戶端指紋","allowInsecure":"允许不安全","muxOption":"多路复用","realityPrivateKey":"Reality 私鑰","realityShortID":"Short ID","realityServerNames":"Server Names","realityDest":"目標 (dest)","transport":"傳輸","path":"路徑","host":"Host","serviceName":"Service Name","up":"上行","down":"下行","ignoreClientBandwidth":"忽略用戶端带宽","masquerade":"伪装","congestionControl":"拥塞控制","clone":"克隆","saveTemplate":"儲存为範本","versions":"設定版本","cloned":"克隆成功","templateCreated":"範本建立成功","instantiated":"已从範本建立節點","batchDone":"批量操作完成","templates":"節點範本","templateName":"範本名称","createdAt":"建立时间","instantiate":"实例化","deleteTemplateConfirm":"确定刪除此範本?","templateDeleted":"範本已刪除","enableSelected":"啟用选中","disableSelected":"停用选中","newPort":"新連接埠","version":"版本","reason":"原因","diff":"設定差异","rollback":"回滚","rollbackConfirm":"确定回滚到此版本?","rollbackDone":"回滚完成","addUser":"添加使用者","aeadMethod":"AEAD 加密方式","allowInsecureHint":"允许不安全連線(仅调试)","alterId":"alterId","alterIdHint":"VMess 额外 ID,建议 0","authenticationTimeout":"认证逾時","bandwidthHint":"带宽限制,如 100 mbps","bbrProfile":"BBR 設定","clientAuthCert":"用戶端憑證","clientAuthType":"用戶端认证类型","congestionController":"拥塞控制","createWizard":"向导建立節點","cwnd":"拥塞窗口 (cwnd)","decryption":"解密","encryption":"加密","encryptionHint":"用戶端字段,仅用于訂閱匯出,不写入入站 YAML。","decryptionHint":"服务端字段,写入入站 decryption。","echKey":"ECH Key","enablePureDownlink":"纯下行","flow":"流控","flowHint":"如 xtls-rprx-vision","grpcHint":"gRPC 傳輸","grpcServiceName":"gRPC Service Name","grpcUserAgent":"gRPC User-Agent","grpcUserAgentHint":"gRPC 用戶端 User-Agent 字符串(面板侧元数据;写入用戶端 grpc-opts)。","pingInterval":"Ping 间隔 (ms)","pingIntervalHint":"gRPC keepalive Ping 间隔(面板侧元数据;写入用戶端 grpc-opts)。","maxConnections":"最大連線数","maxConnectionsHint":"gRPC 最大并发連線数(面板侧元数据)。","minStreams":"最小流数","minStreamsHint":"gRPC 最小并发流数(面板侧元数据)。","maxStreams":"最大流数","maxStreamsHint":"gRPC 最大并发流数(面板侧元数据)。","handshakeTimeout":"握手逾時","jlsDest":"JLS 目標","jlsHint":"Joliz 相关設定","jlsProxy":"JLS 代理","jlsSni":"JLS SNI","jlsSniHint":"JLS SNI 主機名","jlsUpstreamAddr":"JLS 上游位址","jlsUsers":"JLS 使用者","kcpTunConn":"KCP 連線数","kcpTunCrypt":"KCP 加密","kcpTunKey":"KCP 金鑰","kcpTunMode":"KCP 模式","kcpTunNocomp":"KCP 停用压缩","kcpTunRcvwnd":"KCP 接收窗口","kcpTunSndwnd":"KCP 发送窗口","maxIdleTime":"最大空闲时间","maxUdpRelayPacketSize":"最大 UDP 中继包","mekyaHint":"Mekya 相关設定","mekyaKcpSection":"Mekya KCP","mekyaMaxSimultaneous":"最大并发","mekyaMaxSimultaneousHint":"最大同时連線数","mekyaMaxWriteDuration":"最大写入时長","mekyaMaxWriteDurationHint":"写入逾時","mekyaMaxWriteSize":"最大写入大小","mekyaMaxWriteSizeHint":"单次写入上限","mekyaPacketBuffer":"包缓冲","mekyaPacketBufferHint":"数据包缓冲大小","mekyaPollingInterval":"轮询间隔 (ms)","mekyaH2PoolSize":"H2 連線池大小","mkcpCongestion":"mKCP 拥塞控制","mkcpDownlink":"mKCP 下行","mkcpHeader":"mKCP 头类型","mkcpHint":"mKCP 傳輸","mkcpReadBuffer":"mKCP 读缓冲","mkcpSeed":"mKCP Seed","mkcpUplink":"mKCP 上行","mkcpWriteBuffer":"mKCP 写缓冲","muxBrutal":"Mux Brutal","muxBrutalDown":"Brutal 下行","muxBrutalUp":"Brutal 上行","muxMaxConnections":"Mux 最大連線","muxMaxStreams":"Mux 最大流","muxMinStreams":"Mux 最小流","muxOnlyTcp":"仅 TCP Mux","muxPadding":"Mux 填充","muxProtocol":"Mux 協定","muxStatistic":"Mux 统计","network":"傳輸網路","obfs":"混淆","obfsMaxPacketSize":"混淆最大包","obfsMinPacketSize":"混淆最小包","obfsOptsHost":"混淆 Host","obfsOptsMode":"混淆模式","obfsPassword":"混淆密碼","paddingMax":"填充最大","paddingMin":"填充最小","paddingScheme":"填充方案","psk":"PSK","quicVersions":"QUIC 版本","rateLimit":"速率限制","rateLimitHint":"如 10m","realityExclusiveHint":"Reality 与 TLS 憑證互斥","realityShortId":"Reality Short ID","realmId":"Realm ID","realmProxy":"Realm 代理","realmServerUrl":"Realm 服务位址","realmSkipCert":"略過憑證校验","realmStun":"STUN","realmToken":"Realm Token","resTlsDest":"ResTLS 目標","resTlsHint":"ResTLS 設定","resTlsMinRecordLen":"最小记录長度","resTlsPassword":"ResTLS 密碼","resTlsProxy":"ResTLS 代理","resTlsScript":"ResTLS 脚本","sectionJLS":"JLS","sectionJlsUpstream":"JLS 上游","sectionKcpTun":"KCP Tun","sectionMekya":"Mekya","sectionMkcp":"mKCP","sectionMux":"Mux","sectionRealm":"Realm","sectionResTLS":"Reality TLS","sectionShadowTLS":"ShadowTLS","sectionSimpleObfs":"simple-obfs","sectionXHTTP":"XHTTP","shadowTlsHandshakeDest":"握手目標","shadowTlsHandshakeProxy":"握手代理","shadowTlsHint":"ShadowTLS 設定","shadowTlsPassword":"ShadowTLS 密碼","shadowTlsPasswordHint":"版本 2/3 密碼","shadowTlsUsers":"ShadowTLS 使用者","shadowTlsVersion":"ShadowTLS 版本","simpleObfsMode":"Simple Obfs 模式","snellVersion":"Snell 版本","ssOptionMethod":"SS 加密方式","ssOptionPassword":"SS 密碼","sudokuKey":"Sudoku Key","customTable":"自訂表","customTables":"自訂表列表","sudokuFallback":"回落","sectionHttpmask":"HTTP 伪装","httpmaskDisable":"停用 HTTP 伪装","httpmaskMode":"HTTP 伪装模式","httpmaskPathRoot":"HTTP 路徑前缀","tableType":"表类型","tlsPairHint":"憑證与私鑰需成对填寫","token":"Token","tokenHint":"认证 Token","tokenPlaceholder":"輸入 Token","trafficPattern":"流量模式","userHintMandatory":"至少一個使用者","wizardBasic":"基本資訊","wizardConfig":"協定設定","wizardConfigHint":"填寫協定相关字段(TLS / Reality / 使用者等)","wizardReview":"確認建立","wsPath":"WebSocket 路徑","wsPathHint":"如 /ws","xhttpHint":"XHTTP 傳輸","xhttpHost":"XHTTP Host","xhttpMode":"XHTTP 模式","xhttpPath":"XHTTP 路徑","clientExportOnlyHint":"仅用于用戶端訂閱匯出,不会写入 Mihomo 入站設定。","transportExclusiveHint":"同时只能选一种傳輸。VMess 的 mKCP/Mekya 需配合 TCP。","mkcpExclusiveHint":"需使用 TCP;与 WS/gRPC/Mekya 互斥,儲存时清除其它傳輸。","mekyaExclusiveHint":"需使用 TCP;与 WS/gRPC/mKCP 互斥,儲存时清除其它傳輸。","zeroRtt":"0-RTT","obfsOptsHint":"mode 与 host 需同时填寫;都留空则关闭","obfsOptsHostRequired":"啟用 obfs 时必须填寫 host","shadowquicDisableMtuDiscovery":"停用 MTU 探測","shadowquicMaxDatagramFrameSize":"最大 datagram frame 大小","shadowquicRecvWindow":"連線接收窗口","shadowquicRecvWindowConn":"流接收窗口","tcpUdp":"TCP / UDP","ipPort":"IP:連接埠","socketStatus":"監聽狀態"},"core":{"title":"核心管理","subtitle":"Mihomo 核心狀態与控制。","status":"核心狀態","running":"运行中","stoppedStatus":"已停止","version":"版本","pid":"进程 ID","uptime":"运行时间","start":"啟動","stop":"停止","restart":"重新啟動","started":"已啟動","stopped":"已停止","restarted":"已重新啟動","operationFailed":"操作失敗","unavailable":"核心不可用","updates":{"title":"Mihomo 内核更新","description":"選擇官方稳定版或 Pre 測試版。下載和設定检查完成后才切换正在运行的内核;切换失敗会還原旧内核。更新仅由你手動触发。","source":"内核来源","managed":"已選擇版本(持久儲存)","bundled":"面板随附版本","previous":"可回退版本","noPrevious":"暂無旧版本","unavailable":"内核更新不可用","check":"检查更新","select":"選擇版本","latest":"最新","current":"当前","install":"安裝所选版本","rollback":"還原旧版本","releaseNotes":"版本說明","noVersions":"当前平台暂無可驗證的官方稳定版本。","running":"正在更新","failed":"更新失敗","succeeded":"更新完成","restored":"已還原旧内核及其原先的运行狀態。","confirm":"将 Mihomo 切换至","interruption":"切换时代理連線会短暂中断,設定和账号会保留。","staysStopped":"安裝完成后内核仍保持停止,設定和账号会保留。","steps":{"prepare":"准备","download":"下載并校验","validate":"检查設定","activate":"切换并驗證"},"stage":{"interrupted":"面板重新啟動,更新中断","preparing":"准备更新","resolving":"查询官方版本","downloading":"下載内核,当前内核继续运行","verifying":"校验 SHA-256","validating":"检查内核和现有設定","switching":"切换内核","starting":"啟動所选内核","checking":"检查进程和監聽連接埠","recovering":"還原旧内核","complete":"已完成"},"stable":"稳定版","pre":"Pre 測試版","preNotice":"Pre 是滚动更新的測試版本,可能存在相容性问题。安裝会核对所选构建号;若官方版本已更新,請重新检查更新。"}},"logs":{"title":"运行日誌","subtitle":"面板与核心最近日誌。","empty":"暂無日誌","level":"级别","timestamp":"时间","payload":"内容","autoRefresh":"自動重新整理","clear":"清空"},"config":{"title":"設定引擎","subtitle":"可视化管理 Mihomo 設定","visual":"可视化設定","yaml":"YAML 設定","proxies":"代理設定","yamlPreview":"YAML 预览","addProxy":"添加代理","editProxy":"編輯代理","deleteProxy":"刪除代理","deleteConfirm":"确定要刪除此代理吗?","generateSuccess":"已產生(尚未应用)","validateSuccess":"設定驗證通过","validateFailed":"設定驗證失敗","proxyName":"代理名称","proxyType":"代理类型","proxyServer":"代理伺服器","proxyPort":"代理連接埠","proxyPassword":"代理密碼","proxyUUID":"代理 UUID","generate":"產生設定","validate":"校验設定","validateOk":"設定校验通过","validateFail":"設定校验失敗","apply":"应用","applySuccess":"已应用設定","rollback":"回滚","rollbackSuccess":"已回滚到上一份設定"},"users":{"title":"使用者管理","subtitle":"管理账号、流量、節點綁定与訂閱。","batch":"批量操作","create":"建立使用者","edit":"編輯使用者","username":"使用者名稱","password":"密碼","enabled":"啟用狀態","deleteConfirm":"确定要刪除此使用者吗?","created":"建立成功","updated":"更新成功","deleted":"刪除成功","bind":"綁定節點","bindNodes":"綁定節點","bindHint":"選擇该使用者可使用的入站節點。凭证会在產生 Mihomo 設定时自動注入到对应 Listener。","selectNodes":"選擇節點","bindSuccess":"節點綁定已更新","traffic":"流量","trafficLimitGB":"流量上限 (GB)","trafficLimitHint":"0 或留空表示不限","expire":"到期时间","expireHint":"留空表示永不過期","neverExpire":"永不過期","online":"線上","offline":"離線","blocked":"已封禁","unlimited":"不限","resetTraffic":"重設流量","resetTrafficConfirm":"确定重設该使用者的流量计数?","trafficReset":"流量已重設","passwordKeep":"留空则不修改密碼","hwidLimit":"HWID 裝置上限","hwidLimitHint":"0 为不限制。相容 Happ 等用戶端在訂閱匯入时发送的 x-hwid 头。","ipLimit":"IP 限制","ipLimitHint":"0 表示不限制并发用戶端 IP","remark":"備註","shareTitle":"訂閱連結","rotateSub":"輪換訂閱 Token","subRotated":"訂閱已輪換","deleteDepleted":"清理耗尽使用者","batchEnable":"批量啟用","batchDisable":"批量停用","batchResetTraffic":"批量重設流量","batchDelete":"刪除所选","batchDeleteConfirm":"确定刪除所选使用者?","batchNeedSelect":"請先勾选使用者","batchDone":"批量操作完成","deleteDepletedConfirm":"确定刪除所有已到期或超额使用者?","depletedDeleted":"已刪除耗尽使用者","subMihomo":"Mihomo 訂閱","subV2ray":"V2Ray / Base64(v2rayNG / Hiddify)","subSingbox":"Sing-box 訂閱","qrHint":"QR 碼預設对应 Mihomo;经典用戶端請粘贴 V2Ray 連結","bindRemoteHint":"遠端集群節點(需先在多机節點中同步镜像)","selectRemoteNodes":"選擇遠端節點","disabled":"已停用","batchExtend":"批量延期","batchAddTraffic":"批量加流量","batchExtendPrompt":"延期多少天?","batchAddTrafficPrompt":"增加多少 GiB 流量额度?","group":"分組","tags":"標籤","trafficResetDays":"流量重設週期(天)","expireRenewDays":"到期續期週期(天)","trafficResetDaysHint":"0 表示关闭。每隔 N 天重設该使用者流量。","expireRenewDaysHint":"0 表示关闭。到期后自動再延長 N 天。","devices":"裝置","clearDevices":"清空全部","deviceOs":"系统","deviceModel":"型号","lastSeen":"最后線上","startOnFirstUse":"首次使用起算","expireDaysAfterFirst":"首次使用后有效天数","externalLinks":"外部訂閱連結","externalLinksHint":"每行一個 Clash/Mihomo YAML 位址,会合併进该使用者訂閱"},"traffic":{"title":"流量监控","subtitle":"实时連線与流量统计。","upload":"上傳","download":"下載","uploadRate":"上傳速率","downloadRate":"下載速率","connections":"連線","onlineUsers":"線上使用者","byUser":"使用者流量","listener":"節點","network":"網路","rule":"規則"},"cluster":{"title":"多机節點","subtitle":"登记遠端 3m-ui 面板并做健康檢查(完整遠端管控后续迭代)","create":"添加節點","edit":"編輯節點","name":"名称","baseUrl":"面板位址","apiToken":"API Token","apiTokenHint":"選填;用于鉴权遠端面板","remark":"備註","health":"健康檢查","healthDone":"已探測","healthAll":"全部检查","healthAllDone":"全部健康檢查完成","dashboard":"遠端儀表板","users":"遠端使用者","restartCore":"重新啟動核心","restarted":"遠端核心已重新啟動","startCore":"啟動核心","stopCore":"停止核心","created":"已添加","updated":"已更新","deleted":"已刪除","nodesLoaded":"已載入節點","remoteCreate":"遠端建立","remoteCreated":"遠端節點已建立","remoteDeleted":"遠端節點已刪除","remoteNodes":"遠端節點","syncNodes":"同步節點","syncDone":"同步完成","pushNode":"推送節點","pushNodePrompt":"要推送的本机節點 ID","pushNodeConfirm":"確認推送到遠端?(遠端将以停用狀態建立)","pushNodeDone":"已推送(遠端預設停用)","colId":"ID","colName":"名称","colProtocol":"協定","colPort":"連接埠","operationOk":"完成"},"routing":{"title":"路由与策略组","subtitle":"管理 Mihomo proxy-groups 与 rules","groups":"策略组","rules":"規則列表","addGroup":"添加策略组","proxies":"節點列表","proxiesHint":"逗号分隔的 proxy / group 名称","rulesHint":"每行一条 Mihomo rule","rulesSaved":"規則已儲存","groupSaved":"策略组已儲存","groupDeleted":"策略组已刪除"},"settings":{"navPanel":"面板 / 外观","navAccess":"访问档案","navTelegram":"Telegram","navSecurity":"安全与備份","navSubscription":"訂閱页","navSSL":"憑證 / SSL","navNetwork":"反代与 Geo","navTraffic":"流量重設","navAbout":"關於","panelServer":"面板 / NAT","panelPort":"面板連接埠","panelPortHint":"NAT 环境請映射此連接埠到公网;修改后需重新啟動 3m-ui 服务。","panelListen":"監聽位址","panelListenHint":"留空監聽所有网卡(含 IPv6)。仅反代可访问时填 127.0.0.1。","panelPublicURL":"面板公网 URL","panelPublicURLHint":"用于 NAT 后訂閱連結,例如 https://panel.example.com:8443","title":"系统設定","subtitle":"偏好与账户","language":"介面語言","theme":"主題","light":"淺色","dark":"深色","system":"跟随系统","passwordTitle":"账户安全","passwordDescription":"定期修改密碼可以提高账户安全性","changePassword":"前往修改密碼","about":"關於 3M-UI","version":"版本","backup":"備份与還原","backupHint":"下載包含 SQLite 与 Mihomo 設定的 zip。還原数据库后需重新啟動面板进程。","downloadBackup":"下載備份","restoreDb":"還原数据库","backupDone":"備份已下載","restoreDone":"数据库已還原,請重新啟動面板","apiDocs":"API 文件","apiDocsHint":"用于自動化的 OpenAPI 3 规范。","openOpenAPI":"打开 openapi.yaml","alpnHint":"逗号分隔,如 h2,http/1.1","accessProfile":"访问設定","accessProfileHint":"用于匯出訂閱連結 / 用戶端 YAML 的公网 Host、SNI、指紋","publicHost":"公网 Host","publicPort":"公网連接埠","clientFingerprint":"用戶端指紋","telegram":"Telegram 通知","botToken":"Bot Token","chatIds":"Chat ID 列表","telegramSaved":"Telegram 設定已儲存","telegramTest":"发送測試消息","telegramTestOk":"測試消息已发送","chatIdsHint":"多個 Chat ID 用逗号分隔","notifyLogin":"面板登入时通知","notifyBlock":"使用者封禁时通知","notifyUnblock":"使用者解封时通知","notifyExpiry":"使用者过期时通知","notifyDailyDigest":"每天发送流量与使用者摘要","templates":"憑證与反代範本","proxyKind":"反代类型","domain":"網域","upstream":"上游位址","generateTemplate":"產生範本","templateGenerated":"範本已產生","trafficReset":"流量重設","trafficResetDay":"每月重設日","certWizard":"憑證申請向导","email":"邮箱","webroot":"Webroot 路徑","generateAcme":"產生 certbot 命令","acmeGenerated":"命令已產生","acmeHint":"在伺服器上执行下列命令申請憑證,再将路徑填入 Listener TLS 設定","notifyTraffic":"流量阈值警報","trafficWarnPct":"流量警報阈值 (%)","expiryWarnHours":"到期提前提醒 (小時)","panelSSL":"面板 SSL(ACME)","panelSSLHint":"通过 Let’s Encrypt(autocert)或手動憑證为面板啟用 HTTPS。儲存后需重新啟動面板生效。","sslSaved":"SSL 設定已儲存 — 請重新啟動面板生效","acmeCacheDir":"ACME 缓存目录","manualCert":"手動憑證文件(選填)","manualKey":"手動私鑰文件(選填)","subPage":"訂閱页範本","subPageHint":"自訂 HTML 範本目录(index.html 或 sub.html)。留空使用内置页面。浏览器以 Accept: text/html 访问訂閱 URL 时将显示此页。","subscriptionFormatHint":"訂閱格式自動识别","subscriptionFormatHintDesc":"根据用戶端 User-Agent 自動選擇 Clash/Mihomo YAML、v2ray Base64 或 sing-box JSON;也可用 ?target=clash|v2ray|singbox|html 强制。响应头含 Subscription-Userinfo(流量/到期)。","subThemeDir":"主題目录","subTitle":"页面标题","subSupportUrl":"支持連結","downloadDefaultTpl":"下載預設範本","geofiles":"Geo 文件","geofilesHint":"下載最新 MetaCubeX GeoIP/GeoSite 数据库到 Mihomo 数据目录。","updateGeofiles":"更新地理文件","geofilesDone":"地理文件已更新","subAnnounce":"訂閱公告","subWebPage":"訂閱网页 URL","subUpdates":"重新整理间隔(小時)","subEncrypt":"Base64 编码節點列表","notifyCPU":"CPU 过高时通知","cpuWarnPct":"CPU 警報阈值 (%)","tgSchedule":"报告排程","tgScheduleHint":"cron 表达式如 \"0 9 * * *\" 或 @daily / @every 6h","tgLanguage":"機器人語言","tgEvents":"啟用事件","tgExpiryDays":"到期提前提醒 (天)","tgTrafficGB":"流量剩餘提醒 (GB)","tgAttachBackup":"报告中附带数据库備份","tgProxy":"代理位址","tgApiServer":"Telegram API 伺服器","tgSetCommands":"注册命令菜单","tgCommandsSet":"命令菜单已注册","restoreBackup":"還原備份","restoreRestart":"重新啟動以应用","restoreRestartHint":"還原数据库后請重新啟動 3m-ui 服务","security":"安全","warp":"Cloudflare WARP","warpHint":"一键向 Cloudflare 注册 WARP,產生 Mihomo WireGuard 出站 YAML。需要面板能访问 Cloudflare。","warpRegister":"一键注册 WARP","warpDone":"WARP 已注册,YAML 已複製到剪贴板","totp":"兩步驟驗證 (TOTP)","totpOn":"已啟用","totpSetup":"請用驗證器掃描或录入金鑰","totpSetupBtn":"設定兩步驟驗證","totpEnable":"啟用","totpDisable":"关闭兩步驟驗證","webPathHint":"面板路徑前缀在 /etc/3m-ui/config.yaml 設定 web_path 后重新啟動。例如 web_path: \"/secret\",访问 http://IP:8080/secret/"},"share":{"title":"分享 / 訂閱","subtitle":"统一查看使用者訂閱連結与已綁定節點的分享 URI。","selectUser":"選擇使用者","tabSub":"訂閱連結","tabUri":"節點 URI","noSub":"暂無訂閱位址","noNodes":"该使用者未綁定節點,請先在使用者管理中綁定。","uri":"URI","loadUri":"載入 URI","subHint":"将連結粘贴到用戶端。預設(無 target)为 Mihomo YAML;target=v2ray 为经典 Base64 URI 列表。","subHtml":"訂閱資訊页 (HTML)","exportAll":"匯出全部訂閱連結","exported":"已匯出訂閱連結"}} as const;