mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-30 06:57:14 +00:00
chore(i18n): delete 230 dead translation keys and guard against new ones (#6132)
* chore(i18n): delete 230 dead translation keys and guard against new ones The 13 locale files carried 230 keys (11% of the set) that nothing in the frontend or Go sources references — leftovers of renamed features (the email notifier reuses tgbot.messages.* for subjects, the old email.subject*/title* set was orphaned; likewise menu.*, the clients bulk-copy strings, and the secAlert* family). Nothing detected this: a missing key falls back to en-US and an unused key fails nothing. A new test now fails the build when an en-US key has no reference in frontend/src or internal Go sources (dynamic keys are covered by harvesting concatenation and template-literal prefixes), and pins that all 13 locales carry exactly the en-US key set, so parity drift surfaces at test time instead of as a silent fallback. Each locale shrinks by the same 230 keys; net -2,900 lines across the translation set. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(i18n): restore the 29 live remarkVars keys, match whole tokens, unmask 9 more From review: the template-literal harvester required the prefix to end on a dot, so pages.hosts.remarkVars.desc${token} harvested nothing and all 29 desc* tooltip keys were wrongly deleted — and the guard shared the flawed logic, so CI stayed green while the Hosts page would have shown raw key names in 13 languages. Restored from the parent commit; the harvester now requires at least one dot but not a trailing one. Also from review: references are matched as whole dotted tokens instead of substrings (a dead key can no longer hide behind a longer sibling — that unmasked 9 more genuinely dead keys, each verified by hand before deletion), and the test excludes itself from the scan so its own prose cannot whitelist a subtree. Net: -210 keys per locale instead of the previous -230. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -48,7 +48,6 @@
|
||||
"copySuccess": "Başarıyla kopyalandı",
|
||||
"sure": "Emin misiniz?",
|
||||
"encryption": "Şifreleme",
|
||||
"useIPv4ForHost": "Ana bilgisayar için IPv4 kullan",
|
||||
"transmission": "İletim",
|
||||
"host": "Host",
|
||||
"path": "Yol",
|
||||
@@ -74,18 +73,9 @@
|
||||
"twoFactorCode": "Kod",
|
||||
"remained": "Kalan",
|
||||
"security": "Güvenlik",
|
||||
"secAlertTitle": "Güvenlik Uyarısı",
|
||||
"secAlertSsl": "Bu bağlantı güvenli değil. Verilerin korunması için TLS etkinleştirilene kadar hassas bilgi girmekten kaçının.",
|
||||
"secAlertConf": "Bazı ayarlar saldırıya açıktır. Olası ihlalleri önlemek için güvenlik protokollerini güçlendirmeniz önerilir.",
|
||||
"secAlertSSL": "Panelde güvenli bağlantı yok. Verilerin korunması için TLS sertifikası yükleyin.",
|
||||
"secAlertPanelPort": "Panelin varsayılan portu savunmasız. Rastgele veya belirli bir port yapılandırın.",
|
||||
"secAlertPanelURI": "Panelin varsayılan URI yolu güvensiz. Karmaşık bir URI yolu yapılandırın.",
|
||||
"secAlertSubURI": "Aboneliğin varsayılan URI yolu güvensiz. Karmaşık bir URI yolu yapılandırın.",
|
||||
"secAlertSubJsonURI": "Abonelik JSON dosyasının varsayılan URI yolu güvensiz. Karmaşık bir URI yolu yapılandırın.",
|
||||
"emptyDnsDesc": "Eklenmiş DNS sunucusu yok.",
|
||||
"emptyFakeDnsDesc": "Eklenmiş Fake DNS sunucusu yok.",
|
||||
"emptyBalancersDesc": "Eklenmiş dengeleyici yok.",
|
||||
"emptyReverseDesc": "Eklenmiş ters proxy yok.",
|
||||
"somethingWentWrong": "Bir hata oluştu",
|
||||
"subscription": {
|
||||
"title": "Abonelik Bilgisi",
|
||||
@@ -106,8 +96,6 @@
|
||||
},
|
||||
"menu": {
|
||||
"theme": "Tema",
|
||||
"dark": "Koyu",
|
||||
"ultraDark": "Ultra Koyu",
|
||||
"dashboard": "Genel Bakış",
|
||||
"inbounds": "Gelen Bağlantılar",
|
||||
"clients": "Kullanıcılar",
|
||||
@@ -118,7 +106,6 @@
|
||||
"routing": "Yönlendirme",
|
||||
"outbounds": "Giden Bağlantılar",
|
||||
"apiDocs": "API Belgeleri",
|
||||
"logout": "Çıkış Yap",
|
||||
"link": "Yönet",
|
||||
"donate": "Bağış Yap",
|
||||
"hosts": "Host'lar",
|
||||
@@ -139,7 +126,6 @@
|
||||
}
|
||||
},
|
||||
"index": {
|
||||
"title": "Genel Bakış",
|
||||
"cpu": "CPU",
|
||||
"logicalProcessors": "Mantıksal İşlemciler",
|
||||
"frequency": "Frekans",
|
||||
@@ -152,7 +138,6 @@
|
||||
"restartXray": "Yeniden Başlat",
|
||||
"xraySwitch": "Sürüm",
|
||||
"xrayUpdates": "Xray Güncellemeleri",
|
||||
"xraySwitchClick": "Geçiş yapmak istediğiniz sürümü seçin.",
|
||||
"xraySwitchClickDesk": "Dikkatli seçin, eski sürümler mevcut yapılandırmalarla uyumlu olmayabilir.",
|
||||
"updatePanel": "Paneli Güncelle",
|
||||
"panelUpdateDesc": "Bu işlem 3X-UI'yi en son sürüme güncelleyecek ve panel servisini yeniden başlatacaktır.",
|
||||
@@ -164,12 +149,10 @@
|
||||
"currentCommit": "Geçerli commit",
|
||||
"latestCommit": "Son commit",
|
||||
"updateChannelChanged": "Güncelleme kanalı değiştirildi",
|
||||
"upToDate": "Güncel",
|
||||
"xrayStatusUnknown": "Bilinmiyor",
|
||||
"xrayStatusRunning": "Çalışıyor",
|
||||
"xrayStatusStop": "Durduruldu",
|
||||
"xrayStatusError": "Hata",
|
||||
"xrayErrorPopoverTitle": "Xray çalıştırılırken bir hata oluştu",
|
||||
"operationHours": "Çalışma Süresi",
|
||||
"systemHistoryTitle": "Sistem Geçmişi",
|
||||
"historyTitleCpu": "CPU Kullanımı",
|
||||
@@ -211,9 +194,6 @@
|
||||
"xrayObservatoryDead": "Kapalı",
|
||||
"xrayObservatoryLastSeen": "Son görülme",
|
||||
"xrayObservatoryLastTry": "Son deneme",
|
||||
"trendLast2Min": "Son 2 dakika",
|
||||
"systemLoad": "Sistem Yükü",
|
||||
"systemLoadDesc": "Son 1, 5 ve 15 dakikanın sistem yükü ortalaması",
|
||||
"connectionCount": "Bağlantı İstatistikleri",
|
||||
"ipAddresses": "IP Adresleri",
|
||||
"toggleIpVisibility": "IP görünürlüğünü değiştir",
|
||||
@@ -223,13 +203,11 @@
|
||||
"totalData": "Toplam Veri",
|
||||
"sent": "Gönderilen",
|
||||
"received": "Alınan",
|
||||
"documentation": "Dokümantasyon",
|
||||
"xraySwitchVersionDialog": "Xray sürümünü gerçekten değiştirmek istiyor musunuz?",
|
||||
"xraySwitchVersionDialogDesc": "Bu işlem Xray sürümünü #version# olarak değiştirecektir.",
|
||||
"xraySwitchVersionPopover": "Xray başarıyla güncellendi",
|
||||
"panelUpdateDialog": "Gerçekten paneli güncellemek istiyor musunuz?",
|
||||
"panelUpdateDialogDesc": "Bu işlem 3X-UI'yi #version# sürümüne güncelleyecek ve panel servisini yeniden başlatacaktır.",
|
||||
"panelUpdateCheckPopover": "Panel güncelleme kontrolü başarısız oldu",
|
||||
"panelUpdateStartedPopover": "Panel güncellemesi başlatıldı",
|
||||
"panelUpdateFailedTitle": "Panel güncellemesi başarısız oldu",
|
||||
"panelUpdateFailedDesc": "Güncelleme başarıyla tamamlanamadı. Sunucu günlüklerini kontrol edin veya komut satırından 'x-ui update' çalıştırın.",
|
||||
@@ -258,7 +236,6 @@
|
||||
"accessLogs": "Erişim Günlükleri",
|
||||
"autoUpdate": "Otomatik Güncelleme",
|
||||
"config": "Yapılandırma",
|
||||
"backup": "Yedek",
|
||||
"backupTitle": "Yedekleme ve Geri Yükleme",
|
||||
"exportDatabase": "Yedekle",
|
||||
"exportDatabaseDesc": "Mevcut veritabanınızın yedeğini içeren bir .db dosyasını cihazınıza indirmek için tıklayın. Aynı dosya PostgreSQL üzerinde çalışan bir panele de geri yüklenebilir.",
|
||||
@@ -276,7 +253,6 @@
|
||||
"migrationDownloadPgDesc": "PostgreSQL verilerinizden oluşturulan ve bu paneli SQLite üzerinde çalıştırmaya hazır bir .db SQLite veritabanı indirmek için tıklayın."
|
||||
},
|
||||
"inbounds": {
|
||||
"title": "Gelen Bağlantılar",
|
||||
"totalDownUp": "Toplam Gönderilen/Alınan",
|
||||
"totalUsage": "Toplam Kullanım",
|
||||
"inboundCount": "Toplam Gelen Bağlantı",
|
||||
@@ -288,21 +264,11 @@
|
||||
"localPanel": "Yerel Panel",
|
||||
"fallbacks": {
|
||||
"title": "Fallback'ler",
|
||||
"help": "Bu gelen bağlantı üzerindeki bir istek hiçbir istemci ile eşleşmediğinde, başka bir yere yönlendirilir. Aşağıdan bir alt (child) gelen bağlantı seçerek yönlendirme alanlarını (SNI / ALPN / Path / xver) aktarım (transport) ayarlarından otomatik doldurun ya da seçimi boş bırakıp Hedef (Dest) değerini doğrudan girin (örn. 8080 veya 127.0.0.1:8080); böylece Nginx gibi harici bir sunucuya yönlendirebilirsiniz. Her alt gelen bağlantı 127.0.0.1 üzerinde security=none (güvenlik=yok) ile dinlemelidir.",
|
||||
"empty": "Henüz fallback yok",
|
||||
"add": "Fallback Ekle",
|
||||
"pickInbound": "Bir Gelen Bağlantı Seç",
|
||||
"matchAny": "herhangi",
|
||||
"destPlaceholder": "otomatik (child listen:port)",
|
||||
"rederive": "Child'dan Yeniden Doldur",
|
||||
"rederived": "Child'dan yeniden dolduruldu",
|
||||
"editAdvanced": "Yönlendirme Alanlarını Düzenle",
|
||||
"hideAdvanced": "Gelişmişi Gizle",
|
||||
"quickAddAll": "Uygun Olan Tümünü Hızlı Ekle",
|
||||
"quickAdded": "{n} fallback eklendi",
|
||||
"quickAddedNone": "Eklenecek yeni uygun gelen bağlantı yok",
|
||||
"routesWhen": "Şu Durumda Yönlendirir",
|
||||
"defaultCatchAll": "Varsayılan — başka her şeyi yakalar",
|
||||
"needsTls": "Geri düşüşler (fallback), Güvenlik sekmesinde TLS veya Reality seçildiğinde kullanılabilir olur (yalnızca RAW üzerinde VLESS/Trojan)."
|
||||
},
|
||||
"protocol": "Protokol",
|
||||
@@ -310,8 +276,6 @@
|
||||
"portMap": "Port Eşlemesi",
|
||||
"traffic": "Trafik",
|
||||
"speed": "Hız",
|
||||
"details": "Detaylar",
|
||||
"transportConfig": "Aktarım",
|
||||
"expireDate": "Süre",
|
||||
"createdAt": "Oluşturuldu",
|
||||
"updatedAt": "Güncellendi",
|
||||
@@ -319,8 +283,6 @@
|
||||
"addInbound": "Gelen Bağlantı Ekle",
|
||||
"generalActions": "Genel İşlemler",
|
||||
"modifyInbound": "Gelen Bağlantını Düzenle",
|
||||
"deleteInbound": "Gelen Bağlantını Sil",
|
||||
"deleteInboundContent": "Bu gelen bağlantıyı silmek istediğinizden emin misiniz?",
|
||||
"deleteConfirmTitle": "\"{remark}\" gelen bağlantı silinsin mi?",
|
||||
"deleteConfirmContent": "Bu işlem gelen bağlantıyı ve tüm kullanıcılarını siler. Geri alınamaz.",
|
||||
"resetConfirmTitle": "\"{remark}\" trafiği sıfırlansın mı?",
|
||||
@@ -364,8 +326,6 @@
|
||||
"exportAllLinksFileName": "Tüm-BağlantıNoktaları",
|
||||
"exportAllSubsFileName": "Tüm-BağlantıNoktaları-Subs",
|
||||
"inboundJsonTitle": "Gelen Bağlantı JSON",
|
||||
"deleteClient": "Kullanıcıyı Sil",
|
||||
"deleteClientContent": "Kullanıcıyı silmek istediğinizden emin misiniz?",
|
||||
"resetTrafficContent": "Trafiği sıfırlamak istediğinizden emin misiniz?",
|
||||
"copyLink": "URL'yi Kopyala",
|
||||
"address": "Adres",
|
||||
@@ -376,36 +336,19 @@
|
||||
"meansNoLimit": "= Sınırsız. (birim: GB)",
|
||||
"totalFlow": "Toplam Akış",
|
||||
"leaveBlankToNeverExpire": "Süresiz olması için boş bırakın",
|
||||
"noRecommendKeepDefault": "Varsayılan ayarda bırakılması önerilir",
|
||||
"certificatePath": "Dosya Yolu",
|
||||
"certificateContent": "Dosya İçeriği",
|
||||
"publicKey": "Genel Anahtar",
|
||||
"privatekey": "Özel Anahtar",
|
||||
"clickOnQRcode": "Kopyalamak İçin QR Koda Tıklayın",
|
||||
"client": "Kullanıcı",
|
||||
"export": "Tüm URL'leri Dışa Aktar",
|
||||
"clone": "Klonla",
|
||||
"cloneInbound": "Klonla",
|
||||
"cloneInboundContent": "Bu gelen bağlantıyın tüm ayarları, Port, Dinleme IP ve Kullanıcılar hariç, klona uygulanacaktır.",
|
||||
"cloneInboundOk": "Klonla",
|
||||
"resetAllTraffic": "Tüm Gelen Trafiği Sıfırla",
|
||||
"resetAllTrafficTitle": "Tüm Gelen Trafiği Sıfırla",
|
||||
"resetAllTrafficContent": "Tüm gelen bağlantılarnın trafiğini sıfırlamak istediğinizden emin misiniz?",
|
||||
"resetInboundClientTraffics": "Kullanıcıların Trafiğini Sıfırla",
|
||||
"resetInboundClientTrafficTitle": "Kullanıcı Trafiklerini Sıfırla",
|
||||
"resetInboundClientTrafficContent": "Bu gelen bağlantıya ait kullanıcıların trafiğini sıfırlamak istediğinizden emin misiniz?",
|
||||
"resetAllClientTraffics": "Tüm Kullanıcıların Trafiğini Sıfırla",
|
||||
"resetAllClientTrafficTitle": "Tüm Kullanıcı Trafiklerini Sıfırla",
|
||||
"resetAllClientTrafficContent": "Tüm kullanıcıların trafiğini sıfırlamak istediğinizden emin misiniz?",
|
||||
"delDepletedClients": "Kotası Dolan Kullanıcıları Sil",
|
||||
"delDepletedClientsTitle": "Kotası Dolan Kullanıcıları Sil",
|
||||
"delDepletedClientsContent": "Kotası dolan veya süresi biten tüm kullanıcıları silmek istediğinizden emin misiniz?",
|
||||
"email": "E-posta",
|
||||
"emailDesc": "Lütfen benzersiz bir e-posta adresi sağlayın.",
|
||||
"IPLimit": "IP Limiti",
|
||||
"IPLimitDesc": "Sayının aşılması durumunda gelen bağlantı devre dışı bırakılır. (0 = devre dışı)",
|
||||
"IPLimitlog": "IP Günlüğü",
|
||||
"IPLimitlogDesc": "IP geçmiş günlüğü. (devre dışı bırakıldıktan sonra yeniden etkinleştirmek için günlüğü temizleyin)",
|
||||
"IPLimitlogclear": "Günlüğü Temizle",
|
||||
"setDefaultCert": "Panelden Sertifikayı Ayarla",
|
||||
"setDefaultCertEmpty": "Panel için sertifika yapılandırılmamış. Önce Ayarlar'dan ayarlayın.",
|
||||
@@ -438,21 +381,15 @@
|
||||
"sniffing": "Sniffing",
|
||||
"sniffingHelp": "Xray sniffing bloğunun sarmalayıcısı:",
|
||||
"stream": "Stream",
|
||||
"streamHelp": "Xray stream bloğunun sarmalayıcısı:",
|
||||
"jsonErrorPrefix": "Gelişmiş JSON"
|
||||
"streamHelp": "Xray stream bloğunun sarmalayıcısı:"
|
||||
},
|
||||
"telegramDesc": "Lütfen Telegram Sohbet Kimliği (Chat ID) sağlayın. ({'@'}userinfobot'tan öğrenebilir veya botta '/id' komutunu kullanabilirsiniz.)",
|
||||
"subscriptionDesc": "Abonelik URL'nizi bulmak için 'Detaylar'a gidin. Aynı adı birden fazla kullanıcı için kullanabilirsiniz.",
|
||||
"subSortIndex": "Sıralama",
|
||||
"same": "Aynı",
|
||||
"inboundInfo": "Gelen Bağlantı Bilgileri",
|
||||
"exportInbound": "Gelen Bağlantını Dışa Aktar",
|
||||
"import": "İçe Aktar",
|
||||
"importInbound": "Gelen Bağlantı İçe Aktar",
|
||||
"periodicTrafficResetTitle": "Trafik Sıfırlama",
|
||||
"periodicTrafficResetDesc": "Belirtilen aralıklarla trafik sayacını otomatik olarak sıfırla",
|
||||
"periodicTrafficResetDay": "Aylık sıfırlama günü",
|
||||
"lastReset": "Son Sıfırlama",
|
||||
"periodicTrafficReset": {
|
||||
"never": "Asla",
|
||||
"daily": "Günlük",
|
||||
@@ -464,7 +401,6 @@
|
||||
"obtain": "Al",
|
||||
"updateSuccess": "Güncelleme başarılı oldu.",
|
||||
"logCleanSuccess": "Günlük temizlendi.",
|
||||
"inboundsUpdateSuccess": "Gelen bağlantılar başarıyla güncellendi.",
|
||||
"inboundUpdateSuccess": "Gelen bağlantı başarıyla güncellendi.",
|
||||
"inboundCreateSuccess": "Gelen bağlantı başarıyla oluşturuldu.",
|
||||
"bulkDeleted": "{count} gelen bağlantı silindi",
|
||||
@@ -474,7 +410,6 @@
|
||||
"inboundClientDeleteSuccess": "Gelen bağlantı kullanıcısı silindi.",
|
||||
"inboundClientUpdateSuccess": "Gelen bağlantı kullanıcısı güncellendi.",
|
||||
"savedNodeOfflineWillSync": "Yerel olarak kaydedildi. Destekleyen bir düğüm çevrimdışı veya devre dışı — değişiklik yeniden bağlandığında senkronize edilecek.",
|
||||
"delDepletedClientsSuccess": "Tüm tükenmiş kullanıcılar silindi.",
|
||||
"resetAllClientTrafficSuccess": "Tüm kullanıcıların trafiği sıfırlandı.",
|
||||
"resetAllTrafficSuccess": "Tüm trafik sıfırlandı.",
|
||||
"resetInboundClientTrafficSuccess": "Trafik sıfırlandı.",
|
||||
@@ -717,23 +652,6 @@
|
||||
"peerNumber": "Peer {n}",
|
||||
"peerNumberConfig": "Peer {n} Yapılandırması"
|
||||
},
|
||||
"stream": {
|
||||
"general": {
|
||||
"request": "İstek",
|
||||
"response": "Yanıt",
|
||||
"name": "Ad",
|
||||
"value": "Değer"
|
||||
},
|
||||
"tcp": {
|
||||
"version": "Sürüm",
|
||||
"method": "Yöntem",
|
||||
"path": "Yol",
|
||||
"status": "Durum",
|
||||
"statusDescription": "Durum Açıklaması",
|
||||
"requestHeader": "İstek Başlığı",
|
||||
"responseHeader": "Yanıt Başlığı"
|
||||
}
|
||||
},
|
||||
"sniffingDestOverride": "Hedef geçersiz kılma"
|
||||
},
|
||||
"clients": {
|
||||
@@ -747,24 +665,9 @@
|
||||
"addExternalSubscription": "Harici Abonelik Ekle",
|
||||
"noExternalLinks": "Henüz harici bağlantı yok.",
|
||||
"noExternalSubscriptions": "Henüz harici abonelik yok.",
|
||||
"add": "Kullanıcı Ekle",
|
||||
"edit": "Kullanıcıyı Düzenle",
|
||||
"submitAdd": "Kullanıcı Ekle",
|
||||
"submitEdit": "Değişiklikleri Kaydet",
|
||||
"clientCount": "Kullanıcı Sayısı",
|
||||
"bulk": "Toplu Ekle",
|
||||
"copyFromInbound": "Gelen Bağlantından Kullanıcıları Kopyala",
|
||||
"copyToInbound": "Kullanıcıların Kopyalanacağı Yer",
|
||||
"copySelected": "Seçileni Kopyala",
|
||||
"copySource": "Kaynak",
|
||||
"copyEmailPreview": "Oluşacak E-posta Önizlemesi",
|
||||
"copySelectSourceFirst": "Önce bir kaynak gelen bağlantı seçin.",
|
||||
"copyResult": "Kopya Sonucu",
|
||||
"copyResultSuccess": "Başarıyla kopyalandı",
|
||||
"copyResultNone": "Kopyalanacak bir şey yok: kullanıcı seçilmemiş veya kaynak boş.",
|
||||
"copyResultErrors": "Kopyalama Hataları",
|
||||
"copyFlowLabel": "Yeni Kullanıcılar İçin Flow (VLESS)",
|
||||
"copyFlowHint": "Kopyalanan tüm kullanıcılara uygulanır. Atlamak için boş bırakın.",
|
||||
"selectAll": "Tümünü Seç",
|
||||
"clearAll": "Tümünü Temizle",
|
||||
"method": "Yöntem",
|
||||
@@ -775,7 +678,6 @@
|
||||
"postfix": "Sonek",
|
||||
"delayedStart": "İlk Kullanımdan Sonra Başla",
|
||||
"expireDays": "Süre (gün)",
|
||||
"days": "Gün(ler)",
|
||||
"renew": "Otomatik Yenileme",
|
||||
"renewDesc": "Süre dolduktan sonra otomatik yeniler. (0 = devre dışı) (birim: gün)",
|
||||
"renewDays": "Otomatik Yenileme (gün)",
|
||||
@@ -798,7 +700,6 @@
|
||||
"sortExpiringSoonest": "Yakında Biten",
|
||||
"has": "Var",
|
||||
"hasNot": "Yok",
|
||||
"title": "Kullanıcılar",
|
||||
"actions": "İşlemler",
|
||||
"totalGB": "Trafik Limiti (GB)",
|
||||
"totalGBDesc": "Bu kullanıcı için veri kotası. 0 = sınırsız.",
|
||||
@@ -826,8 +727,6 @@
|
||||
"addClient": "Kullanıcı Ekle",
|
||||
"qrCode": "QR Kodu",
|
||||
"clientInfo": "Kullanıcı Bilgileri",
|
||||
"delete": "Sil",
|
||||
"reset": "Trafiği Sıfırla",
|
||||
"editClient": "Kullanıcıyı Düzenle",
|
||||
"client": "Kullanıcı",
|
||||
"enabled": "Etkin",
|
||||
@@ -841,13 +740,11 @@
|
||||
"noLinks": "Paylaşılabilir bağlantı yok — önce bu kullanıcıyı bir protokole sahip olan gelen bağlantıya bağlayın.",
|
||||
"link": "Bağlantı",
|
||||
"resetNotPossible": "Önce bu kullanıcıyı bir gelen bağlantıya bağlayın.",
|
||||
"general": "Genel",
|
||||
"resetAllTraffics": "Tüm Kullanıcıların Trafiğini Sıfırla",
|
||||
"resetAllTrafficsTitle": "Tüm Kullanıcıların Trafiği Sıfırlansın Mı?",
|
||||
"resetAllTrafficsContent": "Her kullanıcının yükleme/indirme sayaçları sıfırlanır. Kotalar ve son kullanma tarihleri etkilenmez. Geri alınamaz.",
|
||||
"deleteConfirmTitle": "{email} Kullanıcısı Silinsin Mi?",
|
||||
"deleteConfirmContent": "Bu işlem kullanıcıyı bağlı tüm gelen bağlantılarndan kaldırır ve trafik kaydını siler. Geri alınamaz.",
|
||||
"deleteSelected": "Sil ({count})",
|
||||
"adjustSelected": "Ayarla ({count})",
|
||||
"subLinksSelected": "Abonelik Bağlantıları ({count})",
|
||||
"addToGroupTitle": "{count} Kullanıcıyı Bir Gruba Ekle",
|
||||
@@ -869,12 +766,10 @@
|
||||
"bulkDisableConfirmTitle": "{count} kullanıcı devre dışı bırakılsın mı?",
|
||||
"bulkDisableConfirmContent": "Seçili her kullanıcıyı bağlı olduğu tüm gelen bağlantılarda devre dışı bırakır. Erişimlerini hemen kaybederler ancak kayıtları ve trafikleri korunur.",
|
||||
"selectedCount": "{count} Seçildi",
|
||||
"attachSelected": "Bağla ({count})",
|
||||
"attachToInboundsTitle": "{count} Kullanıcıyı Gelen Bağlantına Bağla",
|
||||
"attachToInboundsDesc": "Seçilen {count} kullanıcıyı (aynı UUID/şifre ve paylaşılan trafikle) seçilen gelen bağlantıya bağlar. Mevcut bağlantıları da korunur.",
|
||||
"attachToInboundsTargets": "Hedef Gelen Bağlantılar",
|
||||
"attachToInboundsNoTargets": "Bağlanacak çoklu kullanıcılı gelen bağlantı yok.",
|
||||
"detachSelected": "Ayır ({count})",
|
||||
"detach": "Ayır",
|
||||
"detachFromInboundsTitle": "{count} Kullanıcıyı Gelen Bağlantından Ayır",
|
||||
"detachFromInboundsDesc": "Seçilen {count} kullanıcıyı seçilen gelen bağlantıdan kaldırır. Kullanıcının zaten bağlı olmadığı gelen bağlantılar atlanır. Kullanıcı kayıtları korunur (tamamen kaldırmak için Sil'i kullanın).",
|
||||
@@ -928,8 +823,6 @@
|
||||
"reverseTagPlaceholder": "İsteğe Bağlı Reverse Tag",
|
||||
"telegramId": "Telegram Kullanıcı ID'si",
|
||||
"telegramIdPlaceholder": "Sayısal Telegram kullanıcı ID'si (0 = yok)",
|
||||
"created": "Oluşturuldu",
|
||||
"updated": "Güncellendi",
|
||||
"ipLimit": "IP Limiti",
|
||||
"toasts": {
|
||||
"deleted": "Kullanıcı silindi",
|
||||
@@ -952,7 +845,6 @@
|
||||
}
|
||||
},
|
||||
"groups": {
|
||||
"title": "Gruplar",
|
||||
"name": "İsim",
|
||||
"clientCount": "Kullanıcılar",
|
||||
"totalGroups": "Toplam grup",
|
||||
@@ -994,7 +886,6 @@
|
||||
"removeFromGroupResult": "{name} grubundan {count} kullanıcı çıkarıldı."
|
||||
},
|
||||
"nodes": {
|
||||
"title": "Düğümler",
|
||||
"addNode": "Düğüm Ekle",
|
||||
"editNode": "Düğümü Düzenle",
|
||||
"totalNodes": "Toplam Düğüm",
|
||||
@@ -1013,8 +904,6 @@
|
||||
"apiTokenPlaceholder": "Uzak panelin Ayarlar sayfasındaki token",
|
||||
"apiTokenHint": "Uzak panel API token'ını Kimlik Doğrulama → API Token altında gösterir.",
|
||||
"apiTokenKeepHint": "Mevcut token'ı korumak için boş bırakın",
|
||||
"regenerate": "Token'ı Yeniden Oluştur",
|
||||
"regenerateConfirm": "Yeniden oluşturmak mevcut token'ı geçersiz kılar. Onu kullanan tüm merkezi paneller, güncellenene kadar erişimini kaybeder. Devam edilsin mi?",
|
||||
"allowPrivateAddress": "Özel Adrese İzin Ver",
|
||||
"allowPrivateAddressHint": "Yalnızca özel ağ veya VPN üzerindeki düğümler için etkinleştirin.",
|
||||
"outboundTag": "Bağlantı gideni",
|
||||
@@ -1046,7 +935,6 @@
|
||||
"updatePanel": "Paneli Güncelle",
|
||||
"updateSelected": "Seçilenleri Güncelle ({count})",
|
||||
"updateAvailable": "Güncelleme mevcut",
|
||||
"upToDate": "Güncel",
|
||||
"updateConfirmTitle": "{count} düğüm en son sürüme güncellensin mi?",
|
||||
"updateConfirmContent": "Seçilen her düğüm en son sürümü indirir ve yeniden başlatılır. Yalnızca etkin ve çevrimiçi düğümler güncellenir.",
|
||||
"updateDevChannel": "Dev kanalına güncelle (son commit)",
|
||||
@@ -1447,13 +1335,8 @@
|
||||
"secretClearUndo": "Temizlemeyi geri al"
|
||||
},
|
||||
"xray": {
|
||||
"title": "Xray Yapılandırmaları",
|
||||
"save": "Kaydet",
|
||||
"restart": "Xray'i Yeniden Başlat",
|
||||
"restartSuccess": "Xray başarıyla yeniden başlatıldı.",
|
||||
"restartOutputTitle": "Xray yeniden başlatma çıktısı",
|
||||
"restartConfirmTitle": "Xray'i Yeniden Başlat?",
|
||||
"restartConfirmContent": "Xray hizmeti kaydedilmiş yapılandırma ile yeniden yüklenir.",
|
||||
"stopSuccess": "Xray başarıyla durduruldu.",
|
||||
"restartError": "Xray yeniden başlatılırken bir hata oluştu.",
|
||||
"stopError": "Xray durdurulurken bir hata oluştu.",
|
||||
@@ -1463,7 +1346,6 @@
|
||||
"generalConfigsDesc": "Bu seçenekler genel ayarlamaları belirler.",
|
||||
"logConfigs": "Günlük",
|
||||
"logConfigsDesc": "Günlükler sunucunuzun verimliliğini etkileyebilir. Yalnızca ihtiyaç durumunda akıllıca etkinleştirmeniz önerilir.",
|
||||
"blockConfigsDesc": "Bu seçenekler belirli istek protokolleri ve web siteleri temelinde trafiği engeller.",
|
||||
"basicRouting": "Temel Yönlendirme",
|
||||
"blockConnectionsConfigsDesc": "Bu seçenekler, istenen belirli ülkelere göre trafiği engelleyecektir.",
|
||||
"directConnectionsConfigsDesc": "Doğrudan bağlantı, belirli bir trafiğin başka bir sunucu üzerinden yönlendirilmeden doğrudan hedefe gitmesini sağlar.",
|
||||
@@ -1473,10 +1355,6 @@
|
||||
"directdomains": "Doğrudan Alan Adları",
|
||||
"ipv4Routing": "IPv4 Yönlendirme",
|
||||
"ipv4RoutingDesc": "Bu seçenekler belirli bir varış yerine IPv4 üzerinden trafiği yönlendirir.",
|
||||
"warpRouting": "WARP Yönlendirme",
|
||||
"warpRoutingDesc": "Bu seçenekler belirli bir varış yerine WARP üzerinden trafiği yönlendirir.",
|
||||
"nordRouting": "NordVPN Yönlendirme",
|
||||
"nordRoutingDesc": "Bu seçenekler belirli bir varış yerine NordVPN üzerinden trafiği yönlendirir.",
|
||||
"Template": "Gelişmiş Xray Yapılandırma Şablonu",
|
||||
"TemplateDesc": "Nihai Xray yapılandırma dosyası bu şablona göre oluşturulacaktır.",
|
||||
"FreedomStrategy": "Freedom Protokol Stratejisi",
|
||||
@@ -1498,10 +1376,7 @@
|
||||
"metricsTag": "Metrik Etiketi",
|
||||
"Torrent": "BitTorrent Protokolünü Engelle",
|
||||
"Inbounds": "Gelen Bağlantılar",
|
||||
"InboundsDesc": "Belirtilen istemcileri (clients) kabul eder.",
|
||||
"Outbounds": "Giden Bağlantılar",
|
||||
"OutboundSubscriptions": "Giden Bağlantı Abonelikleri",
|
||||
"OutboundSubscriptionsDesc": "Uzak abonelik URL'lerinden (vmess/vless/trojan/ss/...) giden bağlantılarnı içe aktarın. Etiketler dengeleyicilerde ve yönlendirme kurallarında kullanılabilmek için sabit tutulur. Güncellemeler otomatiktir.",
|
||||
"Balancers": "Dengeleyiciler",
|
||||
"balancerTagRequired": "Etiket zorunludur",
|
||||
"balancerSelectorRequired": "En az bir giden bağlantı seçin",
|
||||
@@ -1520,9 +1395,7 @@
|
||||
"routeTesterMatchedOutbound": "Eşleşen giden",
|
||||
"routeTesterViaBalancer": "dengeleyici aracılığıyla",
|
||||
"routeTesterDefaultOutbound": "Hiçbir yönlendirme kuralı eşleşmedi — trafik varsayılan (ilk) giden bağlantıya yönlendirilir.",
|
||||
"OutboundsDesc": "Giden trafiğin yolunu ayarlayın.",
|
||||
"Routings": "Yönlendirme Kuralları",
|
||||
"RoutingsDesc": "Her kuralın önceliği önemlidir!",
|
||||
"completeTemplate": "Tümü",
|
||||
"logLevel": "Günlük Seviyesi",
|
||||
"logLevelDesc": "Hata günlükleri için kayıt seviyesi; hangi detayda bilginin kaydedileceğini belirler.",
|
||||
@@ -1536,13 +1409,9 @@
|
||||
"maskAddressDesc": "IP adresi maskesi, etkinleştirildiğinde günlükte görünen IP adresini otomatik olarak değiştirecektir.",
|
||||
"statistics": "İstatistikler",
|
||||
"statsInboundUplink": "Gelen Yükleme İstatistikleri",
|
||||
"statsInboundUplinkDesc": "Tüm gelen proxy'lerin yükleme trafiği için istatistik toplamayı etkinleştirir.",
|
||||
"statsInboundDownlink": "Gelen İndirme İstatistikleri",
|
||||
"statsInboundDownlinkDesc": "Tüm gelen proxy'lerin indirme trafiği için istatistik toplamayı etkinleştirir.",
|
||||
"statsOutboundUplink": "Giden Yükleme İstatistikleri",
|
||||
"statsOutboundUplinkDesc": "Tüm giden proxy'lerin yükleme trafiği için istatistik toplamayı etkinleştirir.",
|
||||
"statsOutboundDownlink": "Giden İndirme İstatistikleri",
|
||||
"statsOutboundDownlinkDesc": "Tüm giden proxy'lerin indirme trafiği için istatistik toplamayı etkinleştirir.",
|
||||
"connectionLimits": "Bağlantı Sınırları",
|
||||
"connectionLimitsDesc": "Kullanıcı seviyesi 0 için bağlantı düzeyi politikaları. Xray'in varsayılanını kullanmak için alanı boş bırakın.",
|
||||
"connIdle": "Boşta Kalma Zaman Aşımı",
|
||||
@@ -1552,18 +1421,10 @@
|
||||
"bufferSizePlaceholder": "otomatik",
|
||||
"seconds": "saniye",
|
||||
"rules": {
|
||||
"first": "İlk",
|
||||
"last": "Son",
|
||||
"up": "Yukarı",
|
||||
"down": "Aşağı",
|
||||
"source": "Kaynak",
|
||||
"dest": "Hedef",
|
||||
"inbound": "Gelen Bağlantı",
|
||||
"outbound": "Giden Bağlantı",
|
||||
"balancer": "Dengeleyici",
|
||||
"info": "Bilgi",
|
||||
"add": "Kural Ekle",
|
||||
"edit": "Kuralı Düzenle",
|
||||
"useComma": "Virgülle ayrılmış öğeler"
|
||||
},
|
||||
"routing": {
|
||||
@@ -1604,7 +1465,6 @@
|
||||
"ruleN": "Kural {n}",
|
||||
"action": "Eylem",
|
||||
"redirect": "Redirect",
|
||||
"fragment": "Fragment",
|
||||
"finalRules": "Nihai Kurallar",
|
||||
"overrideXrayPrivateIp": "Xray'in varsayılan özel IP bloğunu geçersiz kıl",
|
||||
"blockDelay": "Engelleme Gecikmesi (ms)",
|
||||
@@ -1630,43 +1490,17 @@
|
||||
"keepAliveInterval": "Keep Alive Aralığı",
|
||||
"markFwmark": "Mark (fwmark)",
|
||||
"interface": "Arabirim",
|
||||
"ipv6Only": "Yalnızca IPv6",
|
||||
"acceptProxyProtocol": "Proxy Protocol Kabul Et",
|
||||
"proxyProtocol": "Proxy Protocol",
|
||||
"tcpUserTimeoutMs": "TCP User Timeout (ms)",
|
||||
"tcpKeepAliveIdleS": "TCP keep-alive idle (s)"
|
||||
},
|
||||
"outbound": {
|
||||
"addOutbound": "Giden Bağlantı Ekle",
|
||||
"addReverse": "Ters Ekle",
|
||||
"editOutbound": "Giden Bağlantını Düzenle",
|
||||
"editReverse": "Tersi Düzenle",
|
||||
"reverseTag": "Ters Etiket",
|
||||
"reverseTagDesc": "VLESS basit ters proxy giden bağlantı etiketi. Devre dışı bırakmak için boş bırakın.",
|
||||
"reverseTagPlaceholder": "çıkış etiketi (boş = devre dışı)",
|
||||
"tag": "Etiket",
|
||||
"tagDesc": "Benzersiz Etiket",
|
||||
"address": "Adres",
|
||||
"egress": "Egress",
|
||||
"egressHint": "Run an HTTP test to show egress IP and country.",
|
||||
"reverse": "Ters",
|
||||
"domain": "Alan Adı",
|
||||
"type": "Tür",
|
||||
"bridge": "Bridge",
|
||||
"portal": "Portal",
|
||||
"link": "Bağlantı",
|
||||
"intercon": "Bağlantı",
|
||||
"settings": "Ayarlar",
|
||||
"accountInfo": "Hesap Bilgileri",
|
||||
"outboundStatus": "Giden Bağlantı Durumu",
|
||||
"sendThrough": "Üzerinden Gönder",
|
||||
"targetStrategy": "Hedef Stratejisi",
|
||||
"test": "Test",
|
||||
"testResult": "Test Sonucu",
|
||||
"testing": "Bağlantı test ediliyor...",
|
||||
"testSuccess": "Test başarılı",
|
||||
"testFailed": "Test başarısız",
|
||||
"testError": "Giden bağlantı test edilemedi",
|
||||
"modeRealDelay": "Gerçek gecikme",
|
||||
"testModeTooltip": "TCP: hızlı sadece arama (dial-only) testi. HTTP: Xray üzerinden tam istek. Gerçek gecikme: bağlantı kurulumu dahil toplam süre.",
|
||||
"testAll": "Tümünü Test Et",
|
||||
@@ -1674,14 +1508,10 @@
|
||||
"breakdownConnect": "Proxy bağlantısı",
|
||||
"breakdownTls": "Giden üzerinden TLS",
|
||||
"breakdownTtfb": "İlk bayt",
|
||||
"nordvpn": "NordVPN",
|
||||
"accessToken": "Erişim Jetonu",
|
||||
"country": "Ülke",
|
||||
"server": "Sunucu",
|
||||
"city": "Şehir",
|
||||
"allCities": "Tüm Şehirler",
|
||||
"privateKey": "Özel Anahtar",
|
||||
"load": "Yükle",
|
||||
"moveToTop": "En üste taşı"
|
||||
},
|
||||
"outboundSub": {
|
||||
@@ -1711,16 +1541,11 @@
|
||||
"active": "Aktif abonelikler",
|
||||
"empty": "Henüz hiç abonelik yok. Yukarıdan bir tane ekleyin.",
|
||||
"colRemark": "Açıklama",
|
||||
"colPrefix": "Önek",
|
||||
"colInterval": "Aralık",
|
||||
"colLastFetch": "Son getirme",
|
||||
"colEnabled": "Etkin",
|
||||
"auto": "otomatik",
|
||||
"never": "asla",
|
||||
"yes": "Evet",
|
||||
"no": "Hayır",
|
||||
"refreshNow": "Şimdi yenile",
|
||||
"lastError": "Son hata",
|
||||
"deleteConfirm": "Bu aboneliği silmek istiyor musunuz?",
|
||||
"restartHint": "Ekledikten veya yeniledikten sonra giden bağlantılarnı aktif hale getirmek için Xray'i yeniden başlatın (veya bir sonraki otomatik yeniden yüklemeyi bekleyin).",
|
||||
"fromSubsTitle": "Giden bağlantı aboneliklerinden (salt okunur)",
|
||||
@@ -1737,8 +1562,6 @@
|
||||
"tabBalancerSettings": "Dengeleyici Ayarları",
|
||||
"tabObservatory": "Gözlemci",
|
||||
"observatory": {
|
||||
"title": "Gözlemci",
|
||||
"burstTitle": "Burst Gözlemci",
|
||||
"autoManaged": "Gözlemciler dengeleyicilerinize göre otomatik yönetilir. Nasıl sınama yapacaklarını aşağıdan ayarlayın; izlenen çıkışlar dengeleyici seçicilerini izler.",
|
||||
"emptyHint": "Etkin bir bağlantı gözlemcisi yok. Least Ping veya Least Load dengeleyici — ya da fallback içeren Random / Round-robin dengeleyici — oluşturduğunuzda otomatik olarak bir tane eklenir; böylece gözlemci kullanan dengeleyiciler hedef seçmeden önce çıkış sağlığını kontrol edebilir.",
|
||||
"mixedLegacy": "Bu yapılandırmada hem Observatory hem de Burst Observatory var. Xray tek bir global gözlemci kullanır, bu nedenle bu eski karma durum desteklenmez; dengeleyiciler kaydedildiğinde tek bir gözlemciye normalleştirilir.",
|
||||
@@ -1772,12 +1595,8 @@
|
||||
"balancerRemoved": "Dengeleyici {tag} — kaldırıldı (hedef kalmadı)"
|
||||
},
|
||||
"balancer": {
|
||||
"addBalancer": "Dengeleyici Ekle",
|
||||
"editBalancer": "Dengeleyiciyi Düzenle",
|
||||
"balancerStrategy": "Strateji",
|
||||
"balancerSelectors": "Seçiciler",
|
||||
"tag": "Etiket",
|
||||
"tagDesc": "Benzersiz Etiket",
|
||||
"tagDuplicate": "Etiket başka bir dengeleyici tarafından kullanılıyor",
|
||||
"tagPlaceholder": "benzersiz dengeleyici etiketi",
|
||||
"selector": "Seçici",
|
||||
@@ -1789,7 +1608,6 @@
|
||||
"tolerance": "Tolerans",
|
||||
"baselines": "Baselines",
|
||||
"costs": "Costs",
|
||||
"balancerDesc": "Dengeleyici Etiketi (balancerTag) ve Giden Bağlantı Etiketi (outboundTag) aynı anda kullanılamaz. Aynı anda kullanıldığında yalnızca giden bağlantı etiketi geçerli olur.",
|
||||
"costMatch": "Etiket deseni",
|
||||
"costValue": "Ağırlık",
|
||||
"costRegexp": "Düzenli ifade eşleşmesi",
|
||||
@@ -1804,14 +1622,10 @@
|
||||
"publicKey": "Genel Anahtar",
|
||||
"allowedIPs": "İzin Verilen IP'ler",
|
||||
"endpoint": "Uç Nokta",
|
||||
"psk": "Ön Paylaşılan Anahtar",
|
||||
"domainStrategy": "Alan Adı Stratejisi"
|
||||
},
|
||||
"tun": {
|
||||
"nameDesc": "TUN arabiriminin adı. Varsayılan değer 'xray0'dır.",
|
||||
"mtuDesc": "Maksimum İletim Birimi. Veri paketlerinin maksimum boyutu. Varsayılan değer 1500'dür.",
|
||||
"userLevel": "Kullanıcı Seviyesi",
|
||||
"userLevelDesc": "Bu gelen bağlantı üzerinden yapılan tüm bağlantılar bu kullanıcı seviyesini kullanacaktır. Varsayılan değer 0'dır."
|
||||
"userLevel": "Kullanıcı Seviyesi"
|
||||
},
|
||||
"nord": {
|
||||
"accessToken": "Access Token",
|
||||
@@ -1896,7 +1710,6 @@
|
||||
},
|
||||
"fakedns": {
|
||||
"add": "Sahte DNS Ekle",
|
||||
"edit": "Sahte DNS'i Düzenle",
|
||||
"ipPool": "IP Havuzu Alt Ağı",
|
||||
"poolSize": "Havuz Boyutu"
|
||||
},
|
||||
@@ -2032,7 +1845,6 @@
|
||||
"add": "Ekle",
|
||||
"month": "Ay",
|
||||
"months": "Aylar",
|
||||
"day": "Gün",
|
||||
"days": "Günler",
|
||||
"hours": "Saatler",
|
||||
"minutes": "Dakikalar",
|
||||
@@ -2071,7 +1883,6 @@
|
||||
"userSaved": "✅ Telegram Kullanıcısı kaydedildi.",
|
||||
"loginSuccess": "✅ Panele başarıyla giriş yapıldı.\r\n",
|
||||
"loginFailed": "❗️Panele giriş denemesi başarısız oldu.\r\n",
|
||||
"2faFailed": "2FA Hatası",
|
||||
"report": "🕰 Planlanmış Raporlar: {{ .RunTime }}\r\n",
|
||||
"datetime": "⏰ Tarih ve Saat: {{ .DateTime }}\r\n",
|
||||
"hostname": "💻 Host: {{ .Hostname }}\r\n",
|
||||
@@ -2104,7 +1915,6 @@
|
||||
"download": "🔽 İndirme: ↓{{ .Download }}\r\n",
|
||||
"total": "📊 Toplam: ↑↓{{ .UpDown }} / {{ .Total }}\r\n",
|
||||
"TGUser": "👤 Telegram Kullanıcısı: {{ .TelegramID }}\r\n",
|
||||
"exhaustedMsg": "🚨 Limiti Dolanlar ({{ .Type }}):\r\n",
|
||||
"exhaustedCount": "🚨 Limiti Dolan {{ .Type }} sayısı:\r\n",
|
||||
"onlinesCount": "🌐 Çevrimiçi Kullanıcılar: {{ .Count }}\r\n",
|
||||
"disabled": "🛑 Devre Dışı: {{ .Disabled }}\r\n",
|
||||
@@ -2113,16 +1923,10 @@
|
||||
"refreshedOn": "\r\n📋🔄 Yenilendi: {{ .Time }}\r\n\r\n",
|
||||
"yes": "✅ Evet",
|
||||
"no": "❌ Hayır",
|
||||
"received_id": "🔑📥 Kimlik (ID) güncellendi.",
|
||||
"received_password": "🔑📥 Şifre güncellendi.",
|
||||
"received_email": "📧📥 E-posta güncellendi.",
|
||||
"received_comment": "💬📥 Yorum güncellendi.",
|
||||
"id_prompt": "🔑 Mevcut Kimlik (ID): {{ .ClientId }}\n\nYeni kimliğinizi (ID) girin.",
|
||||
"pass_prompt": "🔑 Varsayılan Şifre: {{ .ClientPassword }}\n\nŞifrenizi girin.",
|
||||
"email_prompt": "📧 Varsayılan E-posta: {{ .ClientEmail }}\n\nE-postanızı girin.",
|
||||
"comment_prompt": "💬 Varsayılan Yorum: {{ .ClientComment }}\n\nYorumunuzu girin.",
|
||||
"inbound_client_data_id": "🔄 Gelen Bağlantı: {{ .InboundRemark }}\n\n🔑 ID: {{ .ClientId }}\n📧 E-posta: {{ .ClientEmail }}\n📊 Kota: {{ .ClientTraffic }}\n📅 Bitiş Tarihi: {{ .ClientExp }}\n🌐 IP Sınırı: {{ .IpLimit }}\n💬 Açıklama: {{ .ClientComment }}\n\nArtık bu kullanıcıyı gelen bağlantıya ekleyebilirsiniz!",
|
||||
"inbound_client_data_pass": "🔄 Gelen Bağlantı: {{ .InboundRemark }}\n\n🔑 Şifre: {{ .ClientPass }}\n📧 E-posta: {{ .ClientEmail }}\n📊 Kota: {{ .ClientTraffic }}\n📅 Bitiş Tarihi: {{ .ClientExp }}\n🌐 IP Sınırı: {{ .IpLimit }}\n💬 Açıklama: {{ .ClientComment }}\n\nArtık bu kullanıcıyı gelen bağlantıya ekleyebilirsiniz!",
|
||||
"cancel": "❌ İşlem iptal edildi! \n\nİstediğiniz zaman /start ile yeniden başlayabilirsiniz. 🔄",
|
||||
"error_add_client": "⚠️ Hata:\n\n {{ .error }}",
|
||||
"using_default_value": "Tamam, varsayılan değeri kullanacağım. 😊",
|
||||
@@ -2139,8 +1943,6 @@
|
||||
"eventXrayCrashError": "Hata: {{ .Error }}",
|
||||
"eventNodeDown": "{{ .Name }} düğümü ÇEVRİMDIŞI",
|
||||
"eventNodeUp": "{{ .Name }} düğümü ÇEVRİMİÇİ",
|
||||
"eventCPUHigh": "Yüksek CPU",
|
||||
"eventCPUHighDetail": "CPU: {{ .Detail }}",
|
||||
"eventLoginFallback": "{{ .Source }} adresinden oturum açma başarısız",
|
||||
"memoryThreshold": "Bellek kullanımı {{ .Percent }}% eşiği {{ .Threshold }}% aşıyor"
|
||||
},
|
||||
@@ -2181,11 +1983,8 @@
|
||||
"submitDisable": "Devre Dışı Olarak Gönder ☑️",
|
||||
"submitEnable": "Etkin Olarak Gönder ✅",
|
||||
"use_default": "🏷️ Varsayılanı Kullan",
|
||||
"change_id": "⚙️🔑 Kimlik",
|
||||
"change_password": "⚙️🔑 Şifre",
|
||||
"change_email": "⚙️📧 E-posta",
|
||||
"change_comment": "⚙️💬 Yorum",
|
||||
"change_flow": "⚙️🚦 Flow",
|
||||
"ResetAllTraffics": "Tüm Trafikleri Sıfırla",
|
||||
"SortedTrafficUsageReport": "Sıralı Trafik Kullanım Raporu"
|
||||
},
|
||||
@@ -2214,31 +2013,16 @@
|
||||
}
|
||||
},
|
||||
"email": {
|
||||
"subjectOutboundDown": "{{ .Tag }} giden bağlantısı ÇEVRİMDIŞI",
|
||||
"subjectOutboundUp": "{{ .Tag }} giden bağlantısı ÇEVRİMİÇİ",
|
||||
"subjectXrayCrash": "Xray ÇÖKTÜ",
|
||||
"subjectCPUHigh": "Yüksek CPU",
|
||||
"subjectLoginSuccess": "Oturum açma başarılı",
|
||||
"subjectLoginFailed": "Oturum açma başarısız",
|
||||
"titleOutboundDown": "Giden Bağlantı ÇEVRİMDIŞI",
|
||||
"titleOutboundUp": "Giden Bağlantı ÇEVRİMİÇİ",
|
||||
"titleXrayCrash": "Xray ÇÖKTÜ",
|
||||
"titleCPUHigh": "Yüksek CPU",
|
||||
"titleLoginSuccess": "Oturum açma başarılı",
|
||||
"titleLoginFailed": "Oturum açma başarısız",
|
||||
"labelStatus": "Durum",
|
||||
"labelOutbound": "Giden Bağlantı",
|
||||
"labelNode": "Düğüm",
|
||||
"labelError": "Hata",
|
||||
"labelDelay": "Gecikme",
|
||||
"labelDetail": "Ayrıntı",
|
||||
"labelUsername": "Kullanıcı Adı",
|
||||
"labelIP": "IP",
|
||||
"labelReason": "Neden",
|
||||
"labelSource": "Kaynak",
|
||||
"labelTime": "Zaman",
|
||||
"statusCrashed": "ÇÖKTÜ",
|
||||
"statusRunning": "Çalışıyor",
|
||||
"statusHigh": "YÜKSEK",
|
||||
"statusSuccess": "BAŞARILI",
|
||||
"statusFailed": "BAŞARISIZ",
|
||||
|
||||
Reference in New Issue
Block a user