diff --git a/messages/tr-TR.json b/messages/tr-TR.json index 6296b7fe..b5b99888 100644 --- a/messages/tr-TR.json +++ b/messages/tr-TR.json @@ -96,7 +96,7 @@ "siteWgDescription": "Bir tünel oluşturmak için herhangi bir WireGuard istemcisi kullanın. Manuel NAT kurulumu gereklidir.", "siteWgDescriptionSaas": "Bir tünel oluşturmak için herhangi bir WireGuard istemcisi kullanın. Manuel NAT kurulumu gereklidir. YALNIZCA SELF HOSTED DÜĞÜMLERDE ÇALIŞIR", "siteLocalDescription": "Yalnızca yerel kaynaklar. Tünelleme yok.", - "siteLocalDescriptionSaas": "Yalnızca yerel kaynaklar. Tünel yok. YALNIZCA SELF HOSTED DÜĞÜMLERDE ÇALIŞIR", + "siteLocalDescriptionSaas": "Local resources only. No tunneling. Only available on remote nodes.", "siteSeeAll": "Tüm Siteleri Gör", "siteTunnelDescription": "Sitenize nasıl bağlanmak istediğinizi belirleyin", "siteNewtCredentials": "Newt Kimlik Bilgileri", @@ -468,7 +468,10 @@ "createdAt": "Oluşturulma Tarihi", "proxyErrorInvalidHeader": "Geçersiz özel Ana Bilgisayar Başlığı değeri. Alan adı formatını kullanın veya özel Ana Bilgisayar Başlığını ayarlamak için boş bırakın.", "proxyErrorTls": "Geçersiz TLS Sunucu Adı. Alan adı formatını kullanın veya TLS Sunucu Adını kaldırmak için boş bırakılsın.", - "proxyEnableSSL": "SSL'yi Etkinleştir (https)", + "proxyEnableSSL": "SSL Etkinleştir", + "proxyEnableSSLDescription": "Hedeflerinize güvenli HTTPS bağlantıları için SSL/TLS şifrelemesi etkinleştirin.", + "target": "Hedef", + "configureTarget": "Hedefleri Yapılandır", "targetErrorFetch": "Hedefleri alamadı", "targetErrorFetchDescription": "Hedefler alınırken bir hata oluştu", "siteErrorFetch": "kaynağa ulaşılamadı", @@ -495,7 +498,7 @@ "targetTlsSettings": "HTTPS & TLS Settings", "targetTlsSettingsDescription": "Configure TLS settings for your resource", "targetTlsSettingsAdvanced": "Gelişmiş TLS Ayarları", - "targetTlsSni": "TLS Sunucu Adı (SNI)", + "targetTlsSni": "TLS Sunucu Adı", "targetTlsSniDescription": "SNI için kullanılacak TLS Sunucu Adı'", "targetTlsSubmit": "Ayarları Kaydet", "targets": "Hedefler Konfigürasyonu", @@ -504,9 +507,21 @@ "targetStickySessionsDescription": "Bağlantıları oturum süresince aynı arka uç hedef üzerinde tutun.", "methodSelect": "Yöntemi Seç", "targetSubmit": "Hedef Ekle", - "targetNoOne": "Hiçbir hedef yok. Formu kullanarak bir hedef ekleyin.", + "targetNoOne": "Bu kaynağın hedefi yok. Arka planınıza istek göndereceğiniz bir hedef yapılandırmak için hedef ekleyin.", "targetNoOneDescription": "Yukarıdaki birden fazla hedef ekleyerek yük dengeleme etkinleştirilecektir.", "targetsSubmit": "Hedefleri Kaydet", + "addTarget": "Hedef Ekle", + "targetErrorInvalidIp": "Geçersiz IP adresi", + "targetErrorInvalidIpDescription": "Lütfen geçerli bir IP adresi veya host adı girin", + "targetErrorInvalidPort": "Geçersiz port", + "targetErrorInvalidPortDescription": "Lütfen geçerli bir port numarası girin", + "targetErrorNoSite": "Hiçbir site seçili değil", + "targetErrorNoSiteDescription": "Lütfen hedef için bir site seçin", + "targetCreated": "Hedef oluşturuldu", + "targetCreatedDescription": "Hedef başarıyla oluşturuldu", + "targetErrorCreate": "Hedef oluşturma başarısız oldu", + "targetErrorCreateDescription": "Hedef oluşturulurken bir hata oluştu", + "save": "Kaydet", "proxyAdditional": "Ek Proxy Ayarları", "proxyAdditionalDescription": "Kaynağınızın proxy ayarlarını nasıl yöneteceğini yapılandırın", "proxyCustomHeader": "Özel Ana Bilgisayar Başlığı", @@ -715,6 +730,7 @@ "pangolinServerAdmin": "Sunucu Yöneticisi - Pangolin", "licenseTierProfessional": "Profesyonel Lisans", "licenseTierEnterprise": "Kurumsal Lisans", + "licenseTierPersonal": "Personal License", "licensed": "Lisanslı", "yes": "Evet", "no": "Hayır", @@ -749,7 +765,7 @@ "idpDisplayName": "Bu kimlik sağlayıcı için bir görüntü adı", "idpAutoProvisionUsers": "Kullanıcıları Otomatik Sağla", "idpAutoProvisionUsersDescription": "Etkinleştirildiğinde, kullanıcılar rol ve organizasyonlara eşleme yeteneğiyle birlikte sistemde otomatik olarak oluşturulacak.", - "licenseBadge": "Profesyonel", + "licenseBadge": "EE", "idpType": "Sağlayıcı Türü", "idpTypeDescription": "Yapılandırmak istediğiniz kimlik sağlayıcısı türünü seçin", "idpOidcConfigure": "OAuth2/OIDC Yapılandırması", @@ -1138,7 +1154,7 @@ "sidebarAllUsers": "Tüm Kullanıcılar", "sidebarIdentityProviders": "Kimlik Sağlayıcılar", "sidebarLicense": "Lisans", - "sidebarClients": "Müşteriler (Beta)", + "sidebarClients": "Clients", "sidebarDomains": "Alan Adları", "enableDockerSocket": "Docker Soketini Etkinleştir", "enableDockerSocketDescription": "Plan etiketleri için Docker Socket etiket toplamasını etkinleştirin. Newt'e soket yolu sağlanmalıdır.", @@ -1331,7 +1347,6 @@ "twoFactorRequired": "Güvenlik anahtarını kaydetmek için iki faktörlü kimlik doğrulama gereklidir.", "twoFactor": "İki Faktörlü Kimlik Doğrulama", "adminEnabled2FaOnYourAccount": "Yöneticiniz {email} için iki faktörlü kimlik doğrulamayı etkinleştirdi. Devam etmek için kurulum işlemini tamamlayın.", - "continueToApplication": "Uygulamaya Devam Et", "securityKeyAdd": "Güvenlik Anahtarı Ekle", "securityKeyRegisterTitle": "Yeni Güvenlik Anahtarı Kaydet", "securityKeyRegisterDescription": "Güvenlik anahtarınızı bağlayın ve tanımlamak için bir ad girin", @@ -1409,6 +1424,7 @@ "externalProxyEnabled": "Dış Proxy Etkinleştirildi", "addNewTarget": "Yeni Hedef Ekle", "targetsList": "Hedefler Listesi", + "advancedMode": "Gelişmiş Mod", "targetErrorDuplicateTargetFound": "Yinelenen hedef bulundu", "healthCheckHealthy": "Sağlıklı", "healthCheckUnhealthy": "Sağlıksız", @@ -1541,8 +1557,8 @@ "autoLoginError": "Otomatik Giriş Hatası", "autoLoginErrorNoRedirectUrl": "Kimlik sağlayıcıdan yönlendirme URL'si alınamadı.", "autoLoginErrorGeneratingUrl": "Kimlik doğrulama URL'si oluşturulamadı.", - "remoteExitNodeManageRemoteExitNodes": "Öz-Host Yönetim", - "remoteExitNodeDescription": "Ağ bağlantınızı genişletmek için düğümleri yönetin", + "remoteExitNodeManageRemoteExitNodes": "Uzak Düğümler", + "remoteExitNodeDescription": "Self-host one or more remote nodes to extend your network connectivity and reduce reliance on the cloud", "remoteExitNodes": "Düğümler", "searchRemoteExitNodes": "Düğüm ara...", "remoteExitNodeAdd": "Düğüm Ekle", @@ -1552,7 +1568,7 @@ "remoteExitNodeMessageConfirm": "Onaylamak için lütfen aşağıya düğümün adını yazın.", "remoteExitNodeConfirmDelete": "Düğüm Silmeyi Onayla", "remoteExitNodeDelete": "Düğümü Sil", - "sidebarRemoteExitNodes": "Düğümler", + "sidebarRemoteExitNodes": "Uzak Düğümler", "remoteExitNodeCreate": { "title": "Düğüm Oluştur", "description": "Ağ bağlantınızı genişletmek için yeni bir düğüm oluşturun", @@ -1721,5 +1737,161 @@ "authPageUpdated": "Kimlik doğrulama sayfası başarıyla güncellendi", "healthCheckNotAvailable": "Yerel", "rewritePath": "Yolu Yeniden Yaz", - "rewritePathDescription": "Seçenek olarak hedefe iletmeden önce yolu yeniden yazın." + "rewritePathDescription": "Seçenek olarak hedefe iletmeden önce yolu yeniden yazın.", + "continueToApplication": "Uygulamaya Devam Et", + "checkingInvite": "Davet Kontrol Ediliyor", + "setResourceHeaderAuth": "setResourceHeaderAuth", + "resourceHeaderAuthRemove": "Başlık Kimlik Doğrulama Kaldır", + "resourceHeaderAuthRemoveDescription": "Başlık kimlik doğrulama başarıyla kaldırıldı.", + "resourceErrorHeaderAuthRemove": "Başlık Kimlik Doğrulama kaldırılamadı", + "resourceErrorHeaderAuthRemoveDescription": "Kaynak için başlık kimlik doğrulaması kaldırılamadı.", + "resourceHeaderAuthProtectionEnabled": "Header Authentication Enabled", + "resourceHeaderAuthProtectionDisabled": "Header Authentication Disabled", + "headerAuthRemove": "Remove Header Auth", + "headerAuthAdd": "Add Header Auth", + "resourceErrorHeaderAuthSetup": "Başlık Kimlik Doğrulama ayarlanamadı", + "resourceErrorHeaderAuthSetupDescription": "Kaynak için başlık kimlik doğrulaması ayarlanamadı.", + "resourceHeaderAuthSetup": "Başlık Kimlik Doğrulama başarıyla ayarlandı", + "resourceHeaderAuthSetupDescription": "Başlık kimlik doğrulaması başarıyla ayarlandı.", + "resourceHeaderAuthSetupTitle": "Başlık Kimlik Doğrulama Ayarla", + "resourceHeaderAuthSetupTitleDescription": "Set the basic auth credentials (username and password) to protect this resource with HTTP Header Authentication. Access it using the format https://username:password@resource.example.com", + "resourceHeaderAuthSubmit": "Başlık Kimlik Doğrulama Ayarla", + "actionSetResourceHeaderAuth": "Başlık Kimlik Doğrulama Ayarla", + "enterpriseEdition": "Enterprise Edition", + "unlicensed": "Unlicensed", + "beta": "Beta", + "manageClients": "Manage Clients", + "manageClientsDescription": "Clients are devices that can connect to your sites", + "licenseTableValidUntil": "Valid Until", + "saasLicenseKeysSettingsTitle": "Enterprise Licenses", + "saasLicenseKeysSettingsDescription": "Generate and manage Enterprise license keys for self-hosted Pangolin instances", + "sidebarEnterpriseLicenses": "Licenses", + "generateLicenseKey": "Generate License Key", + "generateLicenseKeyForm": { + "validation": { + "emailRequired": "Please enter a valid email address", + "useCaseTypeRequired": "Please select a use case type", + "firstNameRequired": "First name is required", + "lastNameRequired": "Last name is required", + "primaryUseRequired": "Please describe your primary use", + "jobTitleRequiredBusiness": "Job title is required for business use", + "industryRequiredBusiness": "Industry is required for business use", + "stateProvinceRegionRequired": "State/Province/Region is required", + "postalZipCodeRequired": "Postal/ZIP Code is required", + "companyNameRequiredBusiness": "Company name is required for business use", + "countryOfResidenceRequiredBusiness": "Country of residence is required for business use", + "countryRequiredPersonal": "Country is required for personal use", + "agreeToTermsRequired": "You must agree to the terms", + "complianceConfirmationRequired": "You must confirm compliance with the Fossorial Commercial License" + }, + "useCaseOptions": { + "personal": { + "title": "Personal Use", + "description": "For individual, non-commercial use such as learning, personal projects, or experimentation." + }, + "business": { + "title": "Business Use", + "description": "For use within organizations, companies, or commercial or revenue-generating activities." + } + }, + "steps": { + "emailLicenseType": { + "title": "Email & License Type", + "description": "Enter your email and choose your license type" + }, + "personalInformation": { + "title": "Personal Information", + "description": "Tell us about yourself" + }, + "contactInformation": { + "title": "Contact Information", + "description": "Your contact details" + }, + "termsGenerate": { + "title": "Terms & Generate", + "description": "Review and accept terms to generate your license" + } + }, + "alerts": { + "commercialUseDisclosure": { + "title": "Usage Disclosure", + "description": "Select the license tier that accurately reflects your intended use. The Personal License permits free use of the Software for individual, non-commercial or small-scale commercial activities with annual gross revenue under $100,000 USD. Any use beyond these limits — including use within a business, organization, or other revenue-generating environment — requires a valid Enterprise License and payment of the applicable licensing fee. All users, whether Personal or Enterprise, must comply with the Fossorial Commercial License Terms." + }, + "trialPeriodInformation": { + "title": "Trial Period Information", + "description": "This License Key enables Enterprise features for a 7-day evaluation period. Continued access to Paid Features beyond the evaluation period requires activation under a valid Personal or Enterprise License. For Enterprise licensing, contact sales@fossorial.io." + } + }, + "form": { + "useCaseQuestion": "Are you using Pangolin for personal or business use?", + "firstName": "First Name", + "lastName": "Last Name", + "jobTitle": "Job Title", + "primaryUseQuestion": "What do you primarily plan to use Pangolin for?", + "industryQuestion": "What is your industry?", + "prospectiveUsersQuestion": "How many prospective users do you expect to have?", + "prospectiveSitesQuestion": "How many prospective sites (tunnels) do you expect to have?", + "companyName": "Company name", + "countryOfResidence": "Country of residence", + "stateProvinceRegion": "State / Province / Region", + "postalZipCode": "Postal / ZIP Code", + "companyWebsite": "Company website", + "companyPhoneNumber": "Company phone number", + "country": "Country", + "phoneNumberOptional": "Phone number (optional)", + "complianceConfirmation": "I confirm that I am in compliance with the Fossorial Commercial License and that reporting inaccurate information or misidentifying use of the product is a violation of the license." + }, + "buttons": { + "close": "Close", + "previous": "Previous", + "next": "Next", + "generateLicenseKey": "Generate License Key" + }, + "toasts": { + "success": { + "title": "License key generated successfully", + "description": "Your license key has been generated and is ready to use." + }, + "error": { + "title": "Failed to generate license key", + "description": "An error occurred while generating the license key." + } + } + }, + "priority": "Öncelik", + "priorityDescription": "Daha yüksek öncelikli rotalar önce değerlendirilir. Öncelik = 100, otomatik sıralama anlamına gelir (sistem karar verir). Manuel öncelik uygulamak için başka bir numara kullanın.", + "instanceName": "Instance Name", + "pathMatchModalTitle": "Configure Path Matching", + "pathMatchModalDescription": "Set up how incoming requests should be matched based on their path.", + "pathMatchType": "Match Type", + "pathMatchPrefix": "Prefix", + "pathMatchExact": "Exact", + "pathMatchRegex": "Regex", + "pathMatchValue": "Path Value", + "clear": "Clear", + "saveChanges": "Save Changes", + "pathMatchRegexPlaceholder": "^/api/.*", + "pathMatchDefaultPlaceholder": "/path", + "pathMatchPrefixHelp": "Example: /api matches /api, /api/users, etc.", + "pathMatchExactHelp": "Example: /api matches only /api", + "pathMatchRegexHelp": "Example: ^/api/.* matches /api/anything", + "pathRewriteModalTitle": "Configure Path Rewriting", + "pathRewriteModalDescription": "Transform the matched path before forwarding to the target.", + "pathRewriteType": "Rewrite Type", + "pathRewritePrefixOption": "Prefix - Replace prefix", + "pathRewriteExactOption": "Exact - Replace entire path", + "pathRewriteRegexOption": "Regex - Pattern replacement", + "pathRewriteStripPrefixOption": "Strip Prefix - Remove prefix", + "pathRewriteValue": "Rewrite Value", + "pathRewriteRegexPlaceholder": "/new/$1", + "pathRewriteDefaultPlaceholder": "/new-path", + "pathRewritePrefixHelp": "Replace the matched prefix with this value", + "pathRewriteExactHelp": "Replace the entire path with this value when the path matches exactly", + "pathRewriteRegexHelp": "Use capture groups like $1, $2 for replacement", + "pathRewriteStripPrefixHelp": "Leave empty to strip prefix or provide new prefix", + "pathRewritePrefix": "Prefix", + "pathRewriteExact": "Exact", + "pathRewriteRegex": "Regex", + "pathRewriteStrip": "Strip", + "pathRewriteStripLabel": "strip" }